From aa4b0a431c53725e03a6cd9a90861ae0d3152f3a Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Thu, 17 Feb 2022 16:01:33 +0200 Subject: [PATCH 001/165] Add files via upload --- src/engine/BoundsExplainer.cpp | 270 ++++++++++++++++ src/engine/BoundsExplainer.h | 108 +++++++ src/engine/UNSATCertificate.cpp | 527 ++++++++++++++++++++++++++++++++ src/engine/UNSATCertificate.h | 337 ++++++++++++++++++++ 4 files changed, 1242 insertions(+) create mode 100644 src/engine/BoundsExplainer.cpp create mode 100644 src/engine/BoundsExplainer.h create mode 100644 src/engine/UNSATCertificate.cpp create mode 100644 src/engine/UNSATCertificate.h diff --git a/src/engine/BoundsExplainer.cpp b/src/engine/BoundsExplainer.cpp new file mode 100644 index 0000000000..5bb5d8314f --- /dev/null +++ b/src/engine/BoundsExplainer.cpp @@ -0,0 +1,270 @@ +/********************* */ +/*! \file BoundsExplainer.cpp + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#include "BoundsExplainer.h" + +BoundsExplainer::BoundsExplainer( const unsigned varsNum, const unsigned rowsNum ) + :_varsNum( varsNum ) + ,_rowsNum( rowsNum ) + ,_upperBoundsExplanations( _varsNum, std::vector( 0 ) ) + ,_lowerBoundsExplanations( _varsNum, std::vector( 0 ) ) +{ +} + +BoundsExplainer::~BoundsExplainer() +{ + for ( unsigned i = 0; i < _varsNum; ++i ) + { + _upperBoundsExplanations[i].clear(); + _lowerBoundsExplanations[i].clear(); + } + + _upperBoundsExplanations.clear(); + _lowerBoundsExplanations.clear(); +} + +unsigned BoundsExplainer::getRowsNum() const +{ + return _rowsNum; +} + +unsigned BoundsExplainer::getVarsNum() const +{ + return _varsNum; +} + +BoundsExplainer& BoundsExplainer::operator=( const BoundsExplainer& other ) +{ + if ( this == &other ) + return *this; + + if ( _varsNum != other._varsNum ) + { + _upperBoundsExplanations.resize( other._varsNum ); + _upperBoundsExplanations.shrink_to_fit(); + + _lowerBoundsExplanations.resize( other._varsNum ); + _lowerBoundsExplanations.shrink_to_fit(); + } + + _rowsNum = other._rowsNum; + _varsNum = other._varsNum; + + for ( unsigned i = 0; i < _varsNum; ++i ) + { + if ( _upperBoundsExplanations[i].size() != other._upperBoundsExplanations[i].size() ) + { + _upperBoundsExplanations[i].clear(); + _upperBoundsExplanations[i].resize( other._upperBoundsExplanations[i].size() ); + _upperBoundsExplanations[i].shrink_to_fit(); + } + + if ( _lowerBoundsExplanations[i].size() != other._lowerBoundsExplanations[i].size() ) + { + _lowerBoundsExplanations[i].clear(); + _lowerBoundsExplanations[i].resize( other._lowerBoundsExplanations[i].size() ); + _lowerBoundsExplanations[i].shrink_to_fit(); + } + + std::copy( other._upperBoundsExplanations[i].begin(), other._upperBoundsExplanations[i].end(), _upperBoundsExplanations[i].begin() ); + std::copy( other._lowerBoundsExplanations[i].begin(), other._lowerBoundsExplanations[i].end(), _lowerBoundsExplanations[i].begin() ); + } + + return *this; +} + +const std::vector& BoundsExplainer::getExplanation( const unsigned var, const bool isUpper ) +{ + ASSERT ( var < _varsNum ); + return isUpper ? _upperBoundsExplanations[var] : _lowerBoundsExplanations[var]; +} + +void BoundsExplainer::updateBoundExplanation( const TableauRow& row, const bool isUpper ) +{ + if ( !row._size ) + return; + updateBoundExplanation( row, isUpper, row._lhs ); +} + +void BoundsExplainer::updateBoundExplanation( const TableauRow& row, const bool isUpper, const unsigned var ) +{ + if ( !row._size ) + return; + + ASSERT ( var < _varsNum ); + double curCoefficient, ci = 0, realCoefficient; + bool tempUpper; + unsigned curVar; + if ( var == row._lhs ) + ci = -1; + else + { + for ( unsigned i = 0; i < row._size; ++i ) + if ( row._row[i]._var == var ) + { + ci = row._row[i]._coefficient; + break; + } + } + + ASSERT( !FloatUtils::isZero( ci ) ); + std::vector rowCoefficients = std::vector( _rowsNum, 0 ); + std::vector sum = std::vector( _rowsNum, 0 ); + std::vector tempBound; + + for ( unsigned i = 0; i < row._size; ++i ) + { + curVar = row._row[i]._var; + curCoefficient = row._row[i]._coefficient; + if ( FloatUtils::isZero( curCoefficient ) || curVar == var ) // If coefficient is zero then nothing to add to the sum, also skip var + continue; + + realCoefficient = curCoefficient / -ci; + if ( FloatUtils::isZero( realCoefficient ) ) + continue; + + tempUpper = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ); // If coefficient of lhs and var are different, use same bound + tempBound = tempUpper ? _upperBoundsExplanations[curVar] : _lowerBoundsExplanations[curVar]; + addVecTimesScalar( sum, tempBound, realCoefficient ); + } + + // Include lhs as well, if needed + if ( var != row._lhs ) + { + realCoefficient = 1 / ci; + if ( !FloatUtils::isZero( realCoefficient ) ) + { + tempUpper = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ); // If coefficient of lhs and var are different, use same bound + tempBound = tempUpper ? _upperBoundsExplanations[row._lhs] : _lowerBoundsExplanations[row._lhs]; + addVecTimesScalar( sum, tempBound, realCoefficient ); + } + } + + extractRowCoefficients( row, rowCoefficients, ci ); // Update according to row coefficients + addVecTimesScalar( sum, rowCoefficients, 1 ); + injectExplanation( sum, var, isUpper ); + + rowCoefficients.clear(); + sum.clear(); +} + +void BoundsExplainer::updateBoundExplanationSparse( const SparseUnsortedList& row, const bool isUpper, const unsigned var ) +{ + if ( row.empty() ) + return; + + ASSERT( var < _varsNum ); + bool tempUpper; + double curCoefficient, ci = 0, realCoefficient; + for ( const auto& entry : row ) + if ( entry._index == var ) + { + ci = entry._value; + break; + } + + ASSERT( !FloatUtils::isZero( ci ) ); + std::vector rowCoefficients = std::vector( _rowsNum, 0 ); + std::vector sum = std::vector( _rowsNum, 0 ); + std::vector tempBound; + + for ( const auto& entry : row ) + { + curCoefficient = entry._value; + if ( FloatUtils::isZero( curCoefficient ) || entry._index == var ) // If coefficient is zero then nothing to add to the sum, also skip var + continue; + + realCoefficient = curCoefficient / -ci; + if ( FloatUtils::isZero( realCoefficient ) ) + continue; + + tempUpper = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ); // If coefficient of lhs and var are different, use same bound + tempBound = tempUpper ? _upperBoundsExplanations[entry._index] : _lowerBoundsExplanations[entry._index]; + addVecTimesScalar( sum, tempBound, realCoefficient ); + } + + extractSparseRowCoefficients( row, rowCoefficients, ci ); // Update according to row coefficients + addVecTimesScalar( sum, rowCoefficients, 1 ); + injectExplanation( sum, var, isUpper ); + + rowCoefficients.clear(); + sum.clear(); +} + +void BoundsExplainer::addVecTimesScalar( std::vector& sum, const std::vector& input, const double scalar ) const +{ + if ( input.empty() || FloatUtils::isZero( scalar ) ) + return; + + ASSERT( sum.size() == _rowsNum && input.size() == _rowsNum ); + + for ( unsigned i = 0; i < _rowsNum; ++i ) + sum[i] += scalar * input[i]; +} + +void BoundsExplainer::extractRowCoefficients( const TableauRow& row, std::vector& coefficients, double ci ) const +{ + ASSERT( coefficients.size() == _rowsNum && ( row._size == _varsNum || row._size == _varsNum - _rowsNum ) ); + //The coefficients of the row m highest-indices vars are the coefficients of slack variables + for ( unsigned i = 0; i < row._size; ++i ) + if ( row._row[i]._var >= _varsNum - _rowsNum && !FloatUtils::isZero( row._row[i]._coefficient ) ) + coefficients[row._row[i]._var - _varsNum + _rowsNum] = - row._row[i]._coefficient / ci; + + if ( row._lhs >= _varsNum - _rowsNum ) //If the lhs was part of original basis, its coefficient is 1 / ci + coefficients[row._lhs - _varsNum + _rowsNum] = 1 / ci; +} + + +void BoundsExplainer::extractSparseRowCoefficients( const SparseUnsortedList& row, std::vector& coefficients, double ci ) const +{ + ASSERT( coefficients.size() == _rowsNum ); + + //The coefficients of the row m highest-indices vars are the coefficients of slack variables + for ( const auto& entry : row ) + if ( entry._index >= _varsNum - _rowsNum && !FloatUtils::isZero( entry._value ) ) + coefficients[entry._index - _varsNum + _rowsNum] = - entry._value / ci; +} + +void BoundsExplainer::addVariable() +{ + _rowsNum += 1; + _varsNum += 1; + _upperBoundsExplanations.emplace_back( std::vector( 0 ) ); + _lowerBoundsExplanations.emplace_back( std::vector( 0 ) ); + + for ( unsigned i = 0; i < _varsNum; ++i ) + { + if ( !_upperBoundsExplanations[i].empty() ) + _upperBoundsExplanations[i].push_back( 0 ); + + if ( !_lowerBoundsExplanations[i].empty() ) + _lowerBoundsExplanations[i].push_back( 0 ); + } +} + +void BoundsExplainer::resetExplanation( const unsigned var, const bool isUpper ) +{ + ASSERT( var < _varsNum ); + isUpper ? _upperBoundsExplanations[var].clear() : _lowerBoundsExplanations[var].clear(); +} + +void BoundsExplainer::injectExplanation( const std::vector& expl, unsigned var, bool isUpper ) +{ + ASSERT( var < _varsNum && ( expl.empty() || expl.size() == _rowsNum ) ); + std::vector *temp = isUpper ? &_upperBoundsExplanations[var] : &_lowerBoundsExplanations[var]; + if ( temp->size() != expl.size() ) + temp->resize( expl.size() ); + + std::copy( expl.begin(), expl.end(), temp->begin() ); +} \ No newline at end of file diff --git a/src/engine/BoundsExplainer.h b/src/engine/BoundsExplainer.h new file mode 100644 index 0000000000..524ed34e0c --- /dev/null +++ b/src/engine/BoundsExplainer.h @@ -0,0 +1,108 @@ +/********************* */ +/*! \file BoundsExplainer.h + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#ifndef __BoundsExplainer_h__ +#define __BoundsExplainer_h__ +#include "TableauRow.h" +#include "vector" +#include "SparseUnsortedList.h" + +/* + A class which encapsulates bounds explanations of all variables of a tableau +*/ +class BoundsExplainer { +public: + BoundsExplainer( unsigned varsNum, unsigned rowsNum ); + + ~BoundsExplainer(); + + /* + * Returns the number of rows + */ + unsigned getRowsNum() const; + + /* + * Returns the number of variables + */ + unsigned getVarsNum() const; + + /* + * Returns a bound explanation + */ + const std::vector& getExplanation( unsigned var, bool isUpper ); + + /* + * Given a row, updates the values of the bound explanations of its lhs according to the row + */ + void updateBoundExplanation( const TableauRow& row, bool isUpper ); + + /* + * Given a row, updates the values of the bound explanations of a var according to the row + */ + void updateBoundExplanation( const TableauRow& row, bool isUpper, unsigned varIndex ); + + /* + * Given a row as SparseUnsortedList, updates the values of the bound explanations of a var according to the row + */ + void updateBoundExplanationSparse( const SparseUnsortedList& row, bool isUpper, unsigned var ); + + /* + * Deep copies of other BoundsExplainer + */ + BoundsExplainer& operator=( const BoundsExplainer& other ); + + /* + * Adds a zero explanation at the end, and a zero entry to all explanations + */ + void addVariable(); + + /* + * Resets an explanation (to be a zero vec, represented by an empty vec) + */ + void resetExplanation( unsigned var, bool isUpper ); + + /* + * Updates an explanation, without necessarily using the recursive rule + */ + void injectExplanation( const std::vector& expl, unsigned var, bool isUpper ); + +private: + unsigned _varsNum; + unsigned _rowsNum; + std::vector> _upperBoundsExplanations; + std::vector> _lowerBoundsExplanations; + + /* + Adds a multiplication of an array by scalar to another array + */ + void addVecTimesScalar( std::vector& sum, const std::vector& input, double scalar ) const; + + /* + Upon receiving a row, extract coefficients of the original tableau's equations that create the row + Equivalently, extract the coefficients of the slack variables. + Assumption - the slack variables indices are always the last m. + All coefficients are divided by -ci, the coefficient of the explained var, for normalization. + */ + void extractRowCoefficients( const TableauRow& row, std::vector& coefficients, double ci ) const; + + /* + Upon receiving a row given as a SparseUnsortedList, extract coefficients of the original tableau's equations that create the row + Equivalently, extract the coefficients of the slack variables. + Assumption - the slack variables indices are always the last m. + All coefficients are divided by -ci, the coefficient of the explained var, for normalization. + */ + void extractSparseRowCoefficients( const SparseUnsortedList& row, std::vector& coefficients, double ci ) const; + +}; +#endif // __BoundsExplainer_h__ \ No newline at end of file diff --git a/src/engine/UNSATCertificate.cpp b/src/engine/UNSATCertificate.cpp new file mode 100644 index 0000000000..2cf1109902 --- /dev/null +++ b/src/engine/UNSATCertificate.cpp @@ -0,0 +1,527 @@ +/********************* */ +/*! \file BoundsExplainer.cpp + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#include "UNSATCertificate.h" +#include + + +CertificateNode::CertificateNode( std::vector> *initialTableau, std::vector &groundUBs, std::vector &groundLBs ) + : _children ( 0 ) + , _problemConstraints() + , _parent( NULL ) + , _PLCExplanations( 0 ) + , _contradiction ( NULL ) + , _headSplit( ) + , _hasSATSolution( false ) + , _wasVisited( false ) + , _delegationStatus( DelegationStatus::DONT_DELEGATE ) + , _delegationNumber( 0 ) + , _initialTableau( initialTableau ) + , _groundUpperBounds( groundUBs ) + , _groundLowerBounds( groundLBs ) +{ +} + +CertificateNode::CertificateNode( CertificateNode* parent, PiecewiseLinearCaseSplit split ) + : _children ( 0 ) + , _problemConstraints() + , _parent( parent ) + , _PLCExplanations( 0 ) + , _contradiction ( NULL ) + , _headSplit( std::move( split ) ) + , _hasSATSolution( false ) + , _wasVisited ( false ) + , _delegationStatus( DelegationStatus::DONT_DELEGATE ) + , _delegationNumber( 0 ) + , _initialTableau( NULL ) + , _groundUpperBounds( 0 ) + , _groundLowerBounds( 0 ) +{ + parent->_children.push_back( this ); +} + +CertificateNode::~CertificateNode() +{ + if ( _initialTableau ) + { + for ( auto& row : *_initialTableau ) + row.clear(); + _initialTableau->clear(); + } + + _groundUpperBounds.clear(); + _groundLowerBounds.clear(); + + for ( auto child : _children ) + if ( child ) + { + delete child; + child = NULL; + } + + _children.clear(); + deletePLCExplanations(); + + if ( _contradiction ) + { + delete _contradiction; + _contradiction = NULL; + } + + _parent = NULL; +} + +void CertificateNode::setContradiction( Contradiction* contradiction ) +{ + _contradiction = contradiction; +} + +Contradiction* CertificateNode::getContradiction() const +{ + return _contradiction; +} + +CertificateNode* CertificateNode::getParent() const +{ + return _parent; +} + +const PiecewiseLinearCaseSplit& CertificateNode::getSplit() const +{ + return _headSplit; +} + +const std::list& CertificateNode::getPLCExplanations() const +{ + return _PLCExplanations; +} + +void CertificateNode::makeLeaf() +{ + for ( CertificateNode *child : _children ) + if ( child ) + { + child->_initialTableau = NULL; //Clear reference to root tableau so it will not be deleted + delete child; + child = NULL; + } + + _children.clear(); +} + +void CertificateNode::passChangesToChildren( ProblemConstraint *childrenSplitConstraint ) +{ + for ( auto* child : _children ) + { + child->copyGB( _groundUpperBounds, _groundLowerBounds ); + child->_initialTableau = _initialTableau; + + for ( auto &con : _problemConstraints ) + if ( &con != childrenSplitConstraint ) + child->addProblemConstraint( con._type, con._constraintVars, con._status ); + + //Add the constraint corresponding to head split with correct phase + if ( childrenSplitConstraint && childrenSplitConstraint->_type == PiecewiseLinearFunctionType::RELU ) + { + if ( child->_headSplit.getBoundTightenings().front()._type == Tightening::LB || child->_headSplit.getBoundTightenings().back()._type == Tightening::LB ) + child->addProblemConstraint( childrenSplitConstraint->_type, childrenSplitConstraint->_constraintVars, PhaseStatus::RELU_PHASE_ACTIVE ); + else + child->addProblemConstraint( childrenSplitConstraint->_type, childrenSplitConstraint->_constraintVars, PhaseStatus::RELU_PHASE_INACTIVE ); + } + } +} + +bool CertificateNode::certify() +{ + // Update ground bounds according to head split + for ( auto& tightening : _headSplit.getBoundTightenings() ) + { + auto& temp = tightening._type == Tightening::UB ? _groundUpperBounds : _groundLowerBounds; + temp[tightening._variable] = tightening._value; + } + + // Certify all PLC bound propagations + if ( !certifyAllPLCExplanations( 0.0025 ) ) + return false; + + // Save to file if marked + if ( _delegationStatus == DelegationStatus::DELEGATE_SAVE ) + writeLeafToFile(); + + // Skip if laf has the SAT solution, or if was marked to delegate + if ( _hasSATSolution || _delegationStatus != DelegationStatus::DONT_DELEGATE ) + return true; + + // Check if it is a leaf, and if so use contradiction to certify + // return true iff it is certified + if ( isValidLeaf() ) + return certifyContradiction(); + + // If not a valid leaf, skip only if it is leaf that was not visited + if ( !_wasVisited && !_contradiction && _children.empty() ) + return true; + + // Otherwise, should be a valid non-leaf node + if ( !isValidNoneLeaf() ) + return false; + + + // If so, certify all children and return true iff all children are certified + // Also make sure that they are split correctly (i.e by ReLU constraint or by a single var) + bool answer = true; + List childrenSplits; + for ( auto& child : _children ) + childrenSplits.append( child->_headSplit ); + + auto *childrenSplitConstraint = getCorrespondingReLUConstraint( childrenSplits ); + if ( !certifySingleVarSplits( childrenSplits ) && !childrenSplitConstraint ) + return false; + + passChangesToChildren( childrenSplitConstraint ); + + for ( auto child : _children ) + if ( !child->certify() ) + answer = false; + + return answer; +} + +bool CertificateNode::certifyContradiction() const +{ + ASSERT( isValidLeaf() && !_hasSATSolution ); + unsigned var = _contradiction->_var, m = _initialTableau->size(); + + std::vector ubExpl = std::vector( 0, 0 ); + std::vector lbExpl = std::vector( 0, 0 ); + + if ( _contradiction->_upperExplanation ) + { + ubExpl = std::vector( m, 0 ); + std::copy( _contradiction->_upperExplanation,_contradiction->_upperExplanation + m, ubExpl.begin() ); + } + + if ( _contradiction->_lowerExplanation ) + { + lbExpl = std::vector( m, 0 ); + std::copy( _contradiction->_lowerExplanation, _contradiction->_lowerExplanation + m, lbExpl.begin() ); + } + + double computedUpper = explainBound( var, true, ubExpl ), computedLower = explainBound( var, false, lbExpl ); + + if ( computedUpper >= computedLower ) //TODO delete when done + printf("(Global) Certification error for var %d. ub is %.5lf, lb is %.5lf \n", var, computedUpper, computedLower ); + + return computedUpper < computedLower; +} + +double CertificateNode::explainBound( unsigned var, bool isUpper, const std::vector& expl ) const +{ + return UNSATCertificateUtils::computeBound( var, isUpper, expl, *_initialTableau, _groundUpperBounds, _groundLowerBounds ); +} + +void CertificateNode::copyGB( std::vector &groundUBs, std::vector &groundLBs ) +{ + _groundUpperBounds.clear(); + _groundLowerBounds.clear(); + + _groundUpperBounds.resize( groundUBs.size() ); + _groundLowerBounds.resize( groundLBs.size() ); + + std::copy( groundUBs.begin(), groundUBs.end(), _groundUpperBounds.begin() ); + std::copy( groundLBs.begin(), groundLBs.end(), _groundLowerBounds.begin() ); + +} + +bool CertificateNode::isValidLeaf() const +{ + return _contradiction && _children.empty(); +} + +bool CertificateNode::isValidNoneLeaf() const +{ + return !_contradiction && !_children.empty(); +} + +void CertificateNode::addPLCExplanation( PLCExplanation* expl ) +{ + _PLCExplanations.push_back( expl ); +} + +void CertificateNode::addProblemConstraint( PiecewiseLinearFunctionType type, List constraintVars, PhaseStatus status ) +{ + _problemConstraints.append( { type, constraintVars, status } ); +} + +ProblemConstraint *CertificateNode::getCorrespondingReLUConstraint( const List &splits ) +{ + if ( splits.size() != 2 ) + return NULL; + + auto firstSplitTightenings = splits.front().getBoundTightenings(), secondSplitTightenings = splits.back().getBoundTightenings(); + + // find the LB tightening, its var is b + auto &activeSplit = firstSplitTightenings.front()._type == Tightening::LB ? firstSplitTightenings : secondSplitTightenings; + auto &inactiveSplit = firstSplitTightenings.front()._type == Tightening::LB ? secondSplitTightenings : firstSplitTightenings; + + unsigned b = activeSplit.front()._variable; + unsigned aux = activeSplit.back()._variable; + unsigned f = inactiveSplit.back()._variable; + + // Aux var may or may not be used + if ( ( activeSplit.size() != 2 && activeSplit.size() != 1 ) || inactiveSplit.size() != 2 ) + return NULL; + + if ( FloatUtils::areDisequal( inactiveSplit.back()._value, 0.0 ) || FloatUtils::areDisequal( inactiveSplit.front()._value, 0.0 ) || FloatUtils::areDisequal( activeSplit.back()._value, 0.0 ) || FloatUtils::areDisequal( activeSplit.front()._value, 0.0 ) ) + return NULL; + + // Certify that f = b + aux corresponds to a problem constraints + ProblemConstraint *correspondingConstraint = NULL; + for ( ProblemConstraint& con : _problemConstraints ) + if ( con._type == PiecewiseLinearFunctionType::RELU && con._constraintVars.front() == b && con._constraintVars.exists( f ) && ( activeSplit.size() == 1 || con._constraintVars.back() == aux ) ) + correspondingConstraint = &con; + + // Return the constraint for which f=relu(b) + return correspondingConstraint; +} + +bool CertificateNode::certifyAllPLCExplanations( double epsilon ) +{ + // Create copies of the gb, check for their validity, and pass these changes to all the children + // Assuming the splits of the children are ok. + // NOTE, this will change as PLCExplanation will + for ( auto* expl : _PLCExplanations ) + { + bool constraintMatched = false, tighteningMatched = false; + unsigned length = _initialTableau->size(); + auto explVec = std::vector( 0,0 ); + + if ( expl->_explanation ) + { + explVec = std::vector( length,0 ); + std::copy( expl->_explanation, expl->_explanation + length, explVec.begin() ); + } + + double explainedBound = UNSATCertificateUtils::computeBound( expl->_causingVar, expl->_isCausingBoundUpper, explVec, *_initialTableau, _groundUpperBounds, _groundLowerBounds ); + unsigned b = 0, f = 0, aux = 0; + // Make sure propagation was by a problem constraint + for ( ProblemConstraint& con : _problemConstraints ) + { + if ( expl->_constraintType == PiecewiseLinearFunctionType::RELU && con._constraintVars.exists( expl->_affectedVar ) && con._constraintVars.exists( expl->_causingVar ) ) + { //TODO reconsider design + std::vector conVec( con._constraintVars.begin(), con._constraintVars.end() ); + b = conVec[0], f = conVec[1], aux = conVec[2]; + conVec.clear(); + constraintMatched = true; + + // If explanation is phase fixing, mark it + if ( ( !expl->_isAffectedBoundUpper && expl->_affectedVar == f && FloatUtils::isPositive( expl->_bound ) ) || ( expl->_isAffectedBoundUpper && expl->_affectedVar == aux && FloatUtils::isZero( expl->_bound ) ) ) + con._status = PhaseStatus::RELU_PHASE_ACTIVE; + else if ( ( !expl->_isAffectedBoundUpper && expl->_affectedVar == aux && FloatUtils::isPositive( expl->_bound ) ) || ( expl->_isAffectedBoundUpper && expl->_affectedVar == f && FloatUtils::isZero( expl->_bound ) ) ) + con._status = PhaseStatus::RELU_PHASE_INACTIVE; + } + } + + if ( !constraintMatched ) + return false; + + if ( expl->_causingVar != b && expl->_causingVar != f && expl->_causingVar != aux ) + return false; + + // Make sure the explanation is explained using a ReLU bound tightening. Cases are matching each rule in ReluConstraint.cpp + // We allow explained bound to be tighter than the ones recorded (since an explanation can explain tighter bounds), and an epsilon sized error is tolerated. + + // If lb of b is non negative, then ub of aux is 0 + if ( expl->_causingVar == b && !expl->_isCausingBoundUpper && expl->_affectedVar == aux && expl->_isAffectedBoundUpper && FloatUtils::isZero( expl->_bound ) && !FloatUtils::isNegative( explainedBound + epsilon ) ) + tighteningMatched = true; + + // If lb of f is positive, then ub if aux is 0 + else if ( expl->_causingVar == f && !expl->_isCausingBoundUpper && expl->_affectedVar == aux && expl->_isAffectedBoundUpper && FloatUtils::isZero( expl->_bound ) && FloatUtils::isPositive( explainedBound + epsilon ) ) + tighteningMatched = true; + + // If lb of b is positive x, then lb of aux is -x + else if ( expl->_causingVar == b && !expl->_isCausingBoundUpper && expl->_affectedVar == aux && expl->_isAffectedBoundUpper && FloatUtils::gte( explainedBound, - expl->_bound - epsilon ) && expl->_bound > 0 ) + tighteningMatched = true; + + // If lb of aux is positive, then ub of f is 0 + else if ( expl->_causingVar == aux && !expl->_isCausingBoundUpper && expl->_affectedVar == f && expl->_isAffectedBoundUpper && FloatUtils::isZero( expl->_bound ) && FloatUtils::isPositive( explainedBound + epsilon ) ) + tighteningMatched = true; + + // If lb of f is negative, then it is 0 + else if ( expl->_causingVar == f && !expl->_isCausingBoundUpper && expl->_affectedVar == f && !expl->_isAffectedBoundUpper && FloatUtils::isZero( expl->_bound ) && FloatUtils::isNegative( explainedBound - epsilon ) ) + tighteningMatched = true; + + // Propagate ub from f to b + else if ( expl->_causingVar == f && expl->_isCausingBoundUpper && expl->_affectedVar == b && expl->_isAffectedBoundUpper && FloatUtils::lte( explainedBound, expl->_bound + epsilon ) ) + tighteningMatched = true; + + // If ub of b is non positive, then ub of f is 0 + else if ( expl->_causingVar == b && expl->_isCausingBoundUpper && expl->_affectedVar == f && expl->_isAffectedBoundUpper && FloatUtils::isZero( expl->_bound ) && !FloatUtils::isPositive( explainedBound - epsilon ) ) + tighteningMatched = true; + + // If ub of b is non positive x, then lb of aux is -x + else if ( expl->_causingVar == b && expl->_isCausingBoundUpper && expl->_affectedVar == aux && !expl->_isAffectedBoundUpper && expl->_bound > 0 && !FloatUtils::isPositive( explainedBound - epsilon ) && FloatUtils::lte( explainedBound, -expl->_bound + epsilon) ) + tighteningMatched = true; + + // If ub of b is positive, then propagate to f ( positivity of explained bound is not checked since negative explained ub can always explain positive bound ) + else if ( expl->_causingVar == b && expl->_isCausingBoundUpper && expl->_affectedVar == f && expl->_isAffectedBoundUpper && FloatUtils::isPositive( expl->_bound ) && FloatUtils::lte( explainedBound, expl->_bound + epsilon ) ) + tighteningMatched = true; + + // If ub of aux is x, then lb of b is -x + else if ( expl->_causingVar == aux && expl->_isCausingBoundUpper && expl->_affectedVar == b && !expl->_isAffectedBoundUpper && FloatUtils::lte( explainedBound, -expl->_bound + epsilon ) ) + tighteningMatched = true; + + if ( !tighteningMatched ) + { + printf( "bound %.5lf. explained bound is %.5lf\n", expl->_bound, explainedBound ); //TODO delete when completing + return false; + } + + // If so, update the ground bounds and continue + std::vector& temp = expl->_isAffectedBoundUpper ? _groundUpperBounds : _groundLowerBounds; + bool isTighter = expl->_isAffectedBoundUpper ? FloatUtils::lt( expl->_bound, temp[expl->_affectedVar] ) : FloatUtils::gt( expl->_bound, temp[expl->_affectedVar] ); + if ( isTighter ) + temp[expl->_affectedVar] = expl->_bound; + } + return true; +} + +/* + * Get a pointer to a child by a head split, or NULL if not found + */ +CertificateNode* CertificateNode::getChildBySplit( const PiecewiseLinearCaseSplit& split) const +{ + for ( CertificateNode* child : _children ) + if ( child->_headSplit == split ) + return child; + + return NULL; +} + +void CertificateNode::hasSATSolution() +{ + _hasSATSolution = true; +} + +void CertificateNode::wasVisited() +{ + _wasVisited = true; +} + +void CertificateNode::shouldDelegate( unsigned delegationNumber, DelegationStatus delegationStatus ) +{ + ASSERT( delegationStatus != DelegationStatus::DONT_DELEGATE ); + _delegationStatus = delegationStatus; + _delegationNumber = delegationNumber; +} + +bool CertificateNode::certifySingleVarSplits( const List &splits) const +{ + if ( splits.size() != 2 ) + return false; + + // These are singletons to tightenings + auto &frontSplitTightenings = splits.front().getBoundTightenings(); + auto &backSplitTightenings = splits.back().getBoundTightenings(); + + if ( frontSplitTightenings.size() != 1 || backSplitTightenings.size() != 1 ) + return false; + + // These are the elements in the singletons + auto &frontSplitOnlyTightening = frontSplitTightenings.front(); + auto &backSplitOnlyTightening = backSplitTightenings.front(); + + // Check that cases are of the same var and bound, where the for one the bound is UB, and for the other is LB + if ( frontSplitOnlyTightening._variable != backSplitOnlyTightening._variable ) + return false; + + if ( FloatUtils::areDisequal( frontSplitOnlyTightening._value, backSplitOnlyTightening._value ) ) + return false; + + if ( frontSplitOnlyTightening._type == backSplitOnlyTightening._type ) + return false; + + return true; +} + +void CertificateNode::deletePLCExplanations() +{ + if ( !_PLCExplanations.empty() ) + { + for ( auto expl : _PLCExplanations ) + delete expl; + + _PLCExplanations.clear(); + } +} + +/* + * Removes all PLC explanations from a certain point + */ +void CertificateNode::resizePLCExplanationsList( unsigned newSize ) +{ + unsigned originalSize = _PLCExplanations.size(); + if ( newSize >= originalSize ) + return; + + for ( unsigned i =0; i < originalSize - newSize; ++i ) + { + delete _PLCExplanations.back(); + _PLCExplanations.back() = NULL; + _PLCExplanations.pop_back(); + } + ASSERT( _PLCExplanations.size() == newSize ); +} + +void CertificateNode::writeLeafToFile() +{ + ASSERT( _children.empty() && _delegationStatus == DelegationStatus::DELEGATE_SAVE ); + List leafInstance; + + // Write to smtWriter + unsigned m = _initialTableau->size(), n = _groundUpperBounds.size(), b, f; + SmtLibWriter::addHeader( n, leafInstance ); + SmtLibWriter::addGroundUpperBounds( _groundUpperBounds, leafInstance ); + SmtLibWriter::addGroundLowerBounds( _groundLowerBounds, leafInstance ); + + for ( unsigned i = 0; i < m; ++i ) + { + SparseUnsortedList tempRow = SparseUnsortedList(); + for ( unsigned j = 0; j < n; ++j ) //TODO consider improving + if ( !FloatUtils::isZero( ( *_initialTableau )[i][j]) ) + { + tempRow.append( j, ( *_initialTableau )[i][j] ); + tempRow.incrementSize(); + } + SmtLibWriter::addTableauRow( tempRow, leafInstance ); + tempRow.clear(); + } + + for ( auto &constraint : _problemConstraints ) + if ( constraint._type == PiecewiseLinearFunctionType::RELU ) + { + auto vars = constraint._constraintVars; + b = vars.front(); + vars.popBack(); + f = vars.back(); + SmtLibWriter::addReLUConstraint( b, f, constraint._status, leafInstance ); + } + + SmtLibWriter::addFooter(leafInstance ); + SmtLibWriter::writeInstanceToFile( "", _delegationNumber, leafInstance ); +} + +void CertificateNode::removePLCExplanationsBelowDecisionLevel( unsigned decisionLevel ) +{ + _PLCExplanations.remove_if( [decisionLevel] ( PLCExplanation* expl ){ return expl->_decisionLevel <= decisionLevel; } ); +} \ No newline at end of file diff --git a/src/engine/UNSATCertificate.h b/src/engine/UNSATCertificate.h new file mode 100644 index 0000000000..acea3f97ed --- /dev/null +++ b/src/engine/UNSATCertificate.h @@ -0,0 +1,337 @@ +/********************* */ +/*! \file BoundsExplainer.cpp + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + + +#ifndef __UNSATCertificate_h__ +#define __UNSATCertificate_h__ + +#include "BoundsExplainer.h" +#include +#include +#include "ReluConstraint.h" +#include "PiecewiseLinearFunctionType.h" +#include "SmtLibWriter.h" +#include "Options.h" + +/* + * Contains all necessary info of a ground bound update during a run (i.e from ReLU phase-fixing) + */ +struct PLCExplanation +{ + unsigned _causingVar; + unsigned _affectedVar; + double _bound; + bool _isCausingBoundUpper; + bool _isAffectedBoundUpper; + double *_explanation; + PiecewiseLinearFunctionType _constraintType; + unsigned _decisionLevel; + + ~PLCExplanation() + { + if ( _explanation ) + { + delete [] _explanation; + _explanation = NULL; + } + } +}; + +/* + * Contains all ino relevant for a simple Marabou contradiction - i.e. explanations of contradicting bounds for a variable + */ +struct Contradiction +{ + unsigned _var; + double *_upperExplanation; + double *_lowerExplanation; + + ~Contradiction() + { + if ( _upperExplanation ) + { + delete [] _upperExplanation; + _upperExplanation = NULL; + } + + if ( _lowerExplanation ) + { + delete [] _lowerExplanation; + _lowerExplanation = NULL; + } + } +}; + +/* + * A smaller representation of a problem constraint + */ +struct ProblemConstraint +{ + PiecewiseLinearFunctionType _type; + List _constraintVars; + PhaseStatus _status; + + bool operator==(const ProblemConstraint other) + { + return _type == other._type && _constraintVars == other._constraintVars; + } +}; + +enum DelegationStatus : unsigned +{ + DONT_DELEGATE = 0, + DELEGATE_DONT_SAVE =1, + DELEGATE_SAVE = 2 +}; + +/* + * A certificate node in the tree representing the UNSAT certificate + */ +class CertificateNode +{ +public: + + /* + * Constructor for the root + */ + CertificateNode( std::vector> *_initialTableau, std::vector &groundUBs, std::vector &groundLBs ); + + /* + * Constructor for a regular node + */ + CertificateNode( CertificateNode* parent, PiecewiseLinearCaseSplit split ); + + ~CertificateNode(); + + /* + * Certifies the tree is indeed a proof of unsatisfiability; + */ + bool certify(); + + /* + * Sets the leaf contradiction certificate as input + */ + void setContradiction( Contradiction *certificate ); + + /* + * Returns the leaf contradiction certificate of the node + */ + Contradiction* getContradiction() const; + + /* + * Returns the parent of a node + */ + CertificateNode* getParent() const; + + /* + * Returns the parent of a node + */ + const PiecewiseLinearCaseSplit& getSplit() const; + + /* + * Returns the list of PLC explanations of the node + */ + const std::list& getPLCExplanations() const; + + /* + * Adds an PLC explanation to the list + */ + void addPLCExplanation( PLCExplanation *expl ); + + /* + * Adds an a problem constraint to the list + */ + void addProblemConstraint( PiecewiseLinearFunctionType type, List constraintVars, PhaseStatus status ); + + /* + * Returns a pointer to a child by a head split, or NULL if not found + */ + CertificateNode* getChildBySplit( const PiecewiseLinearCaseSplit &split ) const; + + /* + * Sets value of _hasSATSolution to be true + */ + void hasSATSolution(); + + /* + * Sets value of _wasVisited to be true + */ + void wasVisited(); + + /* + * Sets value of _shouldDelegate to be true + * Saves delegation to file iff saveToFile is true + */ + void shouldDelegate( unsigned delegationNumber, DelegationStatus saveToFile ); + + /* + * Removes all PLC explanations + */ + void deletePLCExplanations(); + + /* + * Removes all PLC explanations from a certain point + */ + void resizePLCExplanationsList( unsigned newSize ); + + /* + * Deletes all offsprings of the node and makes it a leaf + */ + void makeLeaf(); + + /* + * Removes all PLCExplanations above a certain decision level WITHOUT deleting them + * ASSUMPTION - explanations pointers are kept elsewhere before removal + */ + void removePLCExplanationsBelowDecisionLevel( unsigned decisionLevel ); + +private: + std::list _children; + List _problemConstraints; + CertificateNode* _parent; + std::list _PLCExplanations; + Contradiction* _contradiction; + PiecewiseLinearCaseSplit _headSplit; + bool _hasSATSolution; // Enables certifying correctness of UNSAT certificates built before concluding SAT. + bool _wasVisited; // Same TODO consider deleting when done + DelegationStatus _delegationStatus; + unsigned _delegationNumber; + + std::vector>* _initialTableau; + std::vector _groundUpperBounds; + std::vector _groundLowerBounds; + + /* + * Copies initial tableau and ground bounds + */ + void copyGB( std::vector &groundUBs, std::vector &groundLBs ); + + /* + * Inherits the initialTableau pointer, the ground bounds and the problem constraint from parent, if exists. + * Fixes the phase of the constraint that corresponds to the head split + */ + void passChangesToChildren( ProblemConstraint *childrenSplitConstraint ); + + /* + * Checks if the node is a valid leaf + */ + bool isValidLeaf() const; + + /* + * Checks if the node is a valid none-leaf + */ + bool isValidNoneLeaf() const; + + /* + * Write a leaf marked to delegate to a smtlib file format + */ + void writeLeafToFile(); + + /* + * Return true iff a list of splits represents a splits over a single variable + */ + bool certifySingleVarSplits( const List &splits ) const; + + /* + * Return true iff the changes in the ground bounds are certified, with tolerance to errors with epsilon size at most + */ + bool certifyAllPLCExplanations( double epsilon ); + + /* + * Return a pointer to the problem constraint representing the split + */ + ProblemConstraint *getCorrespondingReLUConstraint(const List &splits ); + + /* + * Certifies a contradiction + */ + bool certifyContradiction() const; + + /* + * Computes a bound according to an explanation + */ + double explainBound( unsigned var, bool isUpper, const std::vector &expl ) const; +}; + +class UNSATCertificateUtils +{ +public: + /* + * Use explanation to compute a bound (aka explained bound) + * Given a variable, an explanation, initial tableau and ground bounds. + */ + static double computeBound( unsigned var, bool isUpper, const std::vector &expl, + const std::vector> &initialTableau, const std::vector &groundUBs, const std::vector &groundLBs ) + { + ASSERT( groundLBs.size() == groundUBs.size() ); + ASSERT( initialTableau.size() == expl.size() || expl.empty() ); + ASSERT( groundLBs.size() == initialTableau[0].size() ); + ASSERT( groundLBs.size() == initialTableau[initialTableau.size() - 1].size() ); + ASSERT( var < groundUBs.size() ); + + double derived_bound = 0, temp; + unsigned n = groundUBs.size(); + + if ( expl.empty() ) + return isUpper ? groundUBs[var] : groundLBs[var]; + + // Create linear combination of original rows implied from explanation + std::vector explRowsCombination; + UNSATCertificateUtils::getExplanationRowCombination( var, explRowsCombination, expl, initialTableau ); + + // Set the bound derived from the linear combination, using original bounds. + for ( unsigned i = 0; i < n; ++i ) + { + temp = explRowsCombination[i]; + if ( !FloatUtils::isZero( temp ) ) + { + if ( isUpper ) + temp *= FloatUtils::isPositive( explRowsCombination[i] ) ? groundUBs[i] : groundLBs[i]; + else + temp *= FloatUtils::isPositive( explRowsCombination[i] ) ? groundLBs[i] : groundUBs[i]; + + if ( !FloatUtils::isZero( temp ) ) + derived_bound += temp; + } + } + + explRowsCombination.clear(); + return derived_bound; + } + + /* + * Given a var, a tableau and a column vector, create a linear combination used to explain a bound + */ + static void getExplanationRowCombination( unsigned var, std::vector &explRowsCombination, const std::vector &expl, + const std::vector> &initialTableau ) + { + explRowsCombination = std::vector(initialTableau[0].size(), 0 ); + unsigned n = initialTableau[0].size(), m = expl.size(); + for ( unsigned i = 0; i < m; ++i ) + for ( unsigned j = 0; j < n; ++j ) + if ( !FloatUtils::isZero( initialTableau[i][j] ) && !FloatUtils::isZero( expl[i]) ) + explRowsCombination[j] += initialTableau[i][j] * expl[i]; + + for ( unsigned i = 0; i < n; ++i ) + if ( !FloatUtils::isZero( explRowsCombination[i] ) ) + explRowsCombination[i] *= -1; + else + explRowsCombination[i] = 0; + + // Since: 0 = Sum (ci * xi) + c * var = Sum (ci * xi) + (c - 1) * var + var + // We have: var = - Sum (ci * xi) - (c - 1) * var + explRowsCombination[var] += 1; + } +}; +#endif //__UNSATCertificate_h__ \ No newline at end of file From 626acc3aedd47dc7708b7f7c297d41243b70eaf3 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Thu, 17 Feb 2022 16:02:04 +0200 Subject: [PATCH 002/165] Add files via upload --- src/common/SmtLibWriter.h | 120 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 src/common/SmtLibWriter.h diff --git a/src/common/SmtLibWriter.h b/src/common/SmtLibWriter.h new file mode 100644 index 0000000000..0f165b35a6 --- /dev/null +++ b/src/common/SmtLibWriter.h @@ -0,0 +1,120 @@ +/********************* */ +/*! \file SmtLibWriter.h + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#ifndef MARABOU_SMTLIBWRITER_H +#define MARABOU_SMTLIBWRITER_H +#include "List.h" +#include "MString.h" +#include "SparseUnsortedList.h" +#include "vector" +#include + + +/* + * A class responsible for writing instances of LP+PLC into SMTLIB format + */ +class SmtLibWriter +{ +public: + + /* + * Adds a SMTLIB header to the SMTLIB instance with n variables + */ + static void addHeader( unsigned n, List &instance ) + { + instance.append( "( set-logic QF_LRA )\n" ); + for ( unsigned i = 0; i < n; ++i ) + instance.append( "( declare-fun x" + std::to_string( i ) + " () Real )\n" ); + } + + /* + * Adds a SMTLIB footer to the SMTLIB instance + */ + static void addFooter( List &instance ) + { + instance.append( "( check-sat )\n" ); + instance.append( "( exit )\n" ); + } + + /* + * Adds a line representing ReLU constraint, in SMTLIB format, to the SMTLIB instance + */ + static void addReLUConstraint( unsigned b, unsigned f, PhaseStatus status, List &instance ) + { + if ( status == PHASE_NOT_FIXED ) + instance.append( "( assert ( = x" + std::to_string( f ) + " ( ite ( >= x" + std::to_string( b ) + " 0) x" + std::to_string( b )+ " 0 ) ) )\n" ); + else if ( status == RELU_PHASE_ACTIVE ) + instance.append( "( assert ( = x" + std::to_string( f ) + " x" + std::to_string( b ) + " ) )\n" ); + else if ( status == RELU_PHASE_INACTIVE ) + instance.append( "( assert ( = x" + std::to_string( f ) + " 0 ) )\n" ); + } + + /* + * Adds a line representing a Tableau Row, in SMTLIB format, to the SMTLIB instance + */ + static void addTableauRow( const SparseUnsortedList &row, List &instance ) + { + unsigned size = row.getSize(), counter = 0; + String assertRowLine = "( assert ( = 0"; + for ( auto &entry : row ) + { + if ( counter != size - 1 ) + assertRowLine += " ( + ( * " + signedValue( entry._value ) + " x" + std::to_string( entry._index ) + " )"; + else + assertRowLine += " ( * " + signedValue( entry._value ) + " x" + std::to_string( entry._index ) + " )"; + ++counter; + } + + assertRowLine += std::string( counter + 1, ')' ); + instance.append( assertRowLine + "\n" ); + } + + /* + * Adds lines representing a the ground upper bounds, in SMTLIB format, to the SMTLIB instance + */ + static void addGroundUpperBounds( const std::vector &bounds,List &instance ) + { + unsigned n = bounds.size(); + for ( unsigned i = 0; i < n; ++i) + instance.append( " ( assert ( <= x" + std::to_string( i ) + " " + signedValue( bounds[i] ) + " ) )\n" ); + } + + /* + * Adds lines representing a the ground lower bounds, in SMTLIB format, to the SMTLIB instance + */ + static void addGroundLowerBounds( const std::vector &bounds, List &instance ) + { + unsigned n = bounds.size(); + for ( unsigned i = 0; i < n; ++i) + instance.append( " ( assert ( >= x" + std::to_string( i ) + " " + signedValue( bounds[i] ) + " ) )\n" ); + } + + /* + * Write the instances to files + */ + static void writeInstanceToFile( const std::string &directory, unsigned delegationNumber , const List& instance ) + { + std::ofstream file ( directory + "delegated" + std::to_string( delegationNumber ) + ".smtlib"); + for ( const String &s : instance ) + file << s; + file.close(); + } + + static std::string signedValue( double val ) + { + return val > 0 ? std::to_string( val ) : "( - " + std::to_string( abs( val ) ) + " )"; + } +}; + +#endif //MARABOU_SMTLIBWRITER_H \ No newline at end of file From 99665c881c38d638f00730c0ffdee9c2c599d210 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Thu, 17 Feb 2022 16:02:49 +0200 Subject: [PATCH 003/165] Add files via upload --- src/engine/tests/Test_BoundsExplainer.h | 198 ++++++++++++++++++++++++ src/engine/tests/Test_CertificateNode.h | 190 +++++++++++++++++++++++ 2 files changed, 388 insertions(+) create mode 100644 src/engine/tests/Test_BoundsExplainer.h create mode 100644 src/engine/tests/Test_CertificateNode.h diff --git a/src/engine/tests/Test_BoundsExplainer.h b/src/engine/tests/Test_BoundsExplainer.h new file mode 100644 index 0000000000..eddbccb657 --- /dev/null +++ b/src/engine/tests/Test_BoundsExplainer.h @@ -0,0 +1,198 @@ +/********************* */ +/*! \file BoundsExplainer.h + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + + +#include + +#include "BoundsExplainer.h" +#include "context/cdlist.h" +#include "context/context.h" + +class BoundsExplainerTestSuite : public CxxTest::TestSuite +{ +public: + + void setUp() + { + } + + void tearDown() + { + } + + /* + * Test initialization of BoundsExplainer + */ + void testInitialization() + { + unsigned varsNum = 3, rowsNum = 5; + BoundsExplainer be( varsNum, rowsNum ); + + TS_ASSERT_EQUALS( be.getRowsNum(), rowsNum ); + TS_ASSERT_EQUALS( be.getVarsNum(), varsNum ); + + for ( unsigned i = 0; i < varsNum; ++i ) + { + TS_ASSERT(be.getExplanation( i, true ).empty() ); + TS_ASSERT(be.getExplanation( i, false ).empty() ); + } + } + + /* + * Test explanation injection + */ + void testExplanationInjection() + { + unsigned varsNum = 2, rowsNum = 2; + double value = -2.55; + BoundsExplainer be( varsNum, rowsNum ); + + TS_ASSERT_THROWS_NOTHING( be.injectExplanation( std::vector( varsNum, value ), 0, true ) ); + auto expl = be.getExplanation( 0, true ); + + for ( auto num : expl ) + TS_ASSERT_EQUALS( num, value ); + } + + /* + * Test addition of an explanation of the new variable, and correct updates of all previous explanations + */ + void testVariableAddition() + { + unsigned varsNum = 2, rowsNum = 2; + BoundsExplainer be( varsNum, rowsNum ); + TS_ASSERT_THROWS_NOTHING( be.injectExplanation( std::vector( varsNum, 1 ), varsNum - 1, true ) ); + TS_ASSERT_THROWS_NOTHING( be.injectExplanation( std::vector( varsNum, 5 ), varsNum - 1, false ) ); + be.addVariable(); + + TS_ASSERT_EQUALS(be.getRowsNum(), rowsNum + 1 ); + TS_ASSERT_EQUALS(be.getVarsNum(), varsNum + 1 ); + + for ( unsigned i = 0; i < varsNum; ++ i) + { + TS_ASSERT(be.getExplanation( i, true ).empty() || ( be.getExplanation( i, true ).back() == 0 && be.getExplanation( i, true ).size() == varsNum + 1) ); + TS_ASSERT(be.getExplanation( i, false ).empty() || ( be.getExplanation( i, false ).back() == 0 && be.getExplanation( i, false ).size() == varsNum + 1) ); + } + + TS_ASSERT(be.getExplanation( varsNum, true ).empty() ); + TS_ASSERT(be.getExplanation( varsNum, false ).empty() ) ; + } + + /* + * Test explanation reset + */ + void testExplanationReset() + { + unsigned varsNum = 1, rowsNum = 1; + BoundsExplainer be( varsNum, rowsNum ); + + TS_ASSERT_THROWS_NOTHING( be.injectExplanation( std::vector( rowsNum, 1 ), 0, true ) ); + TS_ASSERT( !be.getExplanation( 0 , true ).empty() ); + + be.resetExplanation(0, true ); + TS_ASSERT( be.getExplanation( 0 , true ).empty() ); + } + + /* + * Test main functionality of BoundsExplainer i.e. updating explanations according to tableau rows + */ + void testExplanationUpdates() + { + unsigned varsNum = 6, rowsNum = 3; + BoundsExplainer be( varsNum, rowsNum ); + std::vector row1 { 1, 0, 0 }; + std::vector row2 { 0, -1, 0 }; + std::vector row3 { 0, 0, 2.5 }; + + TableauRow updateTableauRow( 6 ); + // row1 + row2 := x2 = x0 + 2 x1 - x3 + x4 + // Equivalently x3 = x0 + 2 x1 - x2 - x3 + x4 + // Equivalently x1 = -0.5 x0 + 0.5 x2 + 0.5 x3 - 0.5 x4 + // Rows coefficients are { -1, 1, 0 } + updateTableauRow._scalar = 0; + updateTableauRow._lhs = 2; + updateTableauRow._row[0] = TableauRow::Entry( 0, 1 ); + updateTableauRow._row[1] = TableauRow::Entry( 1, 2 ); + updateTableauRow._row[2] = TableauRow::Entry( 3, -1 ); + updateTableauRow._row[3] = TableauRow::Entry( 4, 1 ); + updateTableauRow._row[4] = TableauRow::Entry( 5, 0 ); + + TS_ASSERT_THROWS_NOTHING( be.injectExplanation( row1, 0, true ) ); + TS_ASSERT_THROWS_NOTHING( be.injectExplanation( row2, 1, true ) ); + TS_ASSERT_THROWS_NOTHING( be.injectExplanation( row3, 1, false ) ); // Will not be possible in an actual tableau + + be.updateBoundExplanation( updateTableauRow, true ); + // Result is { 1, 0, 0 } + 2 * { 0, -1, 0 } + { -1, 1, 0} + std::vector res1 { 0, -1, 0 }; + TS_ASSERT_EQUALS( be.getExplanation( 2, true ), res1 ); + + be.updateBoundExplanation( updateTableauRow, false, 3 ); + // Result is 2 * { 0, 0, 2.5 } + { -1, 1, 0 } + std::vector res2 { -1, 2, 5 }; + TS_ASSERT_EQUALS( be.getExplanation( 3, false ), res2 ); + + be.updateBoundExplanation( updateTableauRow, false, 1 ); + // Result is -0.5 * { 1, 0, 0 } + 0.5 * { -1, 2, 5 } - 0.5 * { -1, 1, 0 } + std::vector res3 { -0.5, 0.5, 2.5 }; + TS_ASSERT_EQUALS( be.getExplanation( 1, false ), res3 ); + + // row3:= x1 = x5 + // Rows coefficients are { 0, 0, -2.5 } + SparseUnsortedList updateSparseRow( 0 ); + updateSparseRow.append( 1, -2.5 ); + updateSparseRow.append( 5, -2.5 ); + + be.updateBoundExplanationSparse( updateSparseRow, true, 5 ); + // Result is ( 1 / 2.5 ) * ( -2.5 ) * { -0.5, 0.5, 2.5 } + ( 1 / 2.5 ) * { 0, 0, -2.5 } + std::vector res4 { 0.5, -0.5, -3.5 }; + TS_ASSERT_EQUALS( be.getExplanation( 5, true ), res4 ); + } + + /* + * Test deep copying of BoundsExplainer using operator= + */ + void testCopying() + { + unsigned varsNum = 2, rowsNum = 2; + BoundsExplainer be( varsNum, rowsNum ); + + TS_ASSERT_THROWS_NOTHING( be.injectExplanation( std::vector( rowsNum, 1 ), varsNum - 1, true ) ); + TS_ASSERT_THROWS_NOTHING( be.injectExplanation( std::vector( rowsNum, 5 ), varsNum - 1, false ) ); + + BoundsExplainer beCopy( 1, 1 ); + beCopy = be; + + TS_ASSERT_EQUALS( beCopy.getRowsNum(), be.getRowsNum() ); + TS_ASSERT_EQUALS( beCopy.getVarsNum(), be.getVarsNum() ); + + for ( unsigned i = 0; i < varsNum; ++i) + { + auto upperExpl = be.getExplanation( i, true ); + auto lowerExpl = be.getExplanation( i, false ); + + auto upperExplCopy = beCopy.getExplanation( i, true ); + auto lowerExplCopy = beCopy.getExplanation( i, false ); + + TS_ASSERT_EQUALS( upperExpl, upperExplCopy ); + TS_ASSERT_EQUALS( lowerExpl, lowerExplCopy ); + } + } +}; + +// +// Local Variables: +// compile-command: "make -C ../../.. " +// tags-file-name: "../../../TAGS" +// c-basic-offset: 4 +// End: diff --git a/src/engine/tests/Test_CertificateNode.h b/src/engine/tests/Test_CertificateNode.h new file mode 100644 index 0000000000..642be692aa --- /dev/null +++ b/src/engine/tests/Test_CertificateNode.h @@ -0,0 +1,190 @@ +/********************* */ +/*! \file BoundsExplainer.h + ** \verbatim + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2019 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + + +#include + +#include "BoundsExplainer.h" +#include "context/cdlist.h" +#include "context/context.h" +#include "UNSATCertificate.h" + +class CertificateNodeTestSuite : public CxxTest::TestSuite +{ +public: + + void setUp() + { + } + + void tearDown() + { + } + + void testTreeRelations() + { + std::vector row1 = { 1, 0, -1, 1, 0, 0 }; + std::vector row2 = { 0, -1, 2, 0, 1, 0 }; + std::vector row3 = { 0.5, 0, -1, 0, 0, 1 }; + std::vector> it = { row1, row2, row3 }; + + std::vector ugb( 6, 1 ); + std::vector lgb( 6, 0 ); + + CertificateNode *root = new CertificateNode( &it, ugb, lgb ); + + ReluConstraint relu = ReluConstraint(1, 3); + auto splits = relu.getCaseSplits(); + TS_ASSERT_EQUALS( splits.size(), ( unsigned ) 2 ); + + PiecewiseLinearCaseSplit split1 = splits.back(); + PiecewiseLinearCaseSplit split2 = splits.front(); + + CertificateNode *child1 = new CertificateNode( root, split1 ); + CertificateNode *child2 = new CertificateNode( root, split2 ); + + TS_ASSERT_EQUALS( child1->getParent(), root ); + TS_ASSERT_EQUALS( child2->getParent(), root ); + + TS_ASSERT_EQUALS( root->getChildBySplit( split1 ), child1 ); + TS_ASSERT_EQUALS( root->getChildBySplit( split2 ), child2 ); + + TS_ASSERT_EQUALS( child1->getSplit(), split1 ); + TS_ASSERT_EQUALS( child2->getSplit(), split2 ); + + root->makeLeaf(); + + TS_ASSERT_EQUALS(root->getChildBySplit( split1 ), nullptr ); + TS_ASSERT_EQUALS(root->getChildBySplit( split2 ), nullptr ); + + delete root; + } + + void testContradiction() + { + std::vector> it = { std::vector( 1,1 ) }; + std::vector ugb( 1, 1 ); + std::vector lgb( 1, 0 ); + + CertificateNode root = CertificateNode( &it, ugb, lgb ); + auto uexpl = new double [1]; + uexpl[0] = 1; + + auto lexpl = new double [1]; + lexpl[0] = -1; + + Contradiction* contra = new Contradiction { 0, uexpl, lexpl }; + root.setContradiction( contra ); + TS_ASSERT_EQUALS( root.getContradiction(), contra ); + } + + void testPLCExplChanges() + { + std::vector> it = { std::vector( 1,1 ) }; + std::vector ugb( 1, 1 ); + std::vector lgb( 1, 0 ); + + CertificateNode root = CertificateNode( &it, ugb, lgb ); + + PLCExplanation *expl1 = new PLCExplanation { 1, 1, 0, true, true, NULL, RELU, 0 }; + PLCExplanation *expl2 = new PLCExplanation { 1, 1, -1, true, true, NULL, RELU, 1 }; + PLCExplanation *expl3 = new PLCExplanation { 1, 1, -4, true, true, NULL, RELU, 2 }; + + TS_ASSERT( root.getPLCExplanations().empty() ); + + root.addPLCExplanation( expl1 ); + root.addPLCExplanation( expl2 ); + root.addPLCExplanation( expl3 ); + TS_ASSERT_EQUALS( root.getPLCExplanations().size(), ( unsigned ) 3 ); + + root.removePLCExplanationsBelowDecisionLevel( 0 ); + TS_ASSERT_EQUALS( root.getPLCExplanations().size(), ( unsigned ) 2 ); + TS_ASSERT_EQUALS( root.getPLCExplanations().front(), expl2 ); + TS_ASSERT_EQUALS( root.getPLCExplanations().back(), expl3 ); + + root.resizePLCExplanationsList( 1 ); + TS_ASSERT_EQUALS( root.getPLCExplanations().size(), ( unsigned ) 1 ); + TS_ASSERT_EQUALS( root.getPLCExplanations().back(), expl2 ); + + root.deletePLCExplanations(); + TS_ASSERT( root.getPLCExplanations().empty() ); + + delete expl1; // removePLCExplanationsBelowDecisionLevel doesn't delete by itself + } + + void testCertification() + { + std::vector row1 = { 1, 0, -1, 0, 1, 0, 0 }; // Row of ReLU1 + std::vector row2 = { 0, 1, 0, -1, 0, 1, 0 }; // Row of ReLU2 + std::vector row3 = { 0.5, 0, -1, 0, 0, 0, 1 }; + std::vector> it = { row1, row2, row3 }; + + std::vector ugb( row1.size(), 1 ); + std::vector lgb( row1.size(), 0 ); + ugb[6] = 2; + + // Set a complete tree of depth 3, using 2 ReLUs + CertificateNode *root = new CertificateNode( &it, ugb, lgb ); + + ReluConstraint relu1 = ReluConstraint( 0, 2 ); // aux var is 4 + ReluConstraint relu2 = ReluConstraint( 1, 3) ; // aux var is 5 + + root->addProblemConstraint( RELU, { 0, 2, 4 }, PHASE_NOT_FIXED ); + root->addProblemConstraint( RELU, { 1, 3, 5 }, PHASE_NOT_FIXED ); + + auto splits1 = relu1.getCaseSplits(); + auto splits2 = relu2.getCaseSplits(); + TS_ASSERT_EQUALS( splits1.size(), ( unsigned ) 2 ); + TS_ASSERT_EQUALS( splits2.size(), ( unsigned ) 2 ); + + PiecewiseLinearCaseSplit split1_1 = splits1.back(); + PiecewiseLinearCaseSplit split1_2 = splits1.front(); + + PiecewiseLinearCaseSplit split2_1 = splits2.back(); + PiecewiseLinearCaseSplit split2_2 = splits2.front(); + + TS_ASSERT_EQUALS( split1_2.getBoundTightenings().size(), ( unsigned ) 2 ); + + CertificateNode *child1 = new CertificateNode( root, split1_1 ); // Child with missing aux tightening + CertificateNode *child2 = new CertificateNode( root, split1_2 ); + + CertificateNode *child2_1 = new CertificateNode( child2, split2_1 ); + CertificateNode *child2_2 = new CertificateNode( child2, split2_2 ); + + root->wasVisited(); + child2->wasVisited(); + child1->wasVisited(); + child2_1->wasVisited(); + + // Visited leaves have no contradiction, so certification will fail + TS_ASSERT( !root->certify() ); + + // Mark visited leaves with flags that immediately certify them + child1->hasSATSolution(); + child2_1->shouldDelegate( 0, DelegationStatus::DELEGATE_DONT_SAVE ); + TS_ASSERT( root->certify() ); + + // Visited leaf should be checked as well + // Certification should fail since child2_2 has no contradiction + child2_2->wasVisited(); + TS_ASSERT(!root->certify() ); + + delete root; + } +}; +// +// Local Variables: +// compile-command: "make -C ../../.. " +// tags-file-name: "../../../TAGS" +// c-basic-offset: 4 +// End: + From 45887189e29ab2333846f77b0df33440c06e3bb7 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 20 Feb 2022 17:53:23 +0200 Subject: [PATCH 004/165] Update SmtLibWriter.h --- src/common/SmtLibWriter.h | 152 +++++++++++++------------------------- 1 file changed, 52 insertions(+), 100 deletions(-) diff --git a/src/common/SmtLibWriter.h b/src/common/SmtLibWriter.h index 0f165b35a6..fd4dcd4328 100644 --- a/src/common/SmtLibWriter.h +++ b/src/common/SmtLibWriter.h @@ -1,120 +1,72 @@ /********************* */ /*! \file SmtLibWriter.h - ** \verbatim - ** Top contributors (to current version): - ** Omri Isac, Guy Katz - ** This file is part of the Marabou project. - ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS - ** in the top-level source directory) and their institutional affiliations. - ** All rights reserved. See the file COPYING in the top-level source - ** directory for licensing information.\endverbatim - ** - ** [[ Add lengthier description here ]] - **/ +** \verbatim +** Top contributors (to current version): +** Omri Isac, Guy Katz +** This file is part of the Marabou project. +** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS +** in the top-level source directory) and their institutional affiliations. +** All rights reserved. See the file COPYING in the top-level source +** directory for licensing information.\endverbatim +** +** [[ Add lengthier description here ]] +**/ -#ifndef MARABOU_SMTLIBWRITER_H -#define MARABOU_SMTLIBWRITER_H +#ifndef __SmtLibWriter_h__ +#define __SmtLibWriter_h__ + +#include "File.h" #include "List.h" #include "MString.h" +#include "PiecewiseLinearConstraint.h" #include "SparseUnsortedList.h" -#include "vector" -#include - +#include "Vector.h" /* - * A class responsible for writing instances of LP+PLC into SMTLIB format - */ +* A class responsible for writing instances of LP+PLC into SMTLIB format +*/ class SmtLibWriter { public: + /* + Adds a SMTLIB header to the SMTLIB instance with numberOfVariables variables + */ + static void addHeader( unsigned numberOfVariables, List &instance ); - /* - * Adds a SMTLIB header to the SMTLIB instance with n variables - */ - static void addHeader( unsigned n, List &instance ) - { - instance.append( "( set-logic QF_LRA )\n" ); - for ( unsigned i = 0; i < n; ++i ) - instance.append( "( declare-fun x" + std::to_string( i ) + " () Real )\n" ); - } - - /* - * Adds a SMTLIB footer to the SMTLIB instance - */ - static void addFooter( List &instance ) - { - instance.append( "( check-sat )\n" ); - instance.append( "( exit )\n" ); - } - - /* - * Adds a line representing ReLU constraint, in SMTLIB format, to the SMTLIB instance - */ - static void addReLUConstraint( unsigned b, unsigned f, PhaseStatus status, List &instance ) - { - if ( status == PHASE_NOT_FIXED ) - instance.append( "( assert ( = x" + std::to_string( f ) + " ( ite ( >= x" + std::to_string( b ) + " 0) x" + std::to_string( b )+ " 0 ) ) )\n" ); - else if ( status == RELU_PHASE_ACTIVE ) - instance.append( "( assert ( = x" + std::to_string( f ) + " x" + std::to_string( b ) + " ) )\n" ); - else if ( status == RELU_PHASE_INACTIVE ) - instance.append( "( assert ( = x" + std::to_string( f ) + " 0 ) )\n" ); - } + /* + Adds a SMTLIB footer to the SMTLIB instance + */ + static void addFooter( List &instance ); - /* - * Adds a line representing a Tableau Row, in SMTLIB format, to the SMTLIB instance - */ - static void addTableauRow( const SparseUnsortedList &row, List &instance ) - { - unsigned size = row.getSize(), counter = 0; - String assertRowLine = "( assert ( = 0"; - for ( auto &entry : row ) - { - if ( counter != size - 1 ) - assertRowLine += " ( + ( * " + signedValue( entry._value ) + " x" + std::to_string( entry._index ) + " )"; - else - assertRowLine += " ( * " + signedValue( entry._value ) + " x" + std::to_string( entry._index ) + " )"; - ++counter; - } + /* + Adds a line representing ReLU constraint, in SMTLIB format, to the SMTLIB instance + */ + static void addReLUConstraint( unsigned b, unsigned f, PhaseStatus status, List &instance ); - assertRowLine += std::string( counter + 1, ')' ); - instance.append( assertRowLine + "\n" ); - } + /* + Adds a line representing a Tableau Row, in SMTLIB format, to the SMTLIB instance + */ + static void addTableauRow( const SparseUnsortedList &row, List &instance ); - /* - * Adds lines representing a the ground upper bounds, in SMTLIB format, to the SMTLIB instance - */ - static void addGroundUpperBounds( const std::vector &bounds,List &instance ) - { - unsigned n = bounds.size(); - for ( unsigned i = 0; i < n; ++i) - instance.append( " ( assert ( <= x" + std::to_string( i ) + " " + signedValue( bounds[i] ) + " ) )\n" ); - } + /* + Adds lines representing the ground upper bounds, in SMTLIB format, to the SMTLIB instance + */ + static void addGroundUpperBounds( Vector &bounds, List &instance ); - /* - * Adds lines representing a the ground lower bounds, in SMTLIB format, to the SMTLIB instance - */ - static void addGroundLowerBounds( const std::vector &bounds, List &instance ) - { - unsigned n = bounds.size(); - for ( unsigned i = 0; i < n; ++i) - instance.append( " ( assert ( >= x" + std::to_string( i ) + " " + signedValue( bounds[i] ) + " ) )\n" ); - } + /* + Adds lines representing the ground lower bounds, in SMTLIB format, to the SMTLIB instance + */ + static void addGroundLowerBounds( Vector &bounds, List &instance ); - /* - * Write the instances to files - */ - static void writeInstanceToFile( const std::string &directory, unsigned delegationNumber , const List& instance ) - { - std::ofstream file ( directory + "delegated" + std::to_string( delegationNumber ) + ".smtlib"); - for ( const String &s : instance ) - file << s; - file.close(); - } + /* + Writes an instances to a file + */ + static void writeInstanceToFile( const String &directory, unsigned delegationNumber, const List &instance ); - static std::string signedValue( double val ) - { - return val > 0 ? std::to_string( val ) : "( - " + std::to_string( abs( val ) ) + " )"; - } + /* + Returns a string representing the value of a double + */ + static String signedValue( double val ); }; -#endif //MARABOU_SMTLIBWRITER_H \ No newline at end of file +#endif //__SmtLibWriter_h__ From 5ab0def77b871fd17fdc28389d60bad2fee076d0 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 20 Feb 2022 17:54:06 +0200 Subject: [PATCH 005/165] Add files via upload --- src/common/SmtLibWriter.cpp | 87 +++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 src/common/SmtLibWriter.cpp diff --git a/src/common/SmtLibWriter.cpp b/src/common/SmtLibWriter.cpp new file mode 100644 index 0000000000..ccf0c8714e --- /dev/null +++ b/src/common/SmtLibWriter.cpp @@ -0,0 +1,87 @@ +/********************* */ +/*! \file SmtLibWriter.cpp + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#include "SmtLibWriter.h" + +void SmtLibWriter::addHeader( unsigned numberOfVariables, List &instance ) +{ + instance.append( "( set-logic QF_LRA )\n" ); + for ( unsigned i = 0; i < numberOfVariables; ++i ) + instance.append( "( declare-fun x" + std::to_string( i ) + " () Real )\n" ); +} + +void SmtLibWriter::addFooter( List &instance ) +{ + instance.append( "( check-sat )\n" ); + instance.append( "( exit )\n" ); +} + +void SmtLibWriter::addReLUConstraint( unsigned b, unsigned f, PhaseStatus status, List &instance ) +{ + if ( status == PHASE_NOT_FIXED ) + instance.append( "( assert ( = x" + std::to_string( f ) + " ( ite ( >= x" + std::to_string( b ) + " 0) x" + std::to_string( b )+ " 0 ) ) )\n" ); + else if ( status == RELU_PHASE_ACTIVE ) + instance.append( "( assert ( = x" + std::to_string( f ) + " x" + std::to_string( b ) + " ) )\n" ); + else if ( status == RELU_PHASE_INACTIVE ) + instance.append( "( assert ( = x" + std::to_string( f ) + " 0 ) )\n" ); +} + +void SmtLibWriter::addTableauRow( const SparseUnsortedList &row, List &instance ) +{ + unsigned size = row.getSize(), counter = 0; + String assertRowLine = "( assert ( = 0"; + for ( auto &entry : row ) + { + if ( counter != size - 1 ) + assertRowLine += String( " ( + ( * " ) + signedValue( entry._value ) + " x" + std::to_string( entry._index ) + " )"; + else + assertRowLine += String( " ( * " ) + signedValue( entry._value ) + " x" + std::to_string( entry._index ) + " )"; + ++counter; + } + + for ( unsigned i = 0; i < counter + 1 ; ++i ) + assertRowLine += String( ")" ); + + instance.append( assertRowLine + "\n" ); +} + +void SmtLibWriter::addGroundUpperBounds( Vector &bounds, List &instance ) +{ + unsigned n = bounds.size(); + for ( unsigned i = 0; i < n; ++i ) + instance.append( String( " ( assert ( >= x" + std::to_string( i ) ) + String( " " ) + signedValue( bounds[i] ) + " ) )\n" ); +} + +void SmtLibWriter::addGroundLowerBounds( Vector &bounds, List &instance ) +{ + unsigned n = bounds.size(); + for ( unsigned i = 0; i < n; ++i ) + instance.append( String( " ( assert ( >= x" + std::to_string( i ) ) + String( " " ) + signedValue( bounds[i] ) + " ) )\n" ); +} + +void SmtLibWriter::writeInstanceToFile( const String &directory, unsigned delegationNumber, const List &instance ) +{ + File file ( directory + "delegated" + std::to_string( delegationNumber ) + ".smtlib" ); + file.open(File::MODE_WRITE_TRUNCATE ); + + for ( const String &s : instance ) + file.write( s ); + + file.close(); +} + +String SmtLibWriter::signedValue( double val ) +{ + return val > 0 ? std::to_string( val ) : "( - " + std::to_string( abs( val ) ) + " )"; +} \ No newline at end of file From f7565a30f92b55f3a0133de786c0bf80a36d113e Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 20 Feb 2022 17:55:53 +0200 Subject: [PATCH 006/165] Update SmtLibWriter.cpp --- src/common/SmtLibWriter.cpp | 72 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/src/common/SmtLibWriter.cpp b/src/common/SmtLibWriter.cpp index ccf0c8714e..195301c06f 100644 --- a/src/common/SmtLibWriter.cpp +++ b/src/common/SmtLibWriter.cpp @@ -16,72 +16,72 @@ void SmtLibWriter::addHeader( unsigned numberOfVariables, List &instance ) { - instance.append( "( set-logic QF_LRA )\n" ); - for ( unsigned i = 0; i < numberOfVariables; ++i ) - instance.append( "( declare-fun x" + std::to_string( i ) + " () Real )\n" ); + instance.append( "( set-logic QF_LRA )\n" ); + for ( unsigned i = 0; i < numberOfVariables; ++i ) + instance.append( "( declare-fun x" + std::to_string( i ) + " () Real )\n" ); } void SmtLibWriter::addFooter( List &instance ) { - instance.append( "( check-sat )\n" ); - instance.append( "( exit )\n" ); + instance.append( "( check-sat )\n" ); + instance.append( "( exit )\n" ); } void SmtLibWriter::addReLUConstraint( unsigned b, unsigned f, PhaseStatus status, List &instance ) { - if ( status == PHASE_NOT_FIXED ) - instance.append( "( assert ( = x" + std::to_string( f ) + " ( ite ( >= x" + std::to_string( b ) + " 0) x" + std::to_string( b )+ " 0 ) ) )\n" ); - else if ( status == RELU_PHASE_ACTIVE ) - instance.append( "( assert ( = x" + std::to_string( f ) + " x" + std::to_string( b ) + " ) )\n" ); - else if ( status == RELU_PHASE_INACTIVE ) - instance.append( "( assert ( = x" + std::to_string( f ) + " 0 ) )\n" ); + if ( status == PHASE_NOT_FIXED ) + instance.append( "( assert ( = x" + std::to_string( f ) + " ( ite ( >= x" + std::to_string( b ) + " 0) x" + std::to_string( b )+ " 0 ) ) )\n" ); + else if ( status == RELU_PHASE_ACTIVE ) + instance.append( "( assert ( = x" + std::to_string( f ) + " x" + std::to_string( b ) + " ) )\n" ); + else if ( status == RELU_PHASE_INACTIVE ) + instance.append( "( assert ( = x" + std::to_string( f ) + " 0 ) )\n" ); } void SmtLibWriter::addTableauRow( const SparseUnsortedList &row, List &instance ) { - unsigned size = row.getSize(), counter = 0; - String assertRowLine = "( assert ( = 0"; - for ( auto &entry : row ) - { - if ( counter != size - 1 ) - assertRowLine += String( " ( + ( * " ) + signedValue( entry._value ) + " x" + std::to_string( entry._index ) + " )"; - else - assertRowLine += String( " ( * " ) + signedValue( entry._value ) + " x" + std::to_string( entry._index ) + " )"; - ++counter; - } + unsigned size = row.getSize(), counter = 0; + String assertRowLine = "( assert ( = 0"; + for ( auto &entry : row ) + { + if ( counter != size - 1 ) + assertRowLine += String( " ( + ( * " ) + signedValue( entry._value ) + " x" + std::to_string( entry._index ) + " )"; + else + assertRowLine += String( " ( * " ) + signedValue( entry._value ) + " x" + std::to_string( entry._index ) + " )"; + ++counter; + } - for ( unsigned i = 0; i < counter + 1 ; ++i ) - assertRowLine += String( ")" ); + for ( unsigned i = 0; i < counter + 1 ; ++i ) + assertRowLine += String( ")" ); - instance.append( assertRowLine + "\n" ); + instance.append( assertRowLine + "\n" ); } void SmtLibWriter::addGroundUpperBounds( Vector &bounds, List &instance ) { - unsigned n = bounds.size(); - for ( unsigned i = 0; i < n; ++i ) - instance.append( String( " ( assert ( >= x" + std::to_string( i ) ) + String( " " ) + signedValue( bounds[i] ) + " ) )\n" ); + unsigned n = bounds.size(); + for ( unsigned i = 0; i < n; ++i ) + instance.append( String( " ( assert ( >= x" + std::to_string( i ) ) + String( " " ) + signedValue( bounds[i] ) + " ) )\n" ); } void SmtLibWriter::addGroundLowerBounds( Vector &bounds, List &instance ) { - unsigned n = bounds.size(); - for ( unsigned i = 0; i < n; ++i ) - instance.append( String( " ( assert ( >= x" + std::to_string( i ) ) + String( " " ) + signedValue( bounds[i] ) + " ) )\n" ); + unsigned n = bounds.size(); + for ( unsigned i = 0; i < n; ++i ) + instance.append( String( " ( assert ( >= x" + std::to_string( i ) ) + String( " " ) + signedValue( bounds[i] ) + " ) )\n" ); } void SmtLibWriter::writeInstanceToFile( const String &directory, unsigned delegationNumber, const List &instance ) { - File file ( directory + "delegated" + std::to_string( delegationNumber ) + ".smtlib" ); - file.open(File::MODE_WRITE_TRUNCATE ); + File file ( directory + "delegated" + std::to_string( delegationNumber ) + ".smtlib" ); + file.open(File::MODE_WRITE_TRUNCATE ); - for ( const String &s : instance ) - file.write( s ); + for ( const String &s : instance ) + file.write( s ); - file.close(); + file.close(); } String SmtLibWriter::signedValue( double val ) { return val > 0 ? std::to_string( val ) : "( - " + std::to_string( abs( val ) ) + " )"; -} \ No newline at end of file +} From 6ce624ada62870a50416cdaec2d2352b0d9b563e Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 20 Feb 2022 17:57:18 +0200 Subject: [PATCH 007/165] Update Vector.h --- src/common/Vector.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/common/Vector.h b/src/common/Vector.h index bb87201302..aa8323ecc3 100644 --- a/src/common/Vector.h +++ b/src/common/Vector.h @@ -87,6 +87,11 @@ class Vector return _container[index]; } + const T &operator[]( int index ) const + { + return _container[index]; + } + bool empty() const { return size() == 0; From bb486111e95fa7d943708e97553c91ec6a11e7fd Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 20 Feb 2022 17:58:30 +0200 Subject: [PATCH 008/165] Update List.h Added removeIf wrapper function --- src/common/List.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/common/List.h b/src/common/List.h index c9fc2b7a2b..e2ecccfd2b 100644 --- a/src/common/List.h +++ b/src/common/List.h @@ -175,7 +175,13 @@ class List _container.pop_back(); } - + + template + void removeIf( Predicate p ) + { + _container.remove_if( p ); + } + bool operator==( const List &other ) const { return _container == other._container; From 18d654a1c63f2d9dc279c2e335a32d7326b46610 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 20 Feb 2022 17:59:03 +0200 Subject: [PATCH 009/165] Update List.h --- src/common/List.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/common/List.h b/src/common/List.h index e2ecccfd2b..0d742bc995 100644 --- a/src/common/List.h +++ b/src/common/List.h @@ -178,9 +178,9 @@ class List template void removeIf( Predicate p ) - { - _container.remove_if( p ); - } + { + _container.remove_if( p ); + } bool operator==( const List &other ) const { From 4159229972e45c5626808b57892148356025433b Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 20 Feb 2022 18:59:24 +0200 Subject: [PATCH 010/165] Add files via upload --- src/engine/tests/Test_BoundExplainer.h | 165 +++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 src/engine/tests/Test_BoundExplainer.h diff --git a/src/engine/tests/Test_BoundExplainer.h b/src/engine/tests/Test_BoundExplainer.h new file mode 100644 index 0000000000..1de757cdd9 --- /dev/null +++ b/src/engine/tests/Test_BoundExplainer.h @@ -0,0 +1,165 @@ +/********************* */ +/*! \file BoundExplainer.h + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#include "BoundExplainer.h" +#include "context/cdlist.h" +#include "context/context.h" +#include + +class BoundsExplainerTestSuite : public CxxTest::TestSuite +{ +public: + void setUp() + { + } + + void tearDown() + { + } + + /* + Test initialization of BoundExplainer + */ + void testInitialization() + { + unsigned numberOfVariables = 3, numberOfRows = 5; + BoundExplainer be(numberOfVariables, numberOfRows ); + + TS_ASSERT_EQUALS( be.getNumberOfRows(), numberOfRows ); + TS_ASSERT_EQUALS( be.getNumberOfVariables(), numberOfVariables ); + + for (unsigned i = 0; i < numberOfVariables; ++i ) + { + TS_ASSERT( be.getExplanation( i, true ).empty() ); + TS_ASSERT( be.getExplanation( i, false ).empty() ); + } + } + + /* + Test explanation injection + */ + void testExplanationInjection() + { + unsigned numberOfVariables = 2, numberOfRows = 2; + double value = -2.55; + BoundExplainer be( numberOfVariables, numberOfRows ); + + TS_ASSERT_THROWS_NOTHING( be.injectExplanation( Vector( numberOfVariables, value ), 0, true ) ); + auto explanation = be.getExplanation( 0, true ); + + for ( auto num : explanation ) + TS_ASSERT_EQUALS( num, value ); + } + + /* + Test addition of an explanation of the new variable, and correct updates of all previous explanations + */ + void testVariableAddition() + { + unsigned numberOfVariables = 2, numberOfRows = 2; + BoundExplainer be( numberOfVariables, numberOfRows ); + TS_ASSERT_THROWS_NOTHING( be.injectExplanation( Vector( numberOfVariables, 1 ), numberOfVariables - 1, true ) ); + TS_ASSERT_THROWS_NOTHING( be.injectExplanation( Vector( numberOfVariables, 5 ), numberOfVariables - 1, false ) ); + be.addVariable(); + + TS_ASSERT_EQUALS( be.getNumberOfRows(), numberOfRows + 1 ); + TS_ASSERT_EQUALS( be.getNumberOfVariables(), numberOfVariables + 1 ); + + for ( unsigned i = 0; i < numberOfVariables; ++ i) + { + TS_ASSERT(be.getExplanation( i, true ).empty() || ( be.getExplanation( i, true ).last() == 0 && be.getExplanation( i, true ).size() == numberOfVariables + 1 ) ); + TS_ASSERT(be.getExplanation( i, false ).empty() || ( be.getExplanation( i, false ).last() == 0 && be.getExplanation( i, false ).size() == numberOfVariables + 1 ) ); + } + + TS_ASSERT(be.getExplanation( numberOfVariables, true ).empty() ); + TS_ASSERT(be.getExplanation( numberOfVariables, false ).empty() ) ; + } + + /* + Test explanation reset + */ + void testExplanationReset() + { + unsigned numberOfVariables = 1, numberOfRows = 1; + BoundExplainer be( numberOfVariables, numberOfRows ); + + TS_ASSERT_THROWS_NOTHING( be.injectExplanation( Vector( numberOfRows, 1 ), 0, true ) ); + TS_ASSERT( !be.getExplanation( 0 , true ).empty() ); + + be.resetExplanation(0, true ); + TS_ASSERT( be.getExplanation( 0 , true ).empty() ); + } + + /* + Test main functionality of BoundExplainer i.e. updating explanations according to tableau rows + */ + void testExplanationUpdates() + { + unsigned numberOfVariables = 6, numberOfRows = 3; + BoundExplainer be( numberOfVariables, numberOfRows ); + Vector row1 { 1, 0, 0 }; + Vector row2 { 0, -1, 0 }; + Vector row3 { 0, 0, 2.5 }; + + TableauRow updateTableauRow( 6 ); + // row1 + row2 := x2 = x0 + 2 x1 - x3 + x4 + // Equivalently x3 = x0 + 2 x1 - x2 - x3 + x4 + // Equivalently x1 = -0.5 x0 + 0.5 x2 + 0.5 x3 - 0.5 x4 + // Rows coefficients are { -1, 1, 0 } + updateTableauRow._scalar = 0; + updateTableauRow._lhs = 2; + updateTableauRow._row[0] = TableauRow::Entry( 0, 1 ); + updateTableauRow._row[1] = TableauRow::Entry( 1, 2 ); + updateTableauRow._row[2] = TableauRow::Entry( 3, -1 ); + updateTableauRow._row[3] = TableauRow::Entry( 4, 1 ); + updateTableauRow._row[4] = TableauRow::Entry( 5, 0 ); + + TS_ASSERT_THROWS_NOTHING( be.injectExplanation( row1, 0, true ) ); + TS_ASSERT_THROWS_NOTHING( be.injectExplanation( row2, 1, true ) ); + TS_ASSERT_THROWS_NOTHING( be.injectExplanation( row3, 1, false ) ); // Will not be possible in an actual tableau + + be.updateBoundExplanation( updateTableauRow, true ); + // Result is { 1, 0, 0 } + 2 * { 0, -1, 0 } + { -1, 1, 0} + Vector res1 { 0, -1, 0 }; + TS_ASSERT_EQUALS( be.getExplanation( 2, true ), res1 ); + + be.updateBoundExplanation( updateTableauRow, false, 3 ); + // Result is 2 * { 0, 0, 2.5 } + { -1, 1, 0 } + Vector res2 { -1, 2, 5 }; + TS_ASSERT_EQUALS( be.getExplanation( 3, false ), res2 ); + + be.updateBoundExplanation( updateTableauRow, false, 1 ); + // Result is -0.5 * { 1, 0, 0 } + 0.5 * { -1, 2, 5 } - 0.5 * { -1, 1, 0 } + Vector res3 { -0.5, 0.5, 2.5 }; + TS_ASSERT_EQUALS( be.getExplanation( 1, false ), res3 ); + + // row3:= x1 = x5 + // Rows coefficients are { 0, 0, -2.5 } + SparseUnsortedList updateSparseRow( 0 ); + updateSparseRow.append( 1, -2.5 ); + updateSparseRow.append( 5, -2.5 ); + + be.updateBoundExplanationSparse( updateSparseRow, true, 5 ); + // Result is ( 1 / 2.5 ) * ( -2.5 ) * { -0.5, 0.5, 2.5 } + ( 1 / 2.5 ) * { 0, 0, -2.5 } + Vector res4 { 0.5, -0.5, -3.5 }; + TS_ASSERT_EQUALS( be.getExplanation( 5, true ), res4 ); + } +}; + +// +// Local Variables: +// compile-command: "make -C ../../.. " +// tags-file-name: "../../../TAGS" +// c-basic-offset: 4 +// End: From 167766461df932a144dbc7434f755d954b89ce4e Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 20 Feb 2022 18:59:46 +0200 Subject: [PATCH 011/165] Delete Test_BoundsExplainer.h --- src/engine/tests/Test_BoundsExplainer.h | 198 ------------------------ 1 file changed, 198 deletions(-) delete mode 100644 src/engine/tests/Test_BoundsExplainer.h diff --git a/src/engine/tests/Test_BoundsExplainer.h b/src/engine/tests/Test_BoundsExplainer.h deleted file mode 100644 index eddbccb657..0000000000 --- a/src/engine/tests/Test_BoundsExplainer.h +++ /dev/null @@ -1,198 +0,0 @@ -/********************* */ -/*! \file BoundsExplainer.h - ** \verbatim - ** Top contributors (to current version): - ** Omri Isac, Guy Katz - ** This file is part of the Marabou project. - ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS - ** in the top-level source directory) and their institutional affiliations. - ** All rights reserved. See the file COPYING in the top-level source - ** directory for licensing information.\endverbatim - ** - ** [[ Add lengthier description here ]] - **/ - - -#include - -#include "BoundsExplainer.h" -#include "context/cdlist.h" -#include "context/context.h" - -class BoundsExplainerTestSuite : public CxxTest::TestSuite -{ -public: - - void setUp() - { - } - - void tearDown() - { - } - - /* - * Test initialization of BoundsExplainer - */ - void testInitialization() - { - unsigned varsNum = 3, rowsNum = 5; - BoundsExplainer be( varsNum, rowsNum ); - - TS_ASSERT_EQUALS( be.getRowsNum(), rowsNum ); - TS_ASSERT_EQUALS( be.getVarsNum(), varsNum ); - - for ( unsigned i = 0; i < varsNum; ++i ) - { - TS_ASSERT(be.getExplanation( i, true ).empty() ); - TS_ASSERT(be.getExplanation( i, false ).empty() ); - } - } - - /* - * Test explanation injection - */ - void testExplanationInjection() - { - unsigned varsNum = 2, rowsNum = 2; - double value = -2.55; - BoundsExplainer be( varsNum, rowsNum ); - - TS_ASSERT_THROWS_NOTHING( be.injectExplanation( std::vector( varsNum, value ), 0, true ) ); - auto expl = be.getExplanation( 0, true ); - - for ( auto num : expl ) - TS_ASSERT_EQUALS( num, value ); - } - - /* - * Test addition of an explanation of the new variable, and correct updates of all previous explanations - */ - void testVariableAddition() - { - unsigned varsNum = 2, rowsNum = 2; - BoundsExplainer be( varsNum, rowsNum ); - TS_ASSERT_THROWS_NOTHING( be.injectExplanation( std::vector( varsNum, 1 ), varsNum - 1, true ) ); - TS_ASSERT_THROWS_NOTHING( be.injectExplanation( std::vector( varsNum, 5 ), varsNum - 1, false ) ); - be.addVariable(); - - TS_ASSERT_EQUALS(be.getRowsNum(), rowsNum + 1 ); - TS_ASSERT_EQUALS(be.getVarsNum(), varsNum + 1 ); - - for ( unsigned i = 0; i < varsNum; ++ i) - { - TS_ASSERT(be.getExplanation( i, true ).empty() || ( be.getExplanation( i, true ).back() == 0 && be.getExplanation( i, true ).size() == varsNum + 1) ); - TS_ASSERT(be.getExplanation( i, false ).empty() || ( be.getExplanation( i, false ).back() == 0 && be.getExplanation( i, false ).size() == varsNum + 1) ); - } - - TS_ASSERT(be.getExplanation( varsNum, true ).empty() ); - TS_ASSERT(be.getExplanation( varsNum, false ).empty() ) ; - } - - /* - * Test explanation reset - */ - void testExplanationReset() - { - unsigned varsNum = 1, rowsNum = 1; - BoundsExplainer be( varsNum, rowsNum ); - - TS_ASSERT_THROWS_NOTHING( be.injectExplanation( std::vector( rowsNum, 1 ), 0, true ) ); - TS_ASSERT( !be.getExplanation( 0 , true ).empty() ); - - be.resetExplanation(0, true ); - TS_ASSERT( be.getExplanation( 0 , true ).empty() ); - } - - /* - * Test main functionality of BoundsExplainer i.e. updating explanations according to tableau rows - */ - void testExplanationUpdates() - { - unsigned varsNum = 6, rowsNum = 3; - BoundsExplainer be( varsNum, rowsNum ); - std::vector row1 { 1, 0, 0 }; - std::vector row2 { 0, -1, 0 }; - std::vector row3 { 0, 0, 2.5 }; - - TableauRow updateTableauRow( 6 ); - // row1 + row2 := x2 = x0 + 2 x1 - x3 + x4 - // Equivalently x3 = x0 + 2 x1 - x2 - x3 + x4 - // Equivalently x1 = -0.5 x0 + 0.5 x2 + 0.5 x3 - 0.5 x4 - // Rows coefficients are { -1, 1, 0 } - updateTableauRow._scalar = 0; - updateTableauRow._lhs = 2; - updateTableauRow._row[0] = TableauRow::Entry( 0, 1 ); - updateTableauRow._row[1] = TableauRow::Entry( 1, 2 ); - updateTableauRow._row[2] = TableauRow::Entry( 3, -1 ); - updateTableauRow._row[3] = TableauRow::Entry( 4, 1 ); - updateTableauRow._row[4] = TableauRow::Entry( 5, 0 ); - - TS_ASSERT_THROWS_NOTHING( be.injectExplanation( row1, 0, true ) ); - TS_ASSERT_THROWS_NOTHING( be.injectExplanation( row2, 1, true ) ); - TS_ASSERT_THROWS_NOTHING( be.injectExplanation( row3, 1, false ) ); // Will not be possible in an actual tableau - - be.updateBoundExplanation( updateTableauRow, true ); - // Result is { 1, 0, 0 } + 2 * { 0, -1, 0 } + { -1, 1, 0} - std::vector res1 { 0, -1, 0 }; - TS_ASSERT_EQUALS( be.getExplanation( 2, true ), res1 ); - - be.updateBoundExplanation( updateTableauRow, false, 3 ); - // Result is 2 * { 0, 0, 2.5 } + { -1, 1, 0 } - std::vector res2 { -1, 2, 5 }; - TS_ASSERT_EQUALS( be.getExplanation( 3, false ), res2 ); - - be.updateBoundExplanation( updateTableauRow, false, 1 ); - // Result is -0.5 * { 1, 0, 0 } + 0.5 * { -1, 2, 5 } - 0.5 * { -1, 1, 0 } - std::vector res3 { -0.5, 0.5, 2.5 }; - TS_ASSERT_EQUALS( be.getExplanation( 1, false ), res3 ); - - // row3:= x1 = x5 - // Rows coefficients are { 0, 0, -2.5 } - SparseUnsortedList updateSparseRow( 0 ); - updateSparseRow.append( 1, -2.5 ); - updateSparseRow.append( 5, -2.5 ); - - be.updateBoundExplanationSparse( updateSparseRow, true, 5 ); - // Result is ( 1 / 2.5 ) * ( -2.5 ) * { -0.5, 0.5, 2.5 } + ( 1 / 2.5 ) * { 0, 0, -2.5 } - std::vector res4 { 0.5, -0.5, -3.5 }; - TS_ASSERT_EQUALS( be.getExplanation( 5, true ), res4 ); - } - - /* - * Test deep copying of BoundsExplainer using operator= - */ - void testCopying() - { - unsigned varsNum = 2, rowsNum = 2; - BoundsExplainer be( varsNum, rowsNum ); - - TS_ASSERT_THROWS_NOTHING( be.injectExplanation( std::vector( rowsNum, 1 ), varsNum - 1, true ) ); - TS_ASSERT_THROWS_NOTHING( be.injectExplanation( std::vector( rowsNum, 5 ), varsNum - 1, false ) ); - - BoundsExplainer beCopy( 1, 1 ); - beCopy = be; - - TS_ASSERT_EQUALS( beCopy.getRowsNum(), be.getRowsNum() ); - TS_ASSERT_EQUALS( beCopy.getVarsNum(), be.getVarsNum() ); - - for ( unsigned i = 0; i < varsNum; ++i) - { - auto upperExpl = be.getExplanation( i, true ); - auto lowerExpl = be.getExplanation( i, false ); - - auto upperExplCopy = beCopy.getExplanation( i, true ); - auto lowerExplCopy = beCopy.getExplanation( i, false ); - - TS_ASSERT_EQUALS( upperExpl, upperExplCopy ); - TS_ASSERT_EQUALS( lowerExpl, lowerExplCopy ); - } - } -}; - -// -// Local Variables: -// compile-command: "make -C ../../.. " -// tags-file-name: "../../../TAGS" -// c-basic-offset: 4 -// End: From acf469fe3b62a4dc986cc88dbe93687d103a38ef Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 20 Feb 2022 19:00:27 +0200 Subject: [PATCH 012/165] Update Test_CertificateNode.h --- src/engine/tests/Test_CertificateNode.h | 292 ++++++++++++------------ 1 file changed, 151 insertions(+), 141 deletions(-) diff --git a/src/engine/tests/Test_CertificateNode.h b/src/engine/tests/Test_CertificateNode.h index 642be692aa..a1ffa48f81 100644 --- a/src/engine/tests/Test_CertificateNode.h +++ b/src/engine/tests/Test_CertificateNode.h @@ -1,5 +1,5 @@ /********************* */ -/*! \file BoundsExplainer.h +/*! \file BoundExplainer.h ** \verbatim ** This file is part of the Marabou project. ** Copyright (c) 2017-2019 by the authors listed in the file AUTHORS @@ -10,176 +10,186 @@ ** [[ Add lengthier description here ]] **/ - -#include - -#include "BoundsExplainer.h" +#include "BoundExplainer.h" #include "context/cdlist.h" #include "context/context.h" +#include #include "UNSATCertificate.h" class CertificateNodeTestSuite : public CxxTest::TestSuite { public: + void setUp() + { + } + + void tearDown() + { + } + + /* + Tests a simple tree construction + */ + void testTreeRelations() + { + Vector row1 = { 1, 0, -1, 1, 0, 0 }; + Vector row2 = { 0, -1, 2, 0, 1, 0 }; + Vector row3 = { 0.5, 0, -1, 0, 0, 1 }; + Vector> initialTableau = {row1, row2, row3 }; + + Vector groundUpperBounds( 6, 1 ); + Vector groundLowerBounds( 6, 0 ); + + auto *root = new CertificateNode( &initialTableau, groundUpperBounds, groundLowerBounds ); + + ReluConstraint relu = ReluConstraint(1, 3); + auto splits = relu.getCaseSplits(); + TS_ASSERT_EQUALS( splits.size(), ( unsigned ) 2 ); + + PiecewiseLinearCaseSplit split1 = splits.back(); + PiecewiseLinearCaseSplit split2 = splits.front(); + + auto *child1 = new CertificateNode( root, split1 ); + auto *child2 = new CertificateNode( root, split2 ); + + TS_ASSERT_EQUALS( child1->getParent(), root ); + TS_ASSERT_EQUALS( child2->getParent(), root ); + + TS_ASSERT_EQUALS( root->getChildBySplit( split1 ), child1 ); + TS_ASSERT_EQUALS( root->getChildBySplit( split2 ), child2 ); + + TS_ASSERT_EQUALS( child1->getSplit(), split1 ); + TS_ASSERT_EQUALS( child2->getSplit(), split2 ); + + root->makeLeaf(); + + TS_ASSERT_EQUALS( root->getChildBySplit( split1 ), nullptr ); + TS_ASSERT_EQUALS( root->getChildBySplit( split2 ), nullptr ); - void setUp() - { - } - - void tearDown() - { - } - - void testTreeRelations() - { - std::vector row1 = { 1, 0, -1, 1, 0, 0 }; - std::vector row2 = { 0, -1, 2, 0, 1, 0 }; - std::vector row3 = { 0.5, 0, -1, 0, 0, 1 }; - std::vector> it = { row1, row2, row3 }; - - std::vector ugb( 6, 1 ); - std::vector lgb( 6, 0 ); - - CertificateNode *root = new CertificateNode( &it, ugb, lgb ); - - ReluConstraint relu = ReluConstraint(1, 3); - auto splits = relu.getCaseSplits(); - TS_ASSERT_EQUALS( splits.size(), ( unsigned ) 2 ); - - PiecewiseLinearCaseSplit split1 = splits.back(); - PiecewiseLinearCaseSplit split2 = splits.front(); - - CertificateNode *child1 = new CertificateNode( root, split1 ); - CertificateNode *child2 = new CertificateNode( root, split2 ); - - TS_ASSERT_EQUALS( child1->getParent(), root ); - TS_ASSERT_EQUALS( child2->getParent(), root ); - - TS_ASSERT_EQUALS( root->getChildBySplit( split1 ), child1 ); - TS_ASSERT_EQUALS( root->getChildBySplit( split2 ), child2 ); - - TS_ASSERT_EQUALS( child1->getSplit(), split1 ); - TS_ASSERT_EQUALS( child2->getSplit(), split2 ); - - root->makeLeaf(); - - TS_ASSERT_EQUALS(root->getChildBySplit( split1 ), nullptr ); - TS_ASSERT_EQUALS(root->getChildBySplit( split2 ), nullptr ); - - delete root; - } - - void testContradiction() - { - std::vector> it = { std::vector( 1,1 ) }; - std::vector ugb( 1, 1 ); - std::vector lgb( 1, 0 ); - - CertificateNode root = CertificateNode( &it, ugb, lgb ); - auto uexpl = new double [1]; - uexpl[0] = 1; - - auto lexpl = new double [1]; - lexpl[0] = -1; - - Contradiction* contra = new Contradiction { 0, uexpl, lexpl }; - root.setContradiction( contra ); - TS_ASSERT_EQUALS( root.getContradiction(), contra ); - } - - void testPLCExplChanges() - { - std::vector> it = { std::vector( 1,1 ) }; - std::vector ugb( 1, 1 ); - std::vector lgb( 1, 0 ); - - CertificateNode root = CertificateNode( &it, ugb, lgb ); - - PLCExplanation *expl1 = new PLCExplanation { 1, 1, 0, true, true, NULL, RELU, 0 }; - PLCExplanation *expl2 = new PLCExplanation { 1, 1, -1, true, true, NULL, RELU, 1 }; - PLCExplanation *expl3 = new PLCExplanation { 1, 1, -4, true, true, NULL, RELU, 2 }; + delete root; + } - TS_ASSERT( root.getPLCExplanations().empty() ); + /* + Tests methods that set and get the contradiction + */ + void testContradiction() + { + Vector> initialTableau = { Vector( 1,1 ) }; + Vector groundUpperBounds( 1, 1 ); + Vector groundLowerBounds( 1, 0 ); - root.addPLCExplanation( expl1 ); - root.addPLCExplanation( expl2 ); - root.addPLCExplanation( expl3 ); - TS_ASSERT_EQUALS( root.getPLCExplanations().size(), ( unsigned ) 3 ); + CertificateNode root = CertificateNode( &initialTableau, groundUpperBounds, groundLowerBounds ); + auto upperBoundExplanation = new double [1]; + upperBoundExplanation[0] = 1; - root.removePLCExplanationsBelowDecisionLevel( 0 ); - TS_ASSERT_EQUALS( root.getPLCExplanations().size(), ( unsigned ) 2 ); - TS_ASSERT_EQUALS( root.getPLCExplanations().front(), expl2 ); - TS_ASSERT_EQUALS( root.getPLCExplanations().back(), expl3 ); + auto lowerBoundExplanation = new double [1]; + lowerBoundExplanation[0] = -1; - root.resizePLCExplanationsList( 1 ); - TS_ASSERT_EQUALS( root.getPLCExplanations().size(), ( unsigned ) 1 ); - TS_ASSERT_EQUALS( root.getPLCExplanations().back(), expl2 ); + auto *contradiction = new Contradiction { 0, upperBoundExplanation, lowerBoundExplanation }; + root.setContradiction( contradiction ); + TS_ASSERT_EQUALS( root.getContradiction(), contradiction ); + } - root.deletePLCExplanations(); - TS_ASSERT( root.getPLCExplanations().empty() ); + /* + Tests changes in PLC Explanations list + */ + void testPLCExplChanges() + { + Vector> initialTableau = { Vector( 1,1 ) }; + Vector groundUpperBounds( 1, 1 ); + Vector groundLowerBounds( 1, 0 ); - delete expl1; // removePLCExplanationsBelowDecisionLevel doesn't delete by itself - } + CertificateNode root = CertificateNode( &initialTableau, groundUpperBounds, groundLowerBounds ); - void testCertification() - { - std::vector row1 = { 1, 0, -1, 0, 1, 0, 0 }; // Row of ReLU1 - std::vector row2 = { 0, 1, 0, -1, 0, 1, 0 }; // Row of ReLU2 - std::vector row3 = { 0.5, 0, -1, 0, 0, 0, 1 }; - std::vector> it = { row1, row2, row3 }; + auto *explanation1 = new PLCExplanation { 1, 1, 0, true, true, NULL, RELU, 0 }; + auto *explanation2 = new PLCExplanation {1, 1, -1, true, true, NULL, RELU, 1 }; + auto *explanation3 = new PLCExplanation { 1, 1, -4, true, true, NULL, RELU, 2 }; - std::vector ugb( row1.size(), 1 ); - std::vector lgb( row1.size(), 0 ); - ugb[6] = 2; + TS_ASSERT( root.getPLCExplanations().empty() ); - // Set a complete tree of depth 3, using 2 ReLUs - CertificateNode *root = new CertificateNode( &it, ugb, lgb ); + root.addPLCExplanation( explanation1 ); + root.addPLCExplanation( explanation2 ); + root.addPLCExplanation( explanation3 ); + TS_ASSERT_EQUALS( root.getPLCExplanations().size(), ( unsigned ) 3 ); - ReluConstraint relu1 = ReluConstraint( 0, 2 ); // aux var is 4 - ReluConstraint relu2 = ReluConstraint( 1, 3) ; // aux var is 5 + root.removePLCExplanationsBelowDecisionLevel( 0 ); + TS_ASSERT_EQUALS( root.getPLCExplanations().size(), ( unsigned ) 2 ); + TS_ASSERT_EQUALS( root.getPLCExplanations().front(), explanation2 ); + TS_ASSERT_EQUALS( root.getPLCExplanations().back(), explanation3 ); - root->addProblemConstraint( RELU, { 0, 2, 4 }, PHASE_NOT_FIXED ); - root->addProblemConstraint( RELU, { 1, 3, 5 }, PHASE_NOT_FIXED ); + root.resizePLCExplanationsList( 1 ); + TS_ASSERT_EQUALS( root.getPLCExplanations().size(), ( unsigned ) 1 ); + TS_ASSERT_EQUALS( root.getPLCExplanations().back(), explanation2 ); - auto splits1 = relu1.getCaseSplits(); - auto splits2 = relu2.getCaseSplits(); - TS_ASSERT_EQUALS( splits1.size(), ( unsigned ) 2 ); - TS_ASSERT_EQUALS( splits2.size(), ( unsigned ) 2 ); + root.deletePLCExplanations(); + TS_ASSERT( root.getPLCExplanations().empty() ); - PiecewiseLinearCaseSplit split1_1 = splits1.back(); - PiecewiseLinearCaseSplit split1_2 = splits1.front(); + // removePLCExplanationsBelowDecisionLevel doesn't delete by itself + delete explanation1; + } - PiecewiseLinearCaseSplit split2_1 = splits2.back(); - PiecewiseLinearCaseSplit split2_2 = splits2.front(); + /* + Tests certification methods + */ + void testCertification() + { + Vector row1 = { 1, 0, -1, 0, 1, 0, 0 }; // Row of ReLU1 + Vector row2 = { 0, 1, 0, -1, 0, 1, 0 }; // Row of ReLU2 + Vector row3 = { 0.5, 0, -1, 0, 0, 0, 1 }; + Vector> initialTableau = { row1, row2, row3 }; - TS_ASSERT_EQUALS( split1_2.getBoundTightenings().size(), ( unsigned ) 2 ); + Vector groundUpperBounds( row1.size(), 1 ); + Vector groundLowerBounds( row1.size(), 0 ); + groundUpperBounds[6] = 2; - CertificateNode *child1 = new CertificateNode( root, split1_1 ); // Child with missing aux tightening - CertificateNode *child2 = new CertificateNode( root, split1_2 ); + // Set a complete tree of depth 3, using 2 ReLUs + auto *root = new CertificateNode( &initialTableau, groundUpperBounds, groundLowerBounds ); - CertificateNode *child2_1 = new CertificateNode( child2, split2_1 ); - CertificateNode *child2_2 = new CertificateNode( child2, split2_2 ); + ReluConstraint relu1 = ReluConstraint( 0, 2 ); // aux var is 4 + ReluConstraint relu2 = ReluConstraint( 1, 3) ; // aux var is 5 - root->wasVisited(); - child2->wasVisited(); - child1->wasVisited(); - child2_1->wasVisited(); + root->addProblemConstraint( RELU, { 0, 2, 4 }, PHASE_NOT_FIXED ); + root->addProblemConstraint( RELU, { 1, 3, 5 }, PHASE_NOT_FIXED ); - // Visited leaves have no contradiction, so certification will fail - TS_ASSERT( !root->certify() ); + auto splits1 = relu1.getCaseSplits(); + auto splits2 = relu2.getCaseSplits(); + TS_ASSERT_EQUALS( splits1.size(), ( unsigned ) 2 ); + TS_ASSERT_EQUALS( splits2.size(), ( unsigned ) 2 ); - // Mark visited leaves with flags that immediately certify them - child1->hasSATSolution(); - child2_1->shouldDelegate( 0, DelegationStatus::DELEGATE_DONT_SAVE ); - TS_ASSERT( root->certify() ); + PiecewiseLinearCaseSplit split1_1 = splits1.back(); + PiecewiseLinearCaseSplit split1_2 = splits1.front(); + + PiecewiseLinearCaseSplit split2_1 = splits2.back(); + PiecewiseLinearCaseSplit split2_2 = splits2.front(); + + TS_ASSERT_EQUALS( split1_2.getBoundTightenings().size(), ( unsigned ) 2 ); + + auto *child1 = new CertificateNode( root, split1_1 ); // Child with missing aux tightening + auto *child2 = new CertificateNode( root, split1_2 ); + + auto *child2_1 = new CertificateNode( child2, split2_1 ); + auto *child2_2 = new CertificateNode( child2, split2_2 ); + + root->wasVisited(); + child2->wasVisited(); + child1->wasVisited(); + child2_1->wasVisited(); + + // Visited leaves have no contradiction, so certification will fail + TS_ASSERT( !root->certify() ); - // Visited leaf should be checked as well - // Certification should fail since child2_2 has no contradiction - child2_2->wasVisited(); - TS_ASSERT(!root->certify() ); + // Mark visited leaves with flags that immediately certify them + child1->hasSATSolution(); + child2_1->shouldDelegate( 0, DelegationStatus::DELEGATE_DONT_SAVE ); + TS_ASSERT( root->certify() ); + + // Visited leaf should be checked as well + // Certification should fail since child2_2 has no contradiction + child2_2->wasVisited(); + TS_ASSERT(!root->certify() ); - delete root; - } + delete root; + } }; // // Local Variables: From 67babac9cc207905c95d4b5555a773d26dce204e Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 20 Feb 2022 19:00:52 +0200 Subject: [PATCH 013/165] Delete BoundsExplainer.cpp --- src/engine/BoundsExplainer.cpp | 270 --------------------------------- 1 file changed, 270 deletions(-) delete mode 100644 src/engine/BoundsExplainer.cpp diff --git a/src/engine/BoundsExplainer.cpp b/src/engine/BoundsExplainer.cpp deleted file mode 100644 index 5bb5d8314f..0000000000 --- a/src/engine/BoundsExplainer.cpp +++ /dev/null @@ -1,270 +0,0 @@ -/********************* */ -/*! \file BoundsExplainer.cpp - ** \verbatim - ** Top contributors (to current version): - ** Omri Isac, Guy Katz - ** This file is part of the Marabou project. - ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS - ** in the top-level source directory) and their institutional affiliations. - ** All rights reserved. See the file COPYING in the top-level source - ** directory for licensing information.\endverbatim - ** - ** [[ Add lengthier description here ]] - **/ - -#include "BoundsExplainer.h" - -BoundsExplainer::BoundsExplainer( const unsigned varsNum, const unsigned rowsNum ) - :_varsNum( varsNum ) - ,_rowsNum( rowsNum ) - ,_upperBoundsExplanations( _varsNum, std::vector( 0 ) ) - ,_lowerBoundsExplanations( _varsNum, std::vector( 0 ) ) -{ -} - -BoundsExplainer::~BoundsExplainer() -{ - for ( unsigned i = 0; i < _varsNum; ++i ) - { - _upperBoundsExplanations[i].clear(); - _lowerBoundsExplanations[i].clear(); - } - - _upperBoundsExplanations.clear(); - _lowerBoundsExplanations.clear(); -} - -unsigned BoundsExplainer::getRowsNum() const -{ - return _rowsNum; -} - -unsigned BoundsExplainer::getVarsNum() const -{ - return _varsNum; -} - -BoundsExplainer& BoundsExplainer::operator=( const BoundsExplainer& other ) -{ - if ( this == &other ) - return *this; - - if ( _varsNum != other._varsNum ) - { - _upperBoundsExplanations.resize( other._varsNum ); - _upperBoundsExplanations.shrink_to_fit(); - - _lowerBoundsExplanations.resize( other._varsNum ); - _lowerBoundsExplanations.shrink_to_fit(); - } - - _rowsNum = other._rowsNum; - _varsNum = other._varsNum; - - for ( unsigned i = 0; i < _varsNum; ++i ) - { - if ( _upperBoundsExplanations[i].size() != other._upperBoundsExplanations[i].size() ) - { - _upperBoundsExplanations[i].clear(); - _upperBoundsExplanations[i].resize( other._upperBoundsExplanations[i].size() ); - _upperBoundsExplanations[i].shrink_to_fit(); - } - - if ( _lowerBoundsExplanations[i].size() != other._lowerBoundsExplanations[i].size() ) - { - _lowerBoundsExplanations[i].clear(); - _lowerBoundsExplanations[i].resize( other._lowerBoundsExplanations[i].size() ); - _lowerBoundsExplanations[i].shrink_to_fit(); - } - - std::copy( other._upperBoundsExplanations[i].begin(), other._upperBoundsExplanations[i].end(), _upperBoundsExplanations[i].begin() ); - std::copy( other._lowerBoundsExplanations[i].begin(), other._lowerBoundsExplanations[i].end(), _lowerBoundsExplanations[i].begin() ); - } - - return *this; -} - -const std::vector& BoundsExplainer::getExplanation( const unsigned var, const bool isUpper ) -{ - ASSERT ( var < _varsNum ); - return isUpper ? _upperBoundsExplanations[var] : _lowerBoundsExplanations[var]; -} - -void BoundsExplainer::updateBoundExplanation( const TableauRow& row, const bool isUpper ) -{ - if ( !row._size ) - return; - updateBoundExplanation( row, isUpper, row._lhs ); -} - -void BoundsExplainer::updateBoundExplanation( const TableauRow& row, const bool isUpper, const unsigned var ) -{ - if ( !row._size ) - return; - - ASSERT ( var < _varsNum ); - double curCoefficient, ci = 0, realCoefficient; - bool tempUpper; - unsigned curVar; - if ( var == row._lhs ) - ci = -1; - else - { - for ( unsigned i = 0; i < row._size; ++i ) - if ( row._row[i]._var == var ) - { - ci = row._row[i]._coefficient; - break; - } - } - - ASSERT( !FloatUtils::isZero( ci ) ); - std::vector rowCoefficients = std::vector( _rowsNum, 0 ); - std::vector sum = std::vector( _rowsNum, 0 ); - std::vector tempBound; - - for ( unsigned i = 0; i < row._size; ++i ) - { - curVar = row._row[i]._var; - curCoefficient = row._row[i]._coefficient; - if ( FloatUtils::isZero( curCoefficient ) || curVar == var ) // If coefficient is zero then nothing to add to the sum, also skip var - continue; - - realCoefficient = curCoefficient / -ci; - if ( FloatUtils::isZero( realCoefficient ) ) - continue; - - tempUpper = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ); // If coefficient of lhs and var are different, use same bound - tempBound = tempUpper ? _upperBoundsExplanations[curVar] : _lowerBoundsExplanations[curVar]; - addVecTimesScalar( sum, tempBound, realCoefficient ); - } - - // Include lhs as well, if needed - if ( var != row._lhs ) - { - realCoefficient = 1 / ci; - if ( !FloatUtils::isZero( realCoefficient ) ) - { - tempUpper = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ); // If coefficient of lhs and var are different, use same bound - tempBound = tempUpper ? _upperBoundsExplanations[row._lhs] : _lowerBoundsExplanations[row._lhs]; - addVecTimesScalar( sum, tempBound, realCoefficient ); - } - } - - extractRowCoefficients( row, rowCoefficients, ci ); // Update according to row coefficients - addVecTimesScalar( sum, rowCoefficients, 1 ); - injectExplanation( sum, var, isUpper ); - - rowCoefficients.clear(); - sum.clear(); -} - -void BoundsExplainer::updateBoundExplanationSparse( const SparseUnsortedList& row, const bool isUpper, const unsigned var ) -{ - if ( row.empty() ) - return; - - ASSERT( var < _varsNum ); - bool tempUpper; - double curCoefficient, ci = 0, realCoefficient; - for ( const auto& entry : row ) - if ( entry._index == var ) - { - ci = entry._value; - break; - } - - ASSERT( !FloatUtils::isZero( ci ) ); - std::vector rowCoefficients = std::vector( _rowsNum, 0 ); - std::vector sum = std::vector( _rowsNum, 0 ); - std::vector tempBound; - - for ( const auto& entry : row ) - { - curCoefficient = entry._value; - if ( FloatUtils::isZero( curCoefficient ) || entry._index == var ) // If coefficient is zero then nothing to add to the sum, also skip var - continue; - - realCoefficient = curCoefficient / -ci; - if ( FloatUtils::isZero( realCoefficient ) ) - continue; - - tempUpper = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ); // If coefficient of lhs and var are different, use same bound - tempBound = tempUpper ? _upperBoundsExplanations[entry._index] : _lowerBoundsExplanations[entry._index]; - addVecTimesScalar( sum, tempBound, realCoefficient ); - } - - extractSparseRowCoefficients( row, rowCoefficients, ci ); // Update according to row coefficients - addVecTimesScalar( sum, rowCoefficients, 1 ); - injectExplanation( sum, var, isUpper ); - - rowCoefficients.clear(); - sum.clear(); -} - -void BoundsExplainer::addVecTimesScalar( std::vector& sum, const std::vector& input, const double scalar ) const -{ - if ( input.empty() || FloatUtils::isZero( scalar ) ) - return; - - ASSERT( sum.size() == _rowsNum && input.size() == _rowsNum ); - - for ( unsigned i = 0; i < _rowsNum; ++i ) - sum[i] += scalar * input[i]; -} - -void BoundsExplainer::extractRowCoefficients( const TableauRow& row, std::vector& coefficients, double ci ) const -{ - ASSERT( coefficients.size() == _rowsNum && ( row._size == _varsNum || row._size == _varsNum - _rowsNum ) ); - //The coefficients of the row m highest-indices vars are the coefficients of slack variables - for ( unsigned i = 0; i < row._size; ++i ) - if ( row._row[i]._var >= _varsNum - _rowsNum && !FloatUtils::isZero( row._row[i]._coefficient ) ) - coefficients[row._row[i]._var - _varsNum + _rowsNum] = - row._row[i]._coefficient / ci; - - if ( row._lhs >= _varsNum - _rowsNum ) //If the lhs was part of original basis, its coefficient is 1 / ci - coefficients[row._lhs - _varsNum + _rowsNum] = 1 / ci; -} - - -void BoundsExplainer::extractSparseRowCoefficients( const SparseUnsortedList& row, std::vector& coefficients, double ci ) const -{ - ASSERT( coefficients.size() == _rowsNum ); - - //The coefficients of the row m highest-indices vars are the coefficients of slack variables - for ( const auto& entry : row ) - if ( entry._index >= _varsNum - _rowsNum && !FloatUtils::isZero( entry._value ) ) - coefficients[entry._index - _varsNum + _rowsNum] = - entry._value / ci; -} - -void BoundsExplainer::addVariable() -{ - _rowsNum += 1; - _varsNum += 1; - _upperBoundsExplanations.emplace_back( std::vector( 0 ) ); - _lowerBoundsExplanations.emplace_back( std::vector( 0 ) ); - - for ( unsigned i = 0; i < _varsNum; ++i ) - { - if ( !_upperBoundsExplanations[i].empty() ) - _upperBoundsExplanations[i].push_back( 0 ); - - if ( !_lowerBoundsExplanations[i].empty() ) - _lowerBoundsExplanations[i].push_back( 0 ); - } -} - -void BoundsExplainer::resetExplanation( const unsigned var, const bool isUpper ) -{ - ASSERT( var < _varsNum ); - isUpper ? _upperBoundsExplanations[var].clear() : _lowerBoundsExplanations[var].clear(); -} - -void BoundsExplainer::injectExplanation( const std::vector& expl, unsigned var, bool isUpper ) -{ - ASSERT( var < _varsNum && ( expl.empty() || expl.size() == _rowsNum ) ); - std::vector *temp = isUpper ? &_upperBoundsExplanations[var] : &_lowerBoundsExplanations[var]; - if ( temp->size() != expl.size() ) - temp->resize( expl.size() ); - - std::copy( expl.begin(), expl.end(), temp->begin() ); -} \ No newline at end of file From 4ccfab4d02a0794659a0c538c1b6be4bab822e53 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 20 Feb 2022 19:01:06 +0200 Subject: [PATCH 014/165] Delete BoundsExplainer.h --- src/engine/BoundsExplainer.h | 108 ----------------------------------- 1 file changed, 108 deletions(-) delete mode 100644 src/engine/BoundsExplainer.h diff --git a/src/engine/BoundsExplainer.h b/src/engine/BoundsExplainer.h deleted file mode 100644 index 524ed34e0c..0000000000 --- a/src/engine/BoundsExplainer.h +++ /dev/null @@ -1,108 +0,0 @@ -/********************* */ -/*! \file BoundsExplainer.h - ** \verbatim - ** Top contributors (to current version): - ** Omri Isac, Guy Katz - ** This file is part of the Marabou project. - ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS - ** in the top-level source directory) and their institutional affiliations. - ** All rights reserved. See the file COPYING in the top-level source - ** directory for licensing information.\endverbatim - ** - ** [[ Add lengthier description here ]] - **/ - -#ifndef __BoundsExplainer_h__ -#define __BoundsExplainer_h__ -#include "TableauRow.h" -#include "vector" -#include "SparseUnsortedList.h" - -/* - A class which encapsulates bounds explanations of all variables of a tableau -*/ -class BoundsExplainer { -public: - BoundsExplainer( unsigned varsNum, unsigned rowsNum ); - - ~BoundsExplainer(); - - /* - * Returns the number of rows - */ - unsigned getRowsNum() const; - - /* - * Returns the number of variables - */ - unsigned getVarsNum() const; - - /* - * Returns a bound explanation - */ - const std::vector& getExplanation( unsigned var, bool isUpper ); - - /* - * Given a row, updates the values of the bound explanations of its lhs according to the row - */ - void updateBoundExplanation( const TableauRow& row, bool isUpper ); - - /* - * Given a row, updates the values of the bound explanations of a var according to the row - */ - void updateBoundExplanation( const TableauRow& row, bool isUpper, unsigned varIndex ); - - /* - * Given a row as SparseUnsortedList, updates the values of the bound explanations of a var according to the row - */ - void updateBoundExplanationSparse( const SparseUnsortedList& row, bool isUpper, unsigned var ); - - /* - * Deep copies of other BoundsExplainer - */ - BoundsExplainer& operator=( const BoundsExplainer& other ); - - /* - * Adds a zero explanation at the end, and a zero entry to all explanations - */ - void addVariable(); - - /* - * Resets an explanation (to be a zero vec, represented by an empty vec) - */ - void resetExplanation( unsigned var, bool isUpper ); - - /* - * Updates an explanation, without necessarily using the recursive rule - */ - void injectExplanation( const std::vector& expl, unsigned var, bool isUpper ); - -private: - unsigned _varsNum; - unsigned _rowsNum; - std::vector> _upperBoundsExplanations; - std::vector> _lowerBoundsExplanations; - - /* - Adds a multiplication of an array by scalar to another array - */ - void addVecTimesScalar( std::vector& sum, const std::vector& input, double scalar ) const; - - /* - Upon receiving a row, extract coefficients of the original tableau's equations that create the row - Equivalently, extract the coefficients of the slack variables. - Assumption - the slack variables indices are always the last m. - All coefficients are divided by -ci, the coefficient of the explained var, for normalization. - */ - void extractRowCoefficients( const TableauRow& row, std::vector& coefficients, double ci ) const; - - /* - Upon receiving a row given as a SparseUnsortedList, extract coefficients of the original tableau's equations that create the row - Equivalently, extract the coefficients of the slack variables. - Assumption - the slack variables indices are always the last m. - All coefficients are divided by -ci, the coefficient of the explained var, for normalization. - */ - void extractSparseRowCoefficients( const SparseUnsortedList& row, std::vector& coefficients, double ci ) const; - -}; -#endif // __BoundsExplainer_h__ \ No newline at end of file From bfce89690461fb3f4efb24c6f1cb5d33d098f619 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 20 Feb 2022 19:03:56 +0200 Subject: [PATCH 015/165] Add files via upload --- src/engine/BoundExplainer.cpp | 231 ++++++++++++++++++++++++++++++++++ src/engine/BoundExplainer.h | 102 +++++++++++++++ 2 files changed, 333 insertions(+) create mode 100644 src/engine/BoundExplainer.cpp create mode 100644 src/engine/BoundExplainer.h diff --git a/src/engine/BoundExplainer.cpp b/src/engine/BoundExplainer.cpp new file mode 100644 index 0000000000..5aef489c35 --- /dev/null +++ b/src/engine/BoundExplainer.cpp @@ -0,0 +1,231 @@ +/********************* */ +/*! \file BoundExplainer.cpp + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#include "BoundExplainer.h" + +BoundExplainer::BoundExplainer( unsigned numberOfVariables, unsigned numberOfRows ) + : _numberOfVariables( numberOfVariables ) + , _numberOfRows( numberOfRows ) + , _upperBoundExplanations( _numberOfVariables, Vector( 0 ) ) + , _lowerBoundExplanations( _numberOfVariables, Vector( 0 ) ) +{ +} + +unsigned BoundExplainer::getNumberOfRows() const +{ + return _numberOfRows; +} + +unsigned BoundExplainer::getNumberOfVariables() const +{ + return _numberOfVariables; +} + +const Vector &BoundExplainer::getExplanation( unsigned var, bool isUpper ) +{ + ASSERT ( var < _numberOfVariables ); + return isUpper ? _upperBoundExplanations[var] : _lowerBoundExplanations[var]; +} + +void BoundExplainer::updateBoundExplanation( const TableauRow &row, bool isUpper ) +{ + if ( row._size == 0 ) + return; + + updateBoundExplanation( row, isUpper, row._lhs ); +} + +void BoundExplainer::updateBoundExplanation( const TableauRow &row, bool isUpper, unsigned var ) +{ + if ( row._size == 0 ) + return; + + ASSERT ( var < _numberOfVariables ); + double curCoefficient, ci = 0, realCoefficient; + bool tempUpper; + unsigned curVar; + if ( var != row._lhs ) + { + for ( unsigned i = 0; i < row._size; ++i ) + { + if ( row._row[i]._var == var ) + { + ci = row._row[i]._coefficient; + break; + } + } + } + else + ci = -1; + + ASSERT( !FloatUtils::isZero( ci ) ); + Vector rowCoefficients = Vector( _numberOfRows, 0 ); + Vector sum = Vector( _numberOfRows, 0 ); + Vector tempBound; + + for ( unsigned i = 0; i < row._size; ++i ) + { + curVar = row._row[i]._var; + curCoefficient = row._row[i]._coefficient; + + // If the coefficient of the variable is zero then nothing to add to the sum, also skip var + if ( FloatUtils::isZero( curCoefficient ) || curVar == var ) + continue; + + realCoefficient = curCoefficient / -ci; + if ( FloatUtils::isZero( realCoefficient ) ) + continue; + + // If we're currently explaining an upper bound, we use upper bound explanation iff variable's coefficient is positive + // If we're currently explaining a lower bound, we use upper bound explanation iff variable's coefficient is negative + tempUpper = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ); + tempBound = tempUpper ? _upperBoundExplanations[curVar] : _lowerBoundExplanations[curVar]; + addVecTimesScalar( sum, tempBound, realCoefficient ); + } + + // Include lhs as well, if needed + if ( var != row._lhs ) + { + realCoefficient = 1 / ci; + if ( !FloatUtils::isZero( realCoefficient ) ) + { + tempUpper = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ); + tempBound = tempUpper ? _upperBoundExplanations[row._lhs] : _lowerBoundExplanations[row._lhs]; + addVecTimesScalar( sum, tempBound, realCoefficient ); + } + } + + // Update according to row coefficients + extractRowCoefficients( row, rowCoefficients, ci ); + addVecTimesScalar( sum, rowCoefficients, 1 ); + + injectExplanation( sum, var, isUpper ); +} + +void BoundExplainer::updateBoundExplanationSparse( const SparseUnsortedList &row, bool isUpper, unsigned var ) +{ + if ( row.empty() ) + return; + + ASSERT( var < _numberOfVariables ); + bool tempUpper; + double curCoefficient, ci = 0, realCoefficient; + for ( const auto &entry : row ) + { + if ( entry._index == var ) + { + ci = entry._value; + break; + } + } + + ASSERT( !FloatUtils::isZero( ci ) ); + Vector rowCoefficients = Vector( _numberOfRows, 0 ); + Vector sum = Vector( _numberOfRows, 0 ); + Vector tempBound; + + for ( const auto &entry : row ) + { + curCoefficient = entry._value; + // If coefficient is zero then nothing to add to the sum, also skip var + if ( FloatUtils::isZero( curCoefficient ) || entry._index == var ) + continue; + + realCoefficient = curCoefficient / -ci; + if ( FloatUtils::isZero( realCoefficient ) ) + continue; + + // If we're currently explaining an upper bound, we use upper bound explanation iff variable's coefficient is positive + // If we're currently explaining a lower bound, we use upper bound explanation iff variable's coefficient is negative + tempUpper = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ); + tempBound = tempUpper ? _upperBoundExplanations[entry._index] : _lowerBoundExplanations[entry._index]; + addVecTimesScalar( sum, tempBound, realCoefficient ); + } + + // Update according to row coefficients + extractSparseRowCoefficients( row, rowCoefficients, ci ); + addVecTimesScalar( sum, rowCoefficients, 1 ); + + injectExplanation( sum, var, isUpper ); +} + +void BoundExplainer::addVecTimesScalar( Vector &sum, const Vector &input, double scalar ) const +{ + if ( input.empty() || FloatUtils::isZero( scalar ) ) + return; + + ASSERT( sum.size() == _numberOfRows && input.size() == _numberOfRows ); + + for (unsigned i = 0; i < _numberOfRows; ++i ) + sum[i] += scalar * input[i]; +} + +void BoundExplainer::extractRowCoefficients( const TableauRow &row, Vector &coefficients, double ci ) const +{ + ASSERT(coefficients.size() == _numberOfRows && (row._size == _numberOfVariables || row._size == _numberOfVariables - _numberOfRows ) ); + + // The coefficients of the row m highest-indices vars are the coefficients of slack variables + for ( unsigned i = 0; i < row._size; ++i ) + { + if (row._row[i]._var >= _numberOfVariables - _numberOfRows && !FloatUtils::isZero(row._row[i]._coefficient ) ) + coefficients[row._row[i]._var - _numberOfVariables + _numberOfRows] = - row._row[i]._coefficient / ci; + } + + // If the lhs was part of original basis, its coefficient is 1 / ci + if (row._lhs >= _numberOfVariables - _numberOfRows ) + coefficients[row._lhs - _numberOfVariables + _numberOfRows] = 1 / ci; +} + + +void BoundExplainer::extractSparseRowCoefficients( const SparseUnsortedList &row, Vector &coefficients, double ci ) const +{ + ASSERT(coefficients.size() == _numberOfRows ); + + // The coefficients of the row m highest-indices vars are the coefficients of slack variables + for ( const auto &entry : row ) + { + if (entry._index >= _numberOfVariables - _numberOfRows && !FloatUtils::isZero( entry._value ) ) + coefficients[entry._index - _numberOfVariables + _numberOfRows] = - entry._value / ci; + } +} + +void BoundExplainer::addVariable() +{ + ++_numberOfRows; + ++_numberOfVariables; + _upperBoundExplanations.append( Vector( 0 ) ); + _lowerBoundExplanations.append( Vector( 0 ) ); + + for (unsigned i = 0; i < _numberOfVariables; ++i ) + { + if ( !_upperBoundExplanations[i].empty() ) + _upperBoundExplanations[i].append( 0 ); + + if ( !_lowerBoundExplanations[i].empty() ) + _lowerBoundExplanations[i].append( 0 ); + } +} + +void BoundExplainer::resetExplanation( unsigned var, bool isUpper ) +{ + ASSERT(var < _numberOfVariables ); + isUpper ? _upperBoundExplanations[var].clear() : _lowerBoundExplanations[var].clear(); +} + +void BoundExplainer::injectExplanation( const Vector &explanation, unsigned var, bool isUpper ) +{ + ASSERT(var < _numberOfVariables && (explanation.empty() || explanation.size() == _numberOfRows ) ); + Vector *temp = isUpper ? &_upperBoundExplanations[var] : &_lowerBoundExplanations[var]; + *temp = explanation; +} \ No newline at end of file diff --git a/src/engine/BoundExplainer.h b/src/engine/BoundExplainer.h new file mode 100644 index 0000000000..87af147478 --- /dev/null +++ b/src/engine/BoundExplainer.h @@ -0,0 +1,102 @@ +/********************* */ +/*! \file BoundExplainer.h + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#ifndef __BoundsExplainer_h__ +#define __BoundsExplainer_h__ + +#include "SparseUnsortedList.h" +#include "TableauRow.h" +#include "Vector.h" + +/* + A class which encapsulates bounds explanations of all variables of a tableau +*/ +class BoundExplainer +{ +public: + BoundExplainer(unsigned numberOfVariables, unsigned numberOfRows ); + + /* + Returns the number of rows + */ + unsigned getNumberOfRows() const; + + /* + Returns the number of variables + */ + unsigned getNumberOfVariables() const; + + /* + Returns a bound explanation + */ + const Vector &getExplanation( unsigned var, bool isUpper ); + + /* + Given a row, updates the values of the bound explanations of its lhs according to the row + */ + void updateBoundExplanation( const TableauRow &row, bool isUpper ); + + /* + Given a row, updates the values of the bound explanations of a var according to the row + */ + void updateBoundExplanation( const TableauRow &row, bool isUpper, unsigned varIndex ); + + /* + Given a row as SparseUnsortedList, updates the values of the bound explanations of a var according to the row + */ + void updateBoundExplanationSparse( const SparseUnsortedList &row, bool isUpper, unsigned var ); + + /* + Adds a zero explanation at the end, and a zero entry to all explanations + */ + void addVariable(); + + /* + Resets an explanation (to be a zero vec, represented by an empty vec) + */ + void resetExplanation( unsigned var, bool isUpper ); + + /* + Updates an explanation, without necessarily using the recursive rule + */ + void injectExplanation( const Vector &explanation, unsigned var, bool isUpper ); + +private: + unsigned _numberOfVariables; + unsigned _numberOfRows; + Vector> _upperBoundExplanations; + Vector> _lowerBoundExplanations; + + /* + Adds a multiplication of an array by scalar to another array + */ + void addVecTimesScalar( Vector &sum, const Vector &input, double scalar ) const; + + /* + Upon receiving a row, extract coefficients of the original tableau's equations that create the row + Equivalently, extract the coefficients of the slack variables. + Assumption - the slack variables indices are always the last m. + All coefficients are divided by -ci, the coefficient of the explained var, for normalization. + */ + void extractRowCoefficients( const TableauRow &row, Vector &coefficients, double ci ) const; + + /* + Upon receiving a row given as a SparseUnsortedList, extract coefficients of the original tableau's equations that create the row + Equivalently, extract the coefficients of the slack variables. + Assumption - the slack variables indices are always the last m. + All coefficients are divided by -ci, the coefficient of the explained var, for normalization. + */ + void extractSparseRowCoefficients( const SparseUnsortedList &row, Vector &coefficients, double ci ) const; +}; +#endif // __BoundsExplainer_h__ \ No newline at end of file From 99f1d169535f0df5719cb6054cfd67a56644b953 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 20 Feb 2022 19:07:21 +0200 Subject: [PATCH 016/165] Update UNSATCertificate.h --- src/engine/UNSATCertificate.h | 281 ++++++++++++++-------------------- 1 file changed, 113 insertions(+), 168 deletions(-) diff --git a/src/engine/UNSATCertificate.h b/src/engine/UNSATCertificate.h index acea3f97ed..0ea8210eac 100644 --- a/src/engine/UNSATCertificate.h +++ b/src/engine/UNSATCertificate.h @@ -1,5 +1,5 @@ /********************* */ -/*! \file BoundsExplainer.cpp +/*! \file BoundExplainer.cpp ** \verbatim ** Top contributors (to current version): ** Omri Isac, Guy Katz @@ -16,17 +16,14 @@ #ifndef __UNSATCertificate_h__ #define __UNSATCertificate_h__ -#include "BoundsExplainer.h" -#include -#include -#include "ReluConstraint.h" -#include "PiecewiseLinearFunctionType.h" +#include "BoundExplainer.h" #include "SmtLibWriter.h" -#include "Options.h" +#include "PiecewiseLinearFunctionType.h" +#include "ReluConstraint.h" /* - * Contains all necessary info of a ground bound update during a run (i.e from ReLU phase-fixing) - */ + Contains all necessary info of a ground bound update during a run (i.e from ReLU phase-fixing) +*/ struct PLCExplanation { unsigned _causingVar; @@ -49,40 +46,40 @@ struct PLCExplanation }; /* - * Contains all ino relevant for a simple Marabou contradiction - i.e. explanations of contradicting bounds for a variable - */ + Contains all ino relevant for a simple Marabou contradiction - i.e. explanations of contradicting bounds of a variable +*/ struct Contradiction { unsigned _var; - double *_upperExplanation; - double *_lowerExplanation; + double *_upperBoundExplanation; + double *_lowerBoundExplanation; ~Contradiction() { - if ( _upperExplanation ) + if ( _upperBoundExplanation ) { - delete [] _upperExplanation; - _upperExplanation = NULL; + delete [] _upperBoundExplanation; + _upperBoundExplanation = NULL; } - if ( _lowerExplanation ) + if ( _lowerBoundExplanation ) { - delete [] _lowerExplanation; - _lowerExplanation = NULL; + delete [] _lowerBoundExplanation; + _lowerBoundExplanation = NULL; } } }; /* - * A smaller representation of a problem constraint - */ + A smaller representation of a problem constraint +*/ struct ProblemConstraint { PiecewiseLinearFunctionType _type; List _constraintVars; PhaseStatus _status; - bool operator==(const ProblemConstraint other) + bool operator==( const ProblemConstraint other ) const { return _type == other._type && _constraintVars == other._constraintVars; } @@ -91,247 +88,195 @@ struct ProblemConstraint enum DelegationStatus : unsigned { DONT_DELEGATE = 0, - DELEGATE_DONT_SAVE =1, + DELEGATE_DONT_SAVE = 1, DELEGATE_SAVE = 2 }; /* - * A certificate node in the tree representing the UNSAT certificate - */ + A certificate node in the tree representing the UNSAT certificate +*/ class CertificateNode { public: - /* - * Constructor for the root - */ - CertificateNode( std::vector> *_initialTableau, std::vector &groundUBs, std::vector &groundLBs ); + Constructor for the root + */ + CertificateNode( Vector> *_initialTableau, Vector &groundUpperBounds, Vector &groundLowerBounds ); /* - * Constructor for a regular node - */ - CertificateNode( CertificateNode* parent, PiecewiseLinearCaseSplit split ); + Constructor for a regular node + */ + CertificateNode( CertificateNode *parent, PiecewiseLinearCaseSplit split ); ~CertificateNode(); /* - * Certifies the tree is indeed a proof of unsatisfiability; - */ + Certifies the tree is indeed a correct proof of unsatisfiability; + */ bool certify(); /* - * Sets the leaf contradiction certificate as input - */ + Sets the leaf contradiction certificate as input + */ void setContradiction( Contradiction *certificate ); /* - * Returns the leaf contradiction certificate of the node - */ - Contradiction* getContradiction() const; + Returns the leaf contradiction certificate of the node + */ + Contradiction *getContradiction() const; /* - * Returns the parent of a node - */ - CertificateNode* getParent() const; + Returns the parent of a node + */ + CertificateNode *getParent() const; /* - * Returns the parent of a node - */ - const PiecewiseLinearCaseSplit& getSplit() const; + Returns the head split of a node + */ + const PiecewiseLinearCaseSplit &getSplit() const; /* - * Returns the list of PLC explanations of the node - */ - const std::list& getPLCExplanations() const; + Returns the list of PLC explanations of the node + */ + const List &getPLCExplanations() const; /* - * Adds an PLC explanation to the list - */ - void addPLCExplanation( PLCExplanation *expl ); + Adds an PLC explanation to the list + */ + void addPLCExplanation( PLCExplanation *explanation ); /* - * Adds an a problem constraint to the list - */ + Adds an a problem constraint to the list + */ void addProblemConstraint( PiecewiseLinearFunctionType type, List constraintVars, PhaseStatus status ); /* - * Returns a pointer to a child by a head split, or NULL if not found - */ - CertificateNode* getChildBySplit( const PiecewiseLinearCaseSplit &split ) const; + Returns a pointer to a child by a head split, or NULL if not found + */ + CertificateNode *getChildBySplit( const PiecewiseLinearCaseSplit &split ) const; /* - * Sets value of _hasSATSolution to be true - */ + Sets value of _hasSATSolution to be true + */ void hasSATSolution(); /* - * Sets value of _wasVisited to be true - */ + Sets value of _wasVisited to be true + */ void wasVisited(); /* - * Sets value of _shouldDelegate to be true - * Saves delegation to file iff saveToFile is true - */ + Sets value of _shouldDelegate to be true + Saves delegation to file iff saveToFile is true + */ void shouldDelegate( unsigned delegationNumber, DelegationStatus saveToFile ); /* - * Removes all PLC explanations - */ + Removes all PLC explanations + */ void deletePLCExplanations(); /* - * Removes all PLC explanations from a certain point - */ + Removes all PLC explanations from a certain point + */ void resizePLCExplanationsList( unsigned newSize ); /* - * Deletes all offsprings of the node and makes it a leaf - */ + Deletes all offsprings of the node and makes it a leaf + */ void makeLeaf(); /* - * Removes all PLCExplanations above a certain decision level WITHOUT deleting them - * ASSUMPTION - explanations pointers are kept elsewhere before removal - */ + Removes all PLCExplanations above a certain decision level WITHOUT deleting them + ASSUMPTION - explanations pointers are kept elsewhere before removal + */ void removePLCExplanationsBelowDecisionLevel( unsigned decisionLevel ); private: - std::list _children; + List _children; List _problemConstraints; CertificateNode* _parent; - std::list _PLCExplanations; - Contradiction* _contradiction; + List _PLCExplanations; + Contradiction *_contradiction; PiecewiseLinearCaseSplit _headSplit; - bool _hasSATSolution; // Enables certifying correctness of UNSAT certificates built before concluding SAT. - bool _wasVisited; // Same TODO consider deleting when done + + // Enables certifying correctness of UNSAT leaves in SAT queries + bool _hasSATSolution; + bool _wasVisited; + DelegationStatus _delegationStatus; unsigned _delegationNumber; - std::vector>* _initialTableau; - std::vector _groundUpperBounds; - std::vector _groundLowerBounds; + Vector> *_initialTableau; + Vector _groundUpperBounds; + Vector _groundLowerBounds; /* - * Copies initial tableau and ground bounds - */ - void copyGB( std::vector &groundUBs, std::vector &groundLBs ); + Copies initial tableau and ground bounds + */ + void copyGroundBounds( Vector &groundUpperBounds, Vector &groundLowerBounds ); /* - * Inherits the initialTableau pointer, the ground bounds and the problem constraint from parent, if exists. - * Fixes the phase of the constraint that corresponds to the head split - */ + Inherits the initialTableau pointer, the ground bounds and the problem constraint from parent, if exists. + Fixes the phase of the constraint that corresponds to the head split + */ void passChangesToChildren( ProblemConstraint *childrenSplitConstraint ); /* - * Checks if the node is a valid leaf - */ + Checks if the node is a valid leaf + */ bool isValidLeaf() const; /* - * Checks if the node is a valid none-leaf - */ + Checks if the node is a valid none-leaf + */ bool isValidNoneLeaf() const; /* - * Write a leaf marked to delegate to a smtlib file format + Write a leaf marked to delegate to a smtlib file format */ void writeLeafToFile(); /* - * Return true iff a list of splits represents a splits over a single variable - */ + Return true iff a list of splits represents a splits over a single variable + */ bool certifySingleVarSplits( const List &splits ) const; /* - * Return true iff the changes in the ground bounds are certified, with tolerance to errors with epsilon size at most - */ + Return true iff the changes in the ground bounds are certified, with tolerance to errors with at most size epsilon + */ bool certifyAllPLCExplanations( double epsilon ); /* - * Return a pointer to the problem constraint representing the split - */ - ProblemConstraint *getCorrespondingReLUConstraint(const List &splits ); + Return a pointer to the problem constraint representing the split + */ + ProblemConstraint *getCorrespondingReLUConstraint( const List &splits ); /* - * Certifies a contradiction - */ - bool certifyContradiction() const; + Certifies a contradiction + */ + bool certifyContradiction(); /* - * Computes a bound according to an explanation - */ - double explainBound( unsigned var, bool isUpper, const std::vector &expl ) const; + Computes a bound according to an explanation + */ + double explainBound( unsigned var, bool isUpper, Vector &explanation ); }; class UNSATCertificateUtils { public: /* - * Use explanation to compute a bound (aka explained bound) - * Given a variable, an explanation, initial tableau and ground bounds. - */ - static double computeBound( unsigned var, bool isUpper, const std::vector &expl, - const std::vector> &initialTableau, const std::vector &groundUBs, const std::vector &groundLBs ) - { - ASSERT( groundLBs.size() == groundUBs.size() ); - ASSERT( initialTableau.size() == expl.size() || expl.empty() ); - ASSERT( groundLBs.size() == initialTableau[0].size() ); - ASSERT( groundLBs.size() == initialTableau[initialTableau.size() - 1].size() ); - ASSERT( var < groundUBs.size() ); - - double derived_bound = 0, temp; - unsigned n = groundUBs.size(); - - if ( expl.empty() ) - return isUpper ? groundUBs[var] : groundLBs[var]; - - // Create linear combination of original rows implied from explanation - std::vector explRowsCombination; - UNSATCertificateUtils::getExplanationRowCombination( var, explRowsCombination, expl, initialTableau ); - - // Set the bound derived from the linear combination, using original bounds. - for ( unsigned i = 0; i < n; ++i ) - { - temp = explRowsCombination[i]; - if ( !FloatUtils::isZero( temp ) ) - { - if ( isUpper ) - temp *= FloatUtils::isPositive( explRowsCombination[i] ) ? groundUBs[i] : groundLBs[i]; - else - temp *= FloatUtils::isPositive( explRowsCombination[i] ) ? groundLBs[i] : groundUBs[i]; - - if ( !FloatUtils::isZero( temp ) ) - derived_bound += temp; - } - } - - explRowsCombination.clear(); - return derived_bound; - } + Use explanation to compute a bound (aka explained bound) + Given a variable, an explanation, initial tableau and ground bounds. + */ + static double computeBound( unsigned var, bool isUpper, const Vector &explanation, + const Vector> &initialTableau, const Vector &groundUpperBounds, const Vector &groundLowerBounds ); /* - * Given a var, a tableau and a column vector, create a linear combination used to explain a bound - */ - static void getExplanationRowCombination( unsigned var, std::vector &explRowsCombination, const std::vector &expl, - const std::vector> &initialTableau ) - { - explRowsCombination = std::vector(initialTableau[0].size(), 0 ); - unsigned n = initialTableau[0].size(), m = expl.size(); - for ( unsigned i = 0; i < m; ++i ) - for ( unsigned j = 0; j < n; ++j ) - if ( !FloatUtils::isZero( initialTableau[i][j] ) && !FloatUtils::isZero( expl[i]) ) - explRowsCombination[j] += initialTableau[i][j] * expl[i]; - - for ( unsigned i = 0; i < n; ++i ) - if ( !FloatUtils::isZero( explRowsCombination[i] ) ) - explRowsCombination[i] *= -1; - else - explRowsCombination[i] = 0; - - // Since: 0 = Sum (ci * xi) + c * var = Sum (ci * xi) + (c - 1) * var + var - // We have: var = - Sum (ci * xi) - (c - 1) * var - explRowsCombination[var] += 1; - } + Given a var, a tableau and a column vector, create a linear combination used to explain a bound + */ + static void getExplanationRowCombination( unsigned var, Vector &explanationRowCombination, const Vector &explanation, + const Vector> &initialTableau ); }; -#endif //__UNSATCertificate_h__ \ No newline at end of file +#endif //__UNSATCertificate_h__ From 703442fd1da06745a0e0269ee7d31f48a34a2805 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 20 Feb 2022 19:10:40 +0200 Subject: [PATCH 017/165] Update BoundExplainer.h Fixed Identation --- src/engine/BoundExplainer.h | 144 ++++++++++++++++++------------------ 1 file changed, 72 insertions(+), 72 deletions(-) diff --git a/src/engine/BoundExplainer.h b/src/engine/BoundExplainer.h index 87af147478..d6a8cbf982 100644 --- a/src/engine/BoundExplainer.h +++ b/src/engine/BoundExplainer.h @@ -25,78 +25,78 @@ class BoundExplainer { public: - BoundExplainer(unsigned numberOfVariables, unsigned numberOfRows ); - - /* - Returns the number of rows - */ - unsigned getNumberOfRows() const; - - /* - Returns the number of variables - */ - unsigned getNumberOfVariables() const; - - /* - Returns a bound explanation - */ - const Vector &getExplanation( unsigned var, bool isUpper ); - - /* - Given a row, updates the values of the bound explanations of its lhs according to the row - */ - void updateBoundExplanation( const TableauRow &row, bool isUpper ); - - /* - Given a row, updates the values of the bound explanations of a var according to the row - */ - void updateBoundExplanation( const TableauRow &row, bool isUpper, unsigned varIndex ); - - /* - Given a row as SparseUnsortedList, updates the values of the bound explanations of a var according to the row - */ - void updateBoundExplanationSparse( const SparseUnsortedList &row, bool isUpper, unsigned var ); - - /* - Adds a zero explanation at the end, and a zero entry to all explanations - */ - void addVariable(); - - /* - Resets an explanation (to be a zero vec, represented by an empty vec) - */ - void resetExplanation( unsigned var, bool isUpper ); - - /* - Updates an explanation, without necessarily using the recursive rule - */ - void injectExplanation( const Vector &explanation, unsigned var, bool isUpper ); + BoundExplainer(unsigned numberOfVariables, unsigned numberOfRows ); + + /* + Returns the number of rows + */ + unsigned getNumberOfRows() const; + + /* + Returns the number of variables + */ + unsigned getNumberOfVariables() const; + + /* + Returns a bound explanation + */ + const Vector &getExplanation( unsigned var, bool isUpper ); + + /* + Given a row, updates the values of the bound explanations of its lhs according to the row + */ + void updateBoundExplanation( const TableauRow &row, bool isUpper ); + + /* + Given a row, updates the values of the bound explanations of a var according to the row + */ + void updateBoundExplanation( const TableauRow &row, bool isUpper, unsigned varIndex ); + + /* + Given a row as SparseUnsortedList, updates the values of the bound explanations of a var according to the row + */ + void updateBoundExplanationSparse( const SparseUnsortedList &row, bool isUpper, unsigned var ); + + /* + Adds a zero explanation at the end, and a zero entry to all explanations + */ + void addVariable(); + + /* + Resets an explanation (to be a zero vec, represented by an empty vec) + */ + void resetExplanation( unsigned var, bool isUpper ); + + /* + Updates an explanation, without necessarily using the recursive rule + */ + void injectExplanation( const Vector &explanation, unsigned var, bool isUpper ); private: - unsigned _numberOfVariables; - unsigned _numberOfRows; - Vector> _upperBoundExplanations; - Vector> _lowerBoundExplanations; - - /* - Adds a multiplication of an array by scalar to another array - */ - void addVecTimesScalar( Vector &sum, const Vector &input, double scalar ) const; - - /* - Upon receiving a row, extract coefficients of the original tableau's equations that create the row - Equivalently, extract the coefficients of the slack variables. - Assumption - the slack variables indices are always the last m. - All coefficients are divided by -ci, the coefficient of the explained var, for normalization. - */ - void extractRowCoefficients( const TableauRow &row, Vector &coefficients, double ci ) const; - - /* - Upon receiving a row given as a SparseUnsortedList, extract coefficients of the original tableau's equations that create the row - Equivalently, extract the coefficients of the slack variables. - Assumption - the slack variables indices are always the last m. - All coefficients are divided by -ci, the coefficient of the explained var, for normalization. - */ - void extractSparseRowCoefficients( const SparseUnsortedList &row, Vector &coefficients, double ci ) const; + unsigned _numberOfVariables; + unsigned _numberOfRows; + Vector> _upperBoundExplanations; + Vector> _lowerBoundExplanations; + + /* + Adds a multiplication of an array by scalar to another array + */ + void addVecTimesScalar( Vector &sum, const Vector &input, double scalar ) const; + + /* + Upon receiving a row, extract coefficients of the original tableau's equations that create the row + Equivalently, extract the coefficients of the slack variables. + Assumption - the slack variables indices are always the last m. + All coefficients are divided by -ci, the coefficient of the explained var, for normalization. + */ + void extractRowCoefficients( const TableauRow &row, Vector &coefficients, double ci ) const; + + /* + Upon receiving a row given as a SparseUnsortedList, extract coefficients of the original tableau's equations that create the row + Equivalently, extract the coefficients of the slack variables. + Assumption - the slack variables indices are always the last m. + All coefficients are divided by -ci, the coefficient of the explained var, for normalization. + */ + void extractSparseRowCoefficients( const SparseUnsortedList &row, Vector &coefficients, double ci ) const; }; -#endif // __BoundsExplainer_h__ \ No newline at end of file +#endif // __BoundsExplainer_h__ From 361cb9dff614148e1269de0f175ceabd0daf85a1 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 20 Feb 2022 19:13:03 +0200 Subject: [PATCH 018/165] Update UNSATCertificate.cpp Fixed indentation --- src/engine/UNSATCertificate.cpp | 751 +++++++++++--------------------- 1 file changed, 253 insertions(+), 498 deletions(-) diff --git a/src/engine/UNSATCertificate.cpp b/src/engine/UNSATCertificate.cpp index 2cf1109902..e65008fe50 100644 --- a/src/engine/UNSATCertificate.cpp +++ b/src/engine/UNSATCertificate.cpp @@ -1,5 +1,5 @@ /********************* */ -/*! \file BoundsExplainer.cpp +/*! \file UNSATCertificate.h ** \verbatim ** Top contributors (to current version): ** Omri Isac, Guy Katz @@ -12,516 +12,271 @@ ** [[ Add lengthier description here ]] **/ -#include "UNSATCertificate.h" -#include - - -CertificateNode::CertificateNode( std::vector> *initialTableau, std::vector &groundUBs, std::vector &groundLBs ) - : _children ( 0 ) - , _problemConstraints() - , _parent( NULL ) - , _PLCExplanations( 0 ) - , _contradiction ( NULL ) - , _headSplit( ) - , _hasSATSolution( false ) - , _wasVisited( false ) - , _delegationStatus( DelegationStatus::DONT_DELEGATE ) - , _delegationNumber( 0 ) - , _initialTableau( initialTableau ) - , _groundUpperBounds( groundUBs ) - , _groundLowerBounds( groundLBs ) -{ -} - -CertificateNode::CertificateNode( CertificateNode* parent, PiecewiseLinearCaseSplit split ) - : _children ( 0 ) - , _problemConstraints() - , _parent( parent ) - , _PLCExplanations( 0 ) - , _contradiction ( NULL ) - , _headSplit( std::move( split ) ) - , _hasSATSolution( false ) - , _wasVisited ( false ) - , _delegationStatus( DelegationStatus::DONT_DELEGATE ) - , _delegationNumber( 0 ) - , _initialTableau( NULL ) - , _groundUpperBounds( 0 ) - , _groundLowerBounds( 0 ) -{ - parent->_children.push_back( this ); -} - -CertificateNode::~CertificateNode() -{ - if ( _initialTableau ) - { - for ( auto& row : *_initialTableau ) - row.clear(); - _initialTableau->clear(); - } - - _groundUpperBounds.clear(); - _groundLowerBounds.clear(); - - for ( auto child : _children ) - if ( child ) - { - delete child; - child = NULL; - } - - _children.clear(); - deletePLCExplanations(); - - if ( _contradiction ) - { - delete _contradiction; - _contradiction = NULL; - } - - _parent = NULL; -} - -void CertificateNode::setContradiction( Contradiction* contradiction ) -{ - _contradiction = contradiction; -} - -Contradiction* CertificateNode::getContradiction() const -{ - return _contradiction; -} - -CertificateNode* CertificateNode::getParent() const -{ - return _parent; -} - -const PiecewiseLinearCaseSplit& CertificateNode::getSplit() const -{ - return _headSplit; -} - -const std::list& CertificateNode::getPLCExplanations() const -{ - return _PLCExplanations; -} - -void CertificateNode::makeLeaf() -{ - for ( CertificateNode *child : _children ) - if ( child ) - { - child->_initialTableau = NULL; //Clear reference to root tableau so it will not be deleted - delete child; - child = NULL; - } - - _children.clear(); -} - -void CertificateNode::passChangesToChildren( ProblemConstraint *childrenSplitConstraint ) -{ - for ( auto* child : _children ) - { - child->copyGB( _groundUpperBounds, _groundLowerBounds ); - child->_initialTableau = _initialTableau; - - for ( auto &con : _problemConstraints ) - if ( &con != childrenSplitConstraint ) - child->addProblemConstraint( con._type, con._constraintVars, con._status ); - - //Add the constraint corresponding to head split with correct phase - if ( childrenSplitConstraint && childrenSplitConstraint->_type == PiecewiseLinearFunctionType::RELU ) - { - if ( child->_headSplit.getBoundTightenings().front()._type == Tightening::LB || child->_headSplit.getBoundTightenings().back()._type == Tightening::LB ) - child->addProblemConstraint( childrenSplitConstraint->_type, childrenSplitConstraint->_constraintVars, PhaseStatus::RELU_PHASE_ACTIVE ); - else - child->addProblemConstraint( childrenSplitConstraint->_type, childrenSplitConstraint->_constraintVars, PhaseStatus::RELU_PHASE_INACTIVE ); - } - } -} - -bool CertificateNode::certify() -{ - // Update ground bounds according to head split - for ( auto& tightening : _headSplit.getBoundTightenings() ) - { - auto& temp = tightening._type == Tightening::UB ? _groundUpperBounds : _groundLowerBounds; - temp[tightening._variable] = tightening._value; - } - - // Certify all PLC bound propagations - if ( !certifyAllPLCExplanations( 0.0025 ) ) - return false; - - // Save to file if marked - if ( _delegationStatus == DelegationStatus::DELEGATE_SAVE ) - writeLeafToFile(); - - // Skip if laf has the SAT solution, or if was marked to delegate - if ( _hasSATSolution || _delegationStatus != DelegationStatus::DONT_DELEGATE ) - return true; - - // Check if it is a leaf, and if so use contradiction to certify - // return true iff it is certified - if ( isValidLeaf() ) - return certifyContradiction(); - - // If not a valid leaf, skip only if it is leaf that was not visited - if ( !_wasVisited && !_contradiction && _children.empty() ) - return true; - - // Otherwise, should be a valid non-leaf node - if ( !isValidNoneLeaf() ) - return false; - - - // If so, certify all children and return true iff all children are certified - // Also make sure that they are split correctly (i.e by ReLU constraint or by a single var) - bool answer = true; - List childrenSplits; - for ( auto& child : _children ) - childrenSplits.append( child->_headSplit ); - - auto *childrenSplitConstraint = getCorrespondingReLUConstraint( childrenSplits ); - if ( !certifySingleVarSplits( childrenSplits ) && !childrenSplitConstraint ) - return false; - - passChangesToChildren( childrenSplitConstraint ); - - for ( auto child : _children ) - if ( !child->certify() ) - answer = false; - - return answer; -} - -bool CertificateNode::certifyContradiction() const -{ - ASSERT( isValidLeaf() && !_hasSATSolution ); - unsigned var = _contradiction->_var, m = _initialTableau->size(); - - std::vector ubExpl = std::vector( 0, 0 ); - std::vector lbExpl = std::vector( 0, 0 ); - - if ( _contradiction->_upperExplanation ) - { - ubExpl = std::vector( m, 0 ); - std::copy( _contradiction->_upperExplanation,_contradiction->_upperExplanation + m, ubExpl.begin() ); - } - - if ( _contradiction->_lowerExplanation ) - { - lbExpl = std::vector( m, 0 ); - std::copy( _contradiction->_lowerExplanation, _contradiction->_lowerExplanation + m, lbExpl.begin() ); - } - - double computedUpper = explainBound( var, true, ubExpl ), computedLower = explainBound( var, false, lbExpl ); - - if ( computedUpper >= computedLower ) //TODO delete when done - printf("(Global) Certification error for var %d. ub is %.5lf, lb is %.5lf \n", var, computedUpper, computedLower ); - - return computedUpper < computedLower; -} - -double CertificateNode::explainBound( unsigned var, bool isUpper, const std::vector& expl ) const -{ - return UNSATCertificateUtils::computeBound( var, isUpper, expl, *_initialTableau, _groundUpperBounds, _groundLowerBounds ); -} - -void CertificateNode::copyGB( std::vector &groundUBs, std::vector &groundLBs ) -{ - _groundUpperBounds.clear(); - _groundLowerBounds.clear(); - - _groundUpperBounds.resize( groundUBs.size() ); - _groundLowerBounds.resize( groundLBs.size() ); - - std::copy( groundUBs.begin(), groundUBs.end(), _groundUpperBounds.begin() ); - std::copy( groundLBs.begin(), groundLBs.end(), _groundLowerBounds.begin() ); - -} - -bool CertificateNode::isValidLeaf() const -{ - return _contradiction && _children.empty(); -} - -bool CertificateNode::isValidNoneLeaf() const -{ - return !_contradiction && !_children.empty(); -} - -void CertificateNode::addPLCExplanation( PLCExplanation* expl ) -{ - _PLCExplanations.push_back( expl ); -} - -void CertificateNode::addProblemConstraint( PiecewiseLinearFunctionType type, List constraintVars, PhaseStatus status ) -{ - _problemConstraints.append( { type, constraintVars, status } ); -} - -ProblemConstraint *CertificateNode::getCorrespondingReLUConstraint( const List &splits ) -{ - if ( splits.size() != 2 ) - return NULL; - - auto firstSplitTightenings = splits.front().getBoundTightenings(), secondSplitTightenings = splits.back().getBoundTightenings(); - - // find the LB tightening, its var is b - auto &activeSplit = firstSplitTightenings.front()._type == Tightening::LB ? firstSplitTightenings : secondSplitTightenings; - auto &inactiveSplit = firstSplitTightenings.front()._type == Tightening::LB ? secondSplitTightenings : firstSplitTightenings; - - unsigned b = activeSplit.front()._variable; - unsigned aux = activeSplit.back()._variable; - unsigned f = inactiveSplit.back()._variable; - // Aux var may or may not be used - if ( ( activeSplit.size() != 2 && activeSplit.size() != 1 ) || inactiveSplit.size() != 2 ) - return NULL; +#ifndef __UNSATCertificate_h__ +#define __UNSATCertificate_h__ - if ( FloatUtils::areDisequal( inactiveSplit.back()._value, 0.0 ) || FloatUtils::areDisequal( inactiveSplit.front()._value, 0.0 ) || FloatUtils::areDisequal( activeSplit.back()._value, 0.0 ) || FloatUtils::areDisequal( activeSplit.front()._value, 0.0 ) ) - return NULL; - - // Certify that f = b + aux corresponds to a problem constraints - ProblemConstraint *correspondingConstraint = NULL; - for ( ProblemConstraint& con : _problemConstraints ) - if ( con._type == PiecewiseLinearFunctionType::RELU && con._constraintVars.front() == b && con._constraintVars.exists( f ) && ( activeSplit.size() == 1 || con._constraintVars.back() == aux ) ) - correspondingConstraint = &con; - - // Return the constraint for which f=relu(b) - return correspondingConstraint; -} - -bool CertificateNode::certifyAllPLCExplanations( double epsilon ) -{ - // Create copies of the gb, check for their validity, and pass these changes to all the children - // Assuming the splits of the children are ok. - // NOTE, this will change as PLCExplanation will - for ( auto* expl : _PLCExplanations ) - { - bool constraintMatched = false, tighteningMatched = false; - unsigned length = _initialTableau->size(); - auto explVec = std::vector( 0,0 ); - - if ( expl->_explanation ) - { - explVec = std::vector( length,0 ); - std::copy( expl->_explanation, expl->_explanation + length, explVec.begin() ); - } - - double explainedBound = UNSATCertificateUtils::computeBound( expl->_causingVar, expl->_isCausingBoundUpper, explVec, *_initialTableau, _groundUpperBounds, _groundLowerBounds ); - unsigned b = 0, f = 0, aux = 0; - // Make sure propagation was by a problem constraint - for ( ProblemConstraint& con : _problemConstraints ) - { - if ( expl->_constraintType == PiecewiseLinearFunctionType::RELU && con._constraintVars.exists( expl->_affectedVar ) && con._constraintVars.exists( expl->_causingVar ) ) - { //TODO reconsider design - std::vector conVec( con._constraintVars.begin(), con._constraintVars.end() ); - b = conVec[0], f = conVec[1], aux = conVec[2]; - conVec.clear(); - constraintMatched = true; - - // If explanation is phase fixing, mark it - if ( ( !expl->_isAffectedBoundUpper && expl->_affectedVar == f && FloatUtils::isPositive( expl->_bound ) ) || ( expl->_isAffectedBoundUpper && expl->_affectedVar == aux && FloatUtils::isZero( expl->_bound ) ) ) - con._status = PhaseStatus::RELU_PHASE_ACTIVE; - else if ( ( !expl->_isAffectedBoundUpper && expl->_affectedVar == aux && FloatUtils::isPositive( expl->_bound ) ) || ( expl->_isAffectedBoundUpper && expl->_affectedVar == f && FloatUtils::isZero( expl->_bound ) ) ) - con._status = PhaseStatus::RELU_PHASE_INACTIVE; - } - } - - if ( !constraintMatched ) - return false; - - if ( expl->_causingVar != b && expl->_causingVar != f && expl->_causingVar != aux ) - return false; - - // Make sure the explanation is explained using a ReLU bound tightening. Cases are matching each rule in ReluConstraint.cpp - // We allow explained bound to be tighter than the ones recorded (since an explanation can explain tighter bounds), and an epsilon sized error is tolerated. - - // If lb of b is non negative, then ub of aux is 0 - if ( expl->_causingVar == b && !expl->_isCausingBoundUpper && expl->_affectedVar == aux && expl->_isAffectedBoundUpper && FloatUtils::isZero( expl->_bound ) && !FloatUtils::isNegative( explainedBound + epsilon ) ) - tighteningMatched = true; - - // If lb of f is positive, then ub if aux is 0 - else if ( expl->_causingVar == f && !expl->_isCausingBoundUpper && expl->_affectedVar == aux && expl->_isAffectedBoundUpper && FloatUtils::isZero( expl->_bound ) && FloatUtils::isPositive( explainedBound + epsilon ) ) - tighteningMatched = true; - - // If lb of b is positive x, then lb of aux is -x - else if ( expl->_causingVar == b && !expl->_isCausingBoundUpper && expl->_affectedVar == aux && expl->_isAffectedBoundUpper && FloatUtils::gte( explainedBound, - expl->_bound - epsilon ) && expl->_bound > 0 ) - tighteningMatched = true; - - // If lb of aux is positive, then ub of f is 0 - else if ( expl->_causingVar == aux && !expl->_isCausingBoundUpper && expl->_affectedVar == f && expl->_isAffectedBoundUpper && FloatUtils::isZero( expl->_bound ) && FloatUtils::isPositive( explainedBound + epsilon ) ) - tighteningMatched = true; - - // If lb of f is negative, then it is 0 - else if ( expl->_causingVar == f && !expl->_isCausingBoundUpper && expl->_affectedVar == f && !expl->_isAffectedBoundUpper && FloatUtils::isZero( expl->_bound ) && FloatUtils::isNegative( explainedBound - epsilon ) ) - tighteningMatched = true; - - // Propagate ub from f to b - else if ( expl->_causingVar == f && expl->_isCausingBoundUpper && expl->_affectedVar == b && expl->_isAffectedBoundUpper && FloatUtils::lte( explainedBound, expl->_bound + epsilon ) ) - tighteningMatched = true; - - // If ub of b is non positive, then ub of f is 0 - else if ( expl->_causingVar == b && expl->_isCausingBoundUpper && expl->_affectedVar == f && expl->_isAffectedBoundUpper && FloatUtils::isZero( expl->_bound ) && !FloatUtils::isPositive( explainedBound - epsilon ) ) - tighteningMatched = true; - - // If ub of b is non positive x, then lb of aux is -x - else if ( expl->_causingVar == b && expl->_isCausingBoundUpper && expl->_affectedVar == aux && !expl->_isAffectedBoundUpper && expl->_bound > 0 && !FloatUtils::isPositive( explainedBound - epsilon ) && FloatUtils::lte( explainedBound, -expl->_bound + epsilon) ) - tighteningMatched = true; - - // If ub of b is positive, then propagate to f ( positivity of explained bound is not checked since negative explained ub can always explain positive bound ) - else if ( expl->_causingVar == b && expl->_isCausingBoundUpper && expl->_affectedVar == f && expl->_isAffectedBoundUpper && FloatUtils::isPositive( expl->_bound ) && FloatUtils::lte( explainedBound, expl->_bound + epsilon ) ) - tighteningMatched = true; - - // If ub of aux is x, then lb of b is -x - else if ( expl->_causingVar == aux && expl->_isCausingBoundUpper && expl->_affectedVar == b && !expl->_isAffectedBoundUpper && FloatUtils::lte( explainedBound, -expl->_bound + epsilon ) ) - tighteningMatched = true; - - if ( !tighteningMatched ) - { - printf( "bound %.5lf. explained bound is %.5lf\n", expl->_bound, explainedBound ); //TODO delete when completing - return false; - } - - // If so, update the ground bounds and continue - std::vector& temp = expl->_isAffectedBoundUpper ? _groundUpperBounds : _groundLowerBounds; - bool isTighter = expl->_isAffectedBoundUpper ? FloatUtils::lt( expl->_bound, temp[expl->_affectedVar] ) : FloatUtils::gt( expl->_bound, temp[expl->_affectedVar] ); - if ( isTighter ) - temp[expl->_affectedVar] = expl->_bound; - } - return true; -} +#include "BoundExplainer.h" +#include "SmtLibWriter.h" +#include "PiecewiseLinearFunctionType.h" +#include "ReluConstraint.h" /* - * Get a pointer to a child by a head split, or NULL if not found - */ -CertificateNode* CertificateNode::getChildBySplit( const PiecewiseLinearCaseSplit& split) const -{ - for ( CertificateNode* child : _children ) - if ( child->_headSplit == split ) - return child; - - return NULL; -} - -void CertificateNode::hasSATSolution() + Contains all necessary info of a ground bound update during a run (i.e from ReLU phase-fixing) +*/ +struct PLCExplanation { - _hasSATSolution = true; -} + unsigned _causingVar; + unsigned _affectedVar; + double _bound; + bool _isCausingBoundUpper; + bool _isAffectedBoundUpper; + double *_explanation; + PiecewiseLinearFunctionType _constraintType; + unsigned _decisionLevel; + + ~PLCExplanation() + { + if ( _explanation ) + { + delete [] _explanation; + _explanation = NULL; + } + } +}; -void CertificateNode::wasVisited() -{ - _wasVisited = true; -} - -void CertificateNode::shouldDelegate( unsigned delegationNumber, DelegationStatus delegationStatus ) +/* + Contains all ino relevant for a simple Marabou contradiction - i.e. explanations of contradicting bounds of a variable +*/ +struct Contradiction { - ASSERT( delegationStatus != DelegationStatus::DONT_DELEGATE ); - _delegationStatus = delegationStatus; - _delegationNumber = delegationNumber; -} + unsigned _var; + double *_upperBoundExplanation; + double *_lowerBoundExplanation; + + ~Contradiction() + { + if ( _upperBoundExplanation ) + { + delete [] _upperBoundExplanation; + _upperBoundExplanation = NULL; + } + + if ( _lowerBoundExplanation ) + { + delete [] _lowerBoundExplanation; + _lowerBoundExplanation = NULL; + } + } +}; -bool CertificateNode::certifySingleVarSplits( const List &splits) const +/* + A smaller representation of a problem constraint +*/ +struct ProblemConstraint { - if ( splits.size() != 2 ) - return false; - - // These are singletons to tightenings - auto &frontSplitTightenings = splits.front().getBoundTightenings(); - auto &backSplitTightenings = splits.back().getBoundTightenings(); - - if ( frontSplitTightenings.size() != 1 || backSplitTightenings.size() != 1 ) - return false; - - // These are the elements in the singletons - auto &frontSplitOnlyTightening = frontSplitTightenings.front(); - auto &backSplitOnlyTightening = backSplitTightenings.front(); - - // Check that cases are of the same var and bound, where the for one the bound is UB, and for the other is LB - if ( frontSplitOnlyTightening._variable != backSplitOnlyTightening._variable ) - return false; + PiecewiseLinearFunctionType _type; + List _constraintVars; + PhaseStatus _status; - if ( FloatUtils::areDisequal( frontSplitOnlyTightening._value, backSplitOnlyTightening._value ) ) - return false; + bool operator==( const ProblemConstraint other ) const + { + return _type == other._type && _constraintVars == other._constraintVars; + } +}; - if ( frontSplitOnlyTightening._type == backSplitOnlyTightening._type ) - return false; - - return true; -} - -void CertificateNode::deletePLCExplanations() +enum DelegationStatus : unsigned { - if ( !_PLCExplanations.empty() ) - { - for ( auto expl : _PLCExplanations ) - delete expl; - - _PLCExplanations.clear(); - } -} + DONT_DELEGATE = 0, + DELEGATE_DONT_SAVE = 1, + DELEGATE_SAVE = 2 +}; /* - * Removes all PLC explanations from a certain point - */ -void CertificateNode::resizePLCExplanationsList( unsigned newSize ) -{ - unsigned originalSize = _PLCExplanations.size(); - if ( newSize >= originalSize ) - return; - - for ( unsigned i =0; i < originalSize - newSize; ++i ) - { - delete _PLCExplanations.back(); - _PLCExplanations.back() = NULL; - _PLCExplanations.pop_back(); - } - ASSERT( _PLCExplanations.size() == newSize ); -} - -void CertificateNode::writeLeafToFile() + A certificate node in the tree representing the UNSAT certificate +*/ +class CertificateNode { - ASSERT( _children.empty() && _delegationStatus == DelegationStatus::DELEGATE_SAVE ); - List leafInstance; - - // Write to smtWriter - unsigned m = _initialTableau->size(), n = _groundUpperBounds.size(), b, f; - SmtLibWriter::addHeader( n, leafInstance ); - SmtLibWriter::addGroundUpperBounds( _groundUpperBounds, leafInstance ); - SmtLibWriter::addGroundLowerBounds( _groundLowerBounds, leafInstance ); - - for ( unsigned i = 0; i < m; ++i ) - { - SparseUnsortedList tempRow = SparseUnsortedList(); - for ( unsigned j = 0; j < n; ++j ) //TODO consider improving - if ( !FloatUtils::isZero( ( *_initialTableau )[i][j]) ) - { - tempRow.append( j, ( *_initialTableau )[i][j] ); - tempRow.incrementSize(); - } - SmtLibWriter::addTableauRow( tempRow, leafInstance ); - tempRow.clear(); - } - - for ( auto &constraint : _problemConstraints ) - if ( constraint._type == PiecewiseLinearFunctionType::RELU ) - { - auto vars = constraint._constraintVars; - b = vars.front(); - vars.popBack(); - f = vars.back(); - SmtLibWriter::addReLUConstraint( b, f, constraint._status, leafInstance ); - } - - SmtLibWriter::addFooter(leafInstance ); - SmtLibWriter::writeInstanceToFile( "", _delegationNumber, leafInstance ); -} - -void CertificateNode::removePLCExplanationsBelowDecisionLevel( unsigned decisionLevel ) +public: + /* + Constructor for the root + */ + CertificateNode( Vector> *_initialTableau, Vector &groundUpperBounds, Vector &groundLowerBounds ); + + /* + Constructor for a regular node + */ + CertificateNode( CertificateNode *parent, PiecewiseLinearCaseSplit split ); + + ~CertificateNode(); + + /* + Certifies the tree is indeed a correct proof of unsatisfiability; + */ + bool certify(); + + /* + Sets the leaf contradiction certificate as input + */ + void setContradiction( Contradiction *certificate ); + + /* + Returns the leaf contradiction certificate of the node + */ + Contradiction *getContradiction() const; + + /* + Returns the parent of a node + */ + CertificateNode *getParent() const; + + /* + Returns the head split of a node + */ + const PiecewiseLinearCaseSplit &getSplit() const; + + /* + Returns the list of PLC explanations of the node + */ + const List &getPLCExplanations() const; + + /* + Adds an PLC explanation to the list + */ + void addPLCExplanation( PLCExplanation *explanation ); + + /* + Adds an a problem constraint to the list + */ + void addProblemConstraint( PiecewiseLinearFunctionType type, List constraintVars, PhaseStatus status ); + + /* + Returns a pointer to a child by a head split, or NULL if not found + */ + CertificateNode *getChildBySplit( const PiecewiseLinearCaseSplit &split ) const; + + /* + Sets value of _hasSATSolution to be true + */ + void hasSATSolution(); + + /* + Sets value of _wasVisited to be true + */ + void wasVisited(); + + /* + Sets value of _shouldDelegate to be true + Saves delegation to file iff saveToFile is true + */ + void shouldDelegate( unsigned delegationNumber, DelegationStatus saveToFile ); + + /* + Removes all PLC explanations + */ + void deletePLCExplanations(); + + /* + Removes all PLC explanations from a certain point + */ + void resizePLCExplanationsList( unsigned newSize ); + + /* + Deletes all offsprings of the node and makes it a leaf + */ + void makeLeaf(); + + /* + Removes all PLCExplanations above a certain decision level WITHOUT deleting them + ASSUMPTION - explanations pointers are kept elsewhere before removal + */ + void removePLCExplanationsBelowDecisionLevel( unsigned decisionLevel ); + +private: + List _children; + List _problemConstraints; + CertificateNode* _parent; + List _PLCExplanations; + Contradiction *_contradiction; + PiecewiseLinearCaseSplit _headSplit; + + // Enables certifying correctness of UNSAT leaves in SAT queries + bool _hasSATSolution; + bool _wasVisited; + + DelegationStatus _delegationStatus; + unsigned _delegationNumber; + + Vector> *_initialTableau; + Vector _groundUpperBounds; + Vector _groundLowerBounds; + + /* + Copies initial tableau and ground bounds + */ + void copyGroundBounds( Vector &groundUpperBounds, Vector &groundLowerBounds ); + + /* + Inherits the initialTableau pointer, the ground bounds and the problem constraint from parent, if exists. + Fixes the phase of the constraint that corresponds to the head split + */ + void passChangesToChildren( ProblemConstraint *childrenSplitConstraint ); + + /* + Checks if the node is a valid leaf + */ + bool isValidLeaf() const; + + /* + Checks if the node is a valid none-leaf + */ + bool isValidNoneLeaf() const; + + /* + Write a leaf marked to delegate to a smtlib file format + */ + void writeLeafToFile(); + + /* + Return true iff a list of splits represents a splits over a single variable + */ + bool certifySingleVarSplits( const List &splits ) const; + + /* + Return true iff the changes in the ground bounds are certified, with tolerance to errors with at most size epsilon + */ + bool certifyAllPLCExplanations( double epsilon ); + + /* + Return a pointer to the problem constraint representing the split + */ + ProblemConstraint *getCorrespondingReLUConstraint( const List &splits ); + + /* + Certifies a contradiction + */ + bool certifyContradiction(); + + /* + Computes a bound according to an explanation + */ + double explainBound( unsigned var, bool isUpper, Vector &explanation ); +}; + +class UNSATCertificateUtils { - _PLCExplanations.remove_if( [decisionLevel] ( PLCExplanation* expl ){ return expl->_decisionLevel <= decisionLevel; } ); -} \ No newline at end of file +public: + /* + Use explanation to compute a bound (aka explained bound) + Given a variable, an explanation, initial tableau and ground bounds. + */ + static double computeBound( unsigned var, bool isUpper, const Vector &explanation, + const Vector> &initialTableau, const Vector &groundUpperBounds, const Vector &groundLowerBounds ); + + /* + Given a var, a tableau and a column vector, create a linear combination used to explain a bound + */ + static void getExplanationRowCombination( unsigned var, Vector &explanationRowCombination, const Vector &explanation, + const Vector> &initialTableau ); +}; +#endif //__UNSATCertificate_h__ From 4cbc96789fe0ce1056a15d504ee9d11f260de40a Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 20 Feb 2022 19:13:49 +0200 Subject: [PATCH 019/165] Update UNSATCertificate.h Fixed indentation --- src/engine/UNSATCertificate.h | 440 +++++++++++++++++----------------- 1 file changed, 220 insertions(+), 220 deletions(-) diff --git a/src/engine/UNSATCertificate.h b/src/engine/UNSATCertificate.h index 0ea8210eac..e65008fe50 100644 --- a/src/engine/UNSATCertificate.h +++ b/src/engine/UNSATCertificate.h @@ -1,5 +1,5 @@ /********************* */ -/*! \file BoundExplainer.cpp +/*! \file UNSATCertificate.h ** \verbatim ** Top contributors (to current version): ** Omri Isac, Guy Katz @@ -26,23 +26,23 @@ */ struct PLCExplanation { - unsigned _causingVar; - unsigned _affectedVar; - double _bound; - bool _isCausingBoundUpper; - bool _isAffectedBoundUpper; - double *_explanation; - PiecewiseLinearFunctionType _constraintType; - unsigned _decisionLevel; - - ~PLCExplanation() - { - if ( _explanation ) - { - delete [] _explanation; - _explanation = NULL; - } - } + unsigned _causingVar; + unsigned _affectedVar; + double _bound; + bool _isCausingBoundUpper; + bool _isAffectedBoundUpper; + double *_explanation; + PiecewiseLinearFunctionType _constraintType; + unsigned _decisionLevel; + + ~PLCExplanation() + { + if ( _explanation ) + { + delete [] _explanation; + _explanation = NULL; + } + } }; /* @@ -50,24 +50,24 @@ struct PLCExplanation */ struct Contradiction { - unsigned _var; - double *_upperBoundExplanation; - double *_lowerBoundExplanation; - - ~Contradiction() - { - if ( _upperBoundExplanation ) - { - delete [] _upperBoundExplanation; - _upperBoundExplanation = NULL; - } - - if ( _lowerBoundExplanation ) - { - delete [] _lowerBoundExplanation; - _lowerBoundExplanation = NULL; - } - } + unsigned _var; + double *_upperBoundExplanation; + double *_lowerBoundExplanation; + + ~Contradiction() + { + if ( _upperBoundExplanation ) + { + delete [] _upperBoundExplanation; + _upperBoundExplanation = NULL; + } + + if ( _lowerBoundExplanation ) + { + delete [] _lowerBoundExplanation; + _lowerBoundExplanation = NULL; + } + } }; /* @@ -75,21 +75,21 @@ struct Contradiction */ struct ProblemConstraint { - PiecewiseLinearFunctionType _type; - List _constraintVars; - PhaseStatus _status; - - bool operator==( const ProblemConstraint other ) const - { - return _type == other._type && _constraintVars == other._constraintVars; - } + PiecewiseLinearFunctionType _type; + List _constraintVars; + PhaseStatus _status; + + bool operator==( const ProblemConstraint other ) const + { + return _type == other._type && _constraintVars == other._constraintVars; + } }; enum DelegationStatus : unsigned { - DONT_DELEGATE = 0, - DELEGATE_DONT_SAVE = 1, - DELEGATE_SAVE = 2 + DONT_DELEGATE = 0, + DELEGATE_DONT_SAVE = 1, + DELEGATE_SAVE = 2 }; /* @@ -98,185 +98,185 @@ enum DelegationStatus : unsigned class CertificateNode { public: - /* - Constructor for the root - */ - CertificateNode( Vector> *_initialTableau, Vector &groundUpperBounds, Vector &groundLowerBounds ); - - /* - Constructor for a regular node - */ - CertificateNode( CertificateNode *parent, PiecewiseLinearCaseSplit split ); - - ~CertificateNode(); - - /* - Certifies the tree is indeed a correct proof of unsatisfiability; - */ - bool certify(); - - /* - Sets the leaf contradiction certificate as input - */ - void setContradiction( Contradiction *certificate ); - - /* - Returns the leaf contradiction certificate of the node - */ - Contradiction *getContradiction() const; - - /* - Returns the parent of a node - */ - CertificateNode *getParent() const; - - /* - Returns the head split of a node - */ - const PiecewiseLinearCaseSplit &getSplit() const; - - /* - Returns the list of PLC explanations of the node - */ - const List &getPLCExplanations() const; - - /* - Adds an PLC explanation to the list - */ - void addPLCExplanation( PLCExplanation *explanation ); - - /* - Adds an a problem constraint to the list - */ - void addProblemConstraint( PiecewiseLinearFunctionType type, List constraintVars, PhaseStatus status ); - - /* - Returns a pointer to a child by a head split, or NULL if not found - */ - CertificateNode *getChildBySplit( const PiecewiseLinearCaseSplit &split ) const; - - /* - Sets value of _hasSATSolution to be true - */ - void hasSATSolution(); - - /* - Sets value of _wasVisited to be true - */ - void wasVisited(); - - /* - Sets value of _shouldDelegate to be true - Saves delegation to file iff saveToFile is true - */ - void shouldDelegate( unsigned delegationNumber, DelegationStatus saveToFile ); - - /* - Removes all PLC explanations - */ - void deletePLCExplanations(); - - /* - Removes all PLC explanations from a certain point - */ - void resizePLCExplanationsList( unsigned newSize ); - - /* - Deletes all offsprings of the node and makes it a leaf - */ - void makeLeaf(); - - /* - Removes all PLCExplanations above a certain decision level WITHOUT deleting them - ASSUMPTION - explanations pointers are kept elsewhere before removal - */ - void removePLCExplanationsBelowDecisionLevel( unsigned decisionLevel ); + /* + Constructor for the root + */ + CertificateNode( Vector> *_initialTableau, Vector &groundUpperBounds, Vector &groundLowerBounds ); + + /* + Constructor for a regular node + */ + CertificateNode( CertificateNode *parent, PiecewiseLinearCaseSplit split ); + + ~CertificateNode(); + + /* + Certifies the tree is indeed a correct proof of unsatisfiability; + */ + bool certify(); + + /* + Sets the leaf contradiction certificate as input + */ + void setContradiction( Contradiction *certificate ); + + /* + Returns the leaf contradiction certificate of the node + */ + Contradiction *getContradiction() const; + + /* + Returns the parent of a node + */ + CertificateNode *getParent() const; + + /* + Returns the head split of a node + */ + const PiecewiseLinearCaseSplit &getSplit() const; + + /* + Returns the list of PLC explanations of the node + */ + const List &getPLCExplanations() const; + + /* + Adds an PLC explanation to the list + */ + void addPLCExplanation( PLCExplanation *explanation ); + + /* + Adds an a problem constraint to the list + */ + void addProblemConstraint( PiecewiseLinearFunctionType type, List constraintVars, PhaseStatus status ); + + /* + Returns a pointer to a child by a head split, or NULL if not found + */ + CertificateNode *getChildBySplit( const PiecewiseLinearCaseSplit &split ) const; + + /* + Sets value of _hasSATSolution to be true + */ + void hasSATSolution(); + + /* + Sets value of _wasVisited to be true + */ + void wasVisited(); + + /* + Sets value of _shouldDelegate to be true + Saves delegation to file iff saveToFile is true + */ + void shouldDelegate( unsigned delegationNumber, DelegationStatus saveToFile ); + + /* + Removes all PLC explanations + */ + void deletePLCExplanations(); + + /* + Removes all PLC explanations from a certain point + */ + void resizePLCExplanationsList( unsigned newSize ); + + /* + Deletes all offsprings of the node and makes it a leaf + */ + void makeLeaf(); + + /* + Removes all PLCExplanations above a certain decision level WITHOUT deleting them + ASSUMPTION - explanations pointers are kept elsewhere before removal + */ + void removePLCExplanationsBelowDecisionLevel( unsigned decisionLevel ); private: - List _children; - List _problemConstraints; - CertificateNode* _parent; - List _PLCExplanations; - Contradiction *_contradiction; - PiecewiseLinearCaseSplit _headSplit; - - // Enables certifying correctness of UNSAT leaves in SAT queries - bool _hasSATSolution; - bool _wasVisited; - - DelegationStatus _delegationStatus; - unsigned _delegationNumber; - - Vector> *_initialTableau; - Vector _groundUpperBounds; - Vector _groundLowerBounds; - - /* - Copies initial tableau and ground bounds - */ - void copyGroundBounds( Vector &groundUpperBounds, Vector &groundLowerBounds ); - - /* - Inherits the initialTableau pointer, the ground bounds and the problem constraint from parent, if exists. - Fixes the phase of the constraint that corresponds to the head split - */ - void passChangesToChildren( ProblemConstraint *childrenSplitConstraint ); - - /* - Checks if the node is a valid leaf - */ - bool isValidLeaf() const; - - /* - Checks if the node is a valid none-leaf - */ - bool isValidNoneLeaf() const; - - /* - Write a leaf marked to delegate to a smtlib file format - */ - void writeLeafToFile(); - - /* - Return true iff a list of splits represents a splits over a single variable - */ - bool certifySingleVarSplits( const List &splits ) const; - - /* - Return true iff the changes in the ground bounds are certified, with tolerance to errors with at most size epsilon - */ - bool certifyAllPLCExplanations( double epsilon ); - - /* - Return a pointer to the problem constraint representing the split - */ - ProblemConstraint *getCorrespondingReLUConstraint( const List &splits ); - - /* - Certifies a contradiction - */ - bool certifyContradiction(); - - /* - Computes a bound according to an explanation - */ - double explainBound( unsigned var, bool isUpper, Vector &explanation ); + List _children; + List _problemConstraints; + CertificateNode* _parent; + List _PLCExplanations; + Contradiction *_contradiction; + PiecewiseLinearCaseSplit _headSplit; + + // Enables certifying correctness of UNSAT leaves in SAT queries + bool _hasSATSolution; + bool _wasVisited; + + DelegationStatus _delegationStatus; + unsigned _delegationNumber; + + Vector> *_initialTableau; + Vector _groundUpperBounds; + Vector _groundLowerBounds; + + /* + Copies initial tableau and ground bounds + */ + void copyGroundBounds( Vector &groundUpperBounds, Vector &groundLowerBounds ); + + /* + Inherits the initialTableau pointer, the ground bounds and the problem constraint from parent, if exists. + Fixes the phase of the constraint that corresponds to the head split + */ + void passChangesToChildren( ProblemConstraint *childrenSplitConstraint ); + + /* + Checks if the node is a valid leaf + */ + bool isValidLeaf() const; + + /* + Checks if the node is a valid none-leaf + */ + bool isValidNoneLeaf() const; + + /* + Write a leaf marked to delegate to a smtlib file format + */ + void writeLeafToFile(); + + /* + Return true iff a list of splits represents a splits over a single variable + */ + bool certifySingleVarSplits( const List &splits ) const; + + /* + Return true iff the changes in the ground bounds are certified, with tolerance to errors with at most size epsilon + */ + bool certifyAllPLCExplanations( double epsilon ); + + /* + Return a pointer to the problem constraint representing the split + */ + ProblemConstraint *getCorrespondingReLUConstraint( const List &splits ); + + /* + Certifies a contradiction + */ + bool certifyContradiction(); + + /* + Computes a bound according to an explanation + */ + double explainBound( unsigned var, bool isUpper, Vector &explanation ); }; class UNSATCertificateUtils { public: - /* - Use explanation to compute a bound (aka explained bound) - Given a variable, an explanation, initial tableau and ground bounds. - */ - static double computeBound( unsigned var, bool isUpper, const Vector &explanation, - const Vector> &initialTableau, const Vector &groundUpperBounds, const Vector &groundLowerBounds ); - - /* - Given a var, a tableau and a column vector, create a linear combination used to explain a bound - */ - static void getExplanationRowCombination( unsigned var, Vector &explanationRowCombination, const Vector &explanation, - const Vector> &initialTableau ); + /* + Use explanation to compute a bound (aka explained bound) + Given a variable, an explanation, initial tableau and ground bounds. + */ + static double computeBound( unsigned var, bool isUpper, const Vector &explanation, + const Vector> &initialTableau, const Vector &groundUpperBounds, const Vector &groundLowerBounds ); + + /* + Given a var, a tableau and a column vector, create a linear combination used to explain a bound + */ + static void getExplanationRowCombination( unsigned var, Vector &explanationRowCombination, const Vector &explanation, + const Vector> &initialTableau ); }; #endif //__UNSATCertificate_h__ From 8801552914c0f0b15dc6ad20cc97db482f42c4a9 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 20 Feb 2022 19:15:49 +0200 Subject: [PATCH 020/165] Update UNSATCertificate.cpp Correct version of file --- src/engine/UNSATCertificate.cpp | 775 ++++++++++++++++++++++---------- 1 file changed, 535 insertions(+), 240 deletions(-) diff --git a/src/engine/UNSATCertificate.cpp b/src/engine/UNSATCertificate.cpp index e65008fe50..df0facc3c3 100644 --- a/src/engine/UNSATCertificate.cpp +++ b/src/engine/UNSATCertificate.cpp @@ -1,5 +1,5 @@ /********************* */ -/*! \file UNSATCertificate.h +/*! \file UNSATCertificate.cpp ** \verbatim ** Top contributors (to current version): ** Omri Isac, Guy Katz @@ -12,271 +12,566 @@ ** [[ Add lengthier description here ]] **/ +#include "UNSATCertificate.h" + +CertificateNode::CertificateNode( Vector> *initialTableau, Vector &groundUpperBounds, Vector &groundLowerBounds ) + : _children () + , _problemConstraints() + , _parent( NULL ) + , _PLCExplanations() + , _contradiction ( NULL ) + , _headSplit( ) + , _hasSATSolution( false ) + , _wasVisited( false ) + , _delegationStatus( DelegationStatus::DONT_DELEGATE ) + , _delegationNumber( 0 ) + , _initialTableau( initialTableau ) + , _groundUpperBounds( groundUpperBounds ) + , _groundLowerBounds( groundLowerBounds ) +{ +} + +CertificateNode::CertificateNode( CertificateNode *parent, PiecewiseLinearCaseSplit split ) + : _children () + , _problemConstraints() + , _parent( parent ) + , _PLCExplanations() + , _contradiction ( NULL ) + , _headSplit( std::move( split ) ) + , _hasSATSolution( false ) + , _wasVisited ( false ) + , _delegationStatus( DelegationStatus::DONT_DELEGATE ) + , _delegationNumber( 0 ) + , _initialTableau( NULL ) + , _groundUpperBounds( 0 ) + , _groundLowerBounds( 0 ) +{ + parent->_children.append( this ); +} -#ifndef __UNSATCertificate_h__ -#define __UNSATCertificate_h__ +CertificateNode::~CertificateNode() +{ + for ( auto child : _children ) + { + if ( child ) + { + delete child; + child = NULL; + } + } -#include "BoundExplainer.h" -#include "SmtLibWriter.h" -#include "PiecewiseLinearFunctionType.h" -#include "ReluConstraint.h" + _children.clear(); + deletePLCExplanations(); -/* - Contains all necessary info of a ground bound update during a run (i.e from ReLU phase-fixing) -*/ -struct PLCExplanation + if ( _contradiction ) + { + delete _contradiction; + _contradiction = NULL; + } + + _parent = NULL; +} + +void CertificateNode::setContradiction( Contradiction *contradiction ) +{ + _contradiction = contradiction; +} + +Contradiction *CertificateNode::getContradiction() const +{ + return _contradiction; +} + +CertificateNode *CertificateNode::getParent() const +{ + return _parent; +} + +const PiecewiseLinearCaseSplit &CertificateNode::getSplit() const +{ + return _headSplit; +} + +const List &CertificateNode::getPLCExplanations() const { - unsigned _causingVar; - unsigned _affectedVar; - double _bound; - bool _isCausingBoundUpper; - bool _isAffectedBoundUpper; - double *_explanation; - PiecewiseLinearFunctionType _constraintType; - unsigned _decisionLevel; - - ~PLCExplanation() + return _PLCExplanations; +} + +void CertificateNode::makeLeaf() +{ + for ( CertificateNode *child : _children ) { - if ( _explanation ) + if ( child ) { - delete [] _explanation; - _explanation = NULL; + // Clear reference to root tableau so it will not be deleted + child->_initialTableau = NULL; + delete child; + child = NULL; } } -}; -/* - Contains all ino relevant for a simple Marabou contradiction - i.e. explanations of contradicting bounds of a variable -*/ -struct Contradiction + _children.clear(); +} + +void CertificateNode::passChangesToChildren( ProblemConstraint *childrenSplitConstraint ) { - unsigned _var; - double *_upperBoundExplanation; - double *_lowerBoundExplanation; + for ( auto* child : _children ) + { + child->copyGroundBounds( _groundUpperBounds, _groundLowerBounds ); + child->_initialTableau = _initialTableau; + + for ( auto &con : _problemConstraints ) + { + if ( &con != childrenSplitConstraint ) + child->addProblemConstraint( con._type, con._constraintVars, con._status ); + } + + //Add the constraint corresponding to head split with correct phase + if ( childrenSplitConstraint && childrenSplitConstraint->_type == PiecewiseLinearFunctionType::RELU ) + { + if ( child->_headSplit.getBoundTightenings().front()._type == Tightening::LB || child->_headSplit.getBoundTightenings().back()._type == Tightening::LB ) + child->addProblemConstraint( childrenSplitConstraint->_type, childrenSplitConstraint->_constraintVars, PhaseStatus::RELU_PHASE_ACTIVE ); + else + child->addProblemConstraint( childrenSplitConstraint->_type, childrenSplitConstraint->_constraintVars, PhaseStatus::RELU_PHASE_INACTIVE ); + } + } +} + +bool CertificateNode::certify() +{ + // Update ground bounds according to head split + for ( auto& tightening : _headSplit.getBoundTightenings() ) + { + auto& temp = tightening._type == Tightening::UB ? _groundUpperBounds : _groundLowerBounds; + temp[tightening._variable] = tightening._value; + } + + // Certify all PLC bound propagations + if ( !certifyAllPLCExplanations( 0.0025 ) ) + return false; + + // Save to file if marked + if ( _delegationStatus == DelegationStatus::DELEGATE_SAVE ) + writeLeafToFile(); + + // Skip if laf has the SAT solution, or if was marked to delegate + if ( _hasSATSolution || _delegationStatus != DelegationStatus::DONT_DELEGATE ) + return true; + + // Check if it is a leaf, and if so use contradiction to certify + // return true iff it is certified + if ( isValidLeaf() ) + return certifyContradiction(); + + // If not a valid leaf, skip only if it is leaf that was not visited + if ( !_wasVisited && !_contradiction && _children.empty() ) + return true; + + // Otherwise, should be a valid non-leaf node + if ( !isValidNoneLeaf() ) + return false; + + // If so, certify all children and return true iff all children are certified + // Also make sure that they are split correctly (i.e by ReLU constraint or by a single var) + bool answer = true; + List childrenSplits; + for ( auto& child : _children ) + childrenSplits.append( child->_headSplit ); + + auto *childrenSplitConstraint = getCorrespondingReLUConstraint( childrenSplits ); + if ( !certifySingleVarSplits( childrenSplits ) && !childrenSplitConstraint ) + return false; + + passChangesToChildren( childrenSplitConstraint ); + + for ( auto child : _children ) + if ( !child->certify() ) + answer = false; + + return answer; +} + +bool CertificateNode::certifyContradiction() +{ + ASSERT( isValidLeaf() && !_hasSATSolution ); + unsigned var = _contradiction->_var, m = _initialTableau->size(); + + auto upperBoundExplanation = Vector( 0, 0 ); + auto lowerBoundExplanation = Vector(0, 0 ); + + if ( _contradiction->_upperBoundExplanation ) + { + upperBoundExplanation = Vector( m, 0 ); + std::copy( _contradiction->_upperBoundExplanation, _contradiction->_upperBoundExplanation + m, upperBoundExplanation.begin() ); + } + + if ( _contradiction->_lowerBoundExplanation ) + { + lowerBoundExplanation = Vector( m, 0 ); + std::copy( _contradiction->_lowerBoundExplanation, _contradiction->_lowerBoundExplanation + m, lowerBoundExplanation.begin() ); + } + + double computedUpper = explainBound( var, true, upperBoundExplanation ); + double computedLower = explainBound( var, false, lowerBoundExplanation ); + + return computedUpper < computedLower; +} + +double CertificateNode::explainBound( unsigned var, bool isUpper, Vector &explanation ) +{ + return UNSATCertificateUtils::computeBound( var, isUpper, explanation, *_initialTableau, _groundUpperBounds, _groundLowerBounds ); +} + +void CertificateNode::copyGroundBounds( Vector &groundUpperBounds, Vector &groundLowerBounds ) +{ + _groundUpperBounds = Vector( groundUpperBounds ); + _groundLowerBounds = Vector( groundLowerBounds ); +} + +bool CertificateNode::isValidLeaf() const +{ + return _contradiction && _children.empty(); +} + +bool CertificateNode::isValidNoneLeaf() const +{ + return !_contradiction && !_children.empty(); +} + +void CertificateNode::addPLCExplanation( PLCExplanation *explanation ) +{ + _PLCExplanations.append( explanation ); +} + +void CertificateNode::addProblemConstraint( PiecewiseLinearFunctionType type, List constraintVars, PhaseStatus status ) +{ + _problemConstraints.append( { type, constraintVars, status } ); +} + +ProblemConstraint *CertificateNode::getCorrespondingReLUConstraint( const List &splits ) +{ + if ( splits.size() != 2 ) + return NULL; + + auto firstSplitTightenings = splits.front().getBoundTightenings(), secondSplitTightenings = splits.back().getBoundTightenings(); + + // Find the LB tightening, its var is b + auto &activeSplit = firstSplitTightenings.front()._type == Tightening::LB ? firstSplitTightenings : secondSplitTightenings; + auto &inactiveSplit = firstSplitTightenings.front()._type == Tightening::LB ? secondSplitTightenings : firstSplitTightenings; + + unsigned b = activeSplit.front()._variable; + unsigned aux = activeSplit.back()._variable; + unsigned f = inactiveSplit.back()._variable; + + // Aux var may or may not be used + if ( ( activeSplit.size() != 2 && activeSplit.size() != 1 ) || inactiveSplit.size() != 2 ) + return NULL; + + if ( FloatUtils::areDisequal( inactiveSplit.back()._value, 0.0 ) || FloatUtils::areDisequal( inactiveSplit.front()._value, 0.0 ) || FloatUtils::areDisequal( activeSplit.back()._value, 0.0 ) || FloatUtils::areDisequal( activeSplit.front()._value, 0.0 ) ) + return NULL; - ~Contradiction() + // Certify that f = b + aux corresponds to a problem constraints + ProblemConstraint *correspondingConstraint = NULL; + for ( ProblemConstraint &con : _problemConstraints ) { - if ( _upperBoundExplanation ) + if ( con._type == PiecewiseLinearFunctionType::RELU && con._constraintVars.front() == b && con._constraintVars.exists( f ) && ( activeSplit.size() == 1 || con._constraintVars.back() == aux ) ) + correspondingConstraint = &con; + } + + // Return the constraint for which f=relu(b) + return correspondingConstraint; +} + +bool CertificateNode::certifyAllPLCExplanations( double epsilon ) +{ + // Create copies of the gb, check for their validity, and pass these changes to all the children + // Assuming the splits of the children are ok. + // NOTE, this will change as PLCExplanation will + for ( auto* expl : _PLCExplanations ) + { + bool constraintMatched = false, tighteningMatched = false; + unsigned length = _initialTableau->size(); + auto explanationVector = Vector( 0, 0 ); + + if ( expl->_explanation ) { - delete [] _upperBoundExplanation; - _upperBoundExplanation = NULL; + explanationVector = Vector( length, 0 ); + std::copy( expl->_explanation, expl->_explanation + length, explanationVector.begin() ); } - if ( _lowerBoundExplanation ) + double explainedBound = UNSATCertificateUtils::computeBound( expl->_causingVar, expl->_isCausingBoundUpper, explanationVector, *_initialTableau, _groundUpperBounds, _groundLowerBounds ); + unsigned b = 0, f = 0, aux = 0; + // Make sure propagation was by a problem constraint + for ( ProblemConstraint &con : _problemConstraints ) { - delete [] _lowerBoundExplanation; - _lowerBoundExplanation = NULL; + if ( expl->_constraintType == PiecewiseLinearFunctionType::RELU && con._constraintVars.exists( expl->_affectedVar ) && con._constraintVars.exists( expl->_causingVar ) ) + { //TODO reconsider design + Vector conVec( con._constraintVars.begin(), con._constraintVars.end() ); + b = conVec[0], f = conVec[1], aux = conVec[2]; + constraintMatched = true; + + // If explanation is phase fixing, mark it + if ( ( !expl->_isAffectedBoundUpper && expl->_affectedVar == f && FloatUtils::isPositive( expl->_bound ) ) || ( expl->_isAffectedBoundUpper && expl->_affectedVar == aux && FloatUtils::isZero( expl->_bound ) ) ) + con._status = PhaseStatus::RELU_PHASE_ACTIVE; + else if ( ( !expl->_isAffectedBoundUpper && expl->_affectedVar == aux && FloatUtils::isPositive( expl->_bound ) ) || ( expl->_isAffectedBoundUpper && expl->_affectedVar == f && FloatUtils::isZero( expl->_bound ) ) ) + con._status = PhaseStatus::RELU_PHASE_INACTIVE; + } } + + if ( !constraintMatched ) + return false; + + if ( expl->_causingVar != b && expl->_causingVar != f && expl->_causingVar != aux ) + return false; + + // Make sure the explanation is explained using a ReLU bound tightening. Cases are matching each rule in ReluConstraint.cpp + // We allow explained bound to be tighter than the ones recorded (since an explanation can explain tighter bounds), and an epsilon sized error is tolerated. + + // If lb of b is non negative, then ub of aux is 0 + if ( expl->_causingVar == b && !expl->_isCausingBoundUpper && expl->_affectedVar == aux && expl->_isAffectedBoundUpper && FloatUtils::isZero( expl->_bound ) && !FloatUtils::isNegative( explainedBound + epsilon ) ) + tighteningMatched = true; + + // If lb of f is positive, then ub if aux is 0 + else if ( expl->_causingVar == f && !expl->_isCausingBoundUpper && expl->_affectedVar == aux && expl->_isAffectedBoundUpper && FloatUtils::isZero( expl->_bound ) && FloatUtils::isPositive( explainedBound + epsilon ) ) + tighteningMatched = true; + + // If lb of b is positive x, then lb of aux is -x + else if ( expl->_causingVar == b && !expl->_isCausingBoundUpper && expl->_affectedVar == aux && expl->_isAffectedBoundUpper && FloatUtils::gte( explainedBound, - expl->_bound - epsilon ) && expl->_bound > 0 ) + tighteningMatched = true; + + // If lb of aux is positive, then ub of f is 0 + else if ( expl->_causingVar == aux && !expl->_isCausingBoundUpper && expl->_affectedVar == f && expl->_isAffectedBoundUpper && FloatUtils::isZero( expl->_bound ) && FloatUtils::isPositive( explainedBound + epsilon ) ) + tighteningMatched = true; + + // If lb of f is negative, then it is 0 + else if ( expl->_causingVar == f && !expl->_isCausingBoundUpper && expl->_affectedVar == f && !expl->_isAffectedBoundUpper && FloatUtils::isZero( expl->_bound ) && FloatUtils::isNegative( explainedBound - epsilon ) ) + tighteningMatched = true; + + // Propagate ub from f to b + else if ( expl->_causingVar == f && expl->_isCausingBoundUpper && expl->_affectedVar == b && expl->_isAffectedBoundUpper && FloatUtils::lte( explainedBound, expl->_bound + epsilon ) ) + tighteningMatched = true; + + // If ub of b is non positive, then ub of f is 0 + else if ( expl->_causingVar == b && expl->_isCausingBoundUpper && expl->_affectedVar == f && expl->_isAffectedBoundUpper && FloatUtils::isZero( expl->_bound ) && !FloatUtils::isPositive( explainedBound - epsilon ) ) + tighteningMatched = true; + + // If ub of b is non positive x, then lb of aux is -x + else if ( expl->_causingVar == b && expl->_isCausingBoundUpper && expl->_affectedVar == aux && !expl->_isAffectedBoundUpper && expl->_bound > 0 && !FloatUtils::isPositive( explainedBound - epsilon ) && FloatUtils::lte( explainedBound, -expl->_bound + epsilon) ) + tighteningMatched = true; + + // If ub of b is positive, then propagate to f ( positivity of explained bound is not checked since negative explained ub can always explain positive bound ) + else if ( expl->_causingVar == b && expl->_isCausingBoundUpper && expl->_affectedVar == f && expl->_isAffectedBoundUpper && FloatUtils::isPositive( expl->_bound ) && FloatUtils::lte( explainedBound, expl->_bound + epsilon ) ) + tighteningMatched = true; + + // If ub of aux is x, then lb of b is -x + else if ( expl->_causingVar == aux && expl->_isCausingBoundUpper && expl->_affectedVar == b && !expl->_isAffectedBoundUpper && FloatUtils::lte( explainedBound, -expl->_bound + epsilon ) ) + tighteningMatched = true; + + if ( !tighteningMatched ) + return false; + + // If so, update the ground bounds and continue + Vector& temp = expl->_isAffectedBoundUpper ? _groundUpperBounds : _groundLowerBounds; + bool isTighter = expl->_isAffectedBoundUpper ? FloatUtils::lt( expl->_bound, temp[expl->_affectedVar] ) : FloatUtils::gt( expl->_bound, temp[expl->_affectedVar] ); + if ( isTighter ) + temp[expl->_affectedVar] = expl->_bound; } -}; + return true; +} /* - A smaller representation of a problem constraint -*/ -struct ProblemConstraint + * Get a pointer to a child by a head split, or NULL if not found + */ +CertificateNode* CertificateNode::getChildBySplit( const PiecewiseLinearCaseSplit &split ) const { - PiecewiseLinearFunctionType _type; - List _constraintVars; - PhaseStatus _status; - - bool operator==( const ProblemConstraint other ) const + for ( CertificateNode* child : _children ) { - return _type == other._type && _constraintVars == other._constraintVars; + if ( child->_headSplit == split ) + return child; } -}; -enum DelegationStatus : unsigned + return NULL; +} + +void CertificateNode::hasSATSolution() +{ + _hasSATSolution = true; +} + +void CertificateNode::wasVisited() { - DONT_DELEGATE = 0, - DELEGATE_DONT_SAVE = 1, - DELEGATE_SAVE = 2 -}; + _wasVisited = true; +} + +void CertificateNode::shouldDelegate( unsigned delegationNumber, DelegationStatus delegationStatus ) +{ + ASSERT( delegationStatus != DelegationStatus::DONT_DELEGATE ); + _delegationStatus = delegationStatus; + _delegationNumber = delegationNumber; +} + +bool CertificateNode::certifySingleVarSplits( const List &splits ) const +{ + if ( splits.size() != 2 ) + return false; + + // These are singletons to tightenings + auto &frontSplitTightenings = splits.front().getBoundTightenings(); + auto &backSplitTightenings = splits.back().getBoundTightenings(); + + if ( frontSplitTightenings.size() != 1 || backSplitTightenings.size() != 1 ) + return false; + + // These are the elements in the singletons + auto &frontSplitOnlyTightening = frontSplitTightenings.front(); + auto &backSplitOnlyTightening = backSplitTightenings.front(); + + // Check that cases are of the same var and bound, where the for one the bound is UB, and for the other is LB + if ( frontSplitOnlyTightening._variable != backSplitOnlyTightening._variable ) + return false; + + if ( FloatUtils::areDisequal( frontSplitOnlyTightening._value, backSplitOnlyTightening._value ) ) + return false; + + if ( frontSplitOnlyTightening._type == backSplitOnlyTightening._type ) + return false; + + return true; +} + +void CertificateNode::deletePLCExplanations() +{ + if ( !_PLCExplanations.empty() ) + { + for ( auto explanation : _PLCExplanations ) + delete explanation; + + _PLCExplanations.clear(); + } +} /* - A certificate node in the tree representing the UNSAT certificate -*/ -class CertificateNode + * Removes all PLC explanations from a certain point + */ +void CertificateNode::resizePLCExplanationsList( unsigned newSize ) +{ + unsigned originalSize = _PLCExplanations.size(); + if ( newSize >= originalSize ) + return; + + for ( unsigned i =0; i < originalSize - newSize; ++i ) + { + delete _PLCExplanations.back(); + _PLCExplanations.back() = NULL; + _PLCExplanations.popBack(); + } + ASSERT( _PLCExplanations.size() == newSize ); +} + +void CertificateNode::writeLeafToFile() +{ + ASSERT( _children.empty() && _delegationStatus == DelegationStatus::DELEGATE_SAVE ); + List leafInstance; + + // Write to smtWriter + unsigned m = _initialTableau->size(), n = _groundUpperBounds.size(), b, f; + SmtLibWriter::addHeader( n, leafInstance ); + SmtLibWriter::addGroundUpperBounds( _groundUpperBounds, leafInstance ); + SmtLibWriter::addGroundLowerBounds( _groundLowerBounds, leafInstance ); + + for ( unsigned i = 0; i < m; ++i ) + { + SparseUnsortedList tempRow = SparseUnsortedList(); + for ( unsigned j = 0; j < n; ++j ) //TODO consider improving + if ( !FloatUtils::isZero( ( *_initialTableau )[i][j]) ) + { + tempRow.append( j, ( *_initialTableau )[i][j] ); + tempRow.incrementSize(); + } + SmtLibWriter::addTableauRow( tempRow, leafInstance ); + tempRow.clear(); + } + + for ( auto &constraint : _problemConstraints ) + if ( constraint._type == PiecewiseLinearFunctionType::RELU ) + { + auto vars = constraint._constraintVars; + b = vars.front(); + vars.popBack(); + f = vars.back(); + SmtLibWriter::addReLUConstraint( b, f, constraint._status, leafInstance ); + } + + SmtLibWriter::addFooter( leafInstance ); + SmtLibWriter::writeInstanceToFile( "", _delegationNumber, leafInstance ); +} + +void CertificateNode::removePLCExplanationsBelowDecisionLevel( unsigned decisionLevel ) +{ + _PLCExplanations.removeIf( [decisionLevel] ( PLCExplanation* explanation ){ return explanation->_decisionLevel <= decisionLevel; } ); +} + +double UNSATCertificateUtils::computeBound( unsigned var, bool isUpper, const Vector &explanation, + const Vector> &initialTableau, const Vector &groundUpperBounds, const Vector &groundLowerBounds ) { -public: - /* - Constructor for the root - */ - CertificateNode( Vector> *_initialTableau, Vector &groundUpperBounds, Vector &groundLowerBounds ); - - /* - Constructor for a regular node - */ - CertificateNode( CertificateNode *parent, PiecewiseLinearCaseSplit split ); - - ~CertificateNode(); - - /* - Certifies the tree is indeed a correct proof of unsatisfiability; - */ - bool certify(); - - /* - Sets the leaf contradiction certificate as input - */ - void setContradiction( Contradiction *certificate ); - - /* - Returns the leaf contradiction certificate of the node - */ - Contradiction *getContradiction() const; - - /* - Returns the parent of a node - */ - CertificateNode *getParent() const; - - /* - Returns the head split of a node - */ - const PiecewiseLinearCaseSplit &getSplit() const; - - /* - Returns the list of PLC explanations of the node - */ - const List &getPLCExplanations() const; - - /* - Adds an PLC explanation to the list - */ - void addPLCExplanation( PLCExplanation *explanation ); - - /* - Adds an a problem constraint to the list - */ - void addProblemConstraint( PiecewiseLinearFunctionType type, List constraintVars, PhaseStatus status ); - - /* - Returns a pointer to a child by a head split, or NULL if not found - */ - CertificateNode *getChildBySplit( const PiecewiseLinearCaseSplit &split ) const; - - /* - Sets value of _hasSATSolution to be true - */ - void hasSATSolution(); - - /* - Sets value of _wasVisited to be true - */ - void wasVisited(); - - /* - Sets value of _shouldDelegate to be true - Saves delegation to file iff saveToFile is true - */ - void shouldDelegate( unsigned delegationNumber, DelegationStatus saveToFile ); - - /* - Removes all PLC explanations - */ - void deletePLCExplanations(); - - /* - Removes all PLC explanations from a certain point - */ - void resizePLCExplanationsList( unsigned newSize ); - - /* - Deletes all offsprings of the node and makes it a leaf - */ - void makeLeaf(); - - /* - Removes all PLCExplanations above a certain decision level WITHOUT deleting them - ASSUMPTION - explanations pointers are kept elsewhere before removal - */ - void removePLCExplanationsBelowDecisionLevel( unsigned decisionLevel ); - -private: - List _children; - List _problemConstraints; - CertificateNode* _parent; - List _PLCExplanations; - Contradiction *_contradiction; - PiecewiseLinearCaseSplit _headSplit; - - // Enables certifying correctness of UNSAT leaves in SAT queries - bool _hasSATSolution; - bool _wasVisited; - - DelegationStatus _delegationStatus; - unsigned _delegationNumber; - - Vector> *_initialTableau; - Vector _groundUpperBounds; - Vector _groundLowerBounds; - - /* - Copies initial tableau and ground bounds - */ - void copyGroundBounds( Vector &groundUpperBounds, Vector &groundLowerBounds ); - - /* - Inherits the initialTableau pointer, the ground bounds and the problem constraint from parent, if exists. - Fixes the phase of the constraint that corresponds to the head split - */ - void passChangesToChildren( ProblemConstraint *childrenSplitConstraint ); - - /* - Checks if the node is a valid leaf - */ - bool isValidLeaf() const; - - /* - Checks if the node is a valid none-leaf - */ - bool isValidNoneLeaf() const; - - /* - Write a leaf marked to delegate to a smtlib file format - */ - void writeLeafToFile(); - - /* - Return true iff a list of splits represents a splits over a single variable - */ - bool certifySingleVarSplits( const List &splits ) const; - - /* - Return true iff the changes in the ground bounds are certified, with tolerance to errors with at most size epsilon - */ - bool certifyAllPLCExplanations( double epsilon ); - - /* - Return a pointer to the problem constraint representing the split - */ - ProblemConstraint *getCorrespondingReLUConstraint( const List &splits ); - - /* - Certifies a contradiction - */ - bool certifyContradiction(); - - /* - Computes a bound according to an explanation - */ - double explainBound( unsigned var, bool isUpper, Vector &explanation ); -}; - -class UNSATCertificateUtils + ASSERT( groundLowerBounds.size() == groundUpperBounds.size() ); + ASSERT( initialTableau.size() == explanation.size() || explanation.empty() ); + ASSERT( groundLowerBounds.size() == initialTableau[0].size() ); + ASSERT( groundLowerBounds.size() == initialTableau[initialTableau.size() - 1 ].size() ); + ASSERT( var < groundUpperBounds.size() ); + + double derived_bound = 0, temp; + unsigned n = groundUpperBounds.size(); + + if ( explanation.empty() ) + return isUpper ? groundUpperBounds[var] : groundLowerBounds[var]; + + // Create linear combination of original rows implied from explanation + Vector explanationRowsCombination; + UNSATCertificateUtils::getExplanationRowCombination(var, explanationRowsCombination, explanation, initialTableau ); + + // Set the bound derived from the linear combination, using original bounds. + for ( unsigned i = 0; i < n; ++i ) + { + temp = explanationRowsCombination[i]; + if ( !FloatUtils::isZero( temp ) ) + { + if ( isUpper ) + temp *= FloatUtils::isPositive( explanationRowsCombination[i] ) ? groundUpperBounds[i] : groundLowerBounds[i]; + else + temp *= FloatUtils::isPositive( explanationRowsCombination[i] ) ? groundLowerBounds[i] : groundUpperBounds[i]; + + if ( !FloatUtils::isZero( temp ) ) + derived_bound += temp; + } + } + + return derived_bound; +} + +void UNSATCertificateUtils::getExplanationRowCombination(unsigned var, Vector &explanationRowCombination, const Vector &explanation, + const Vector> &initialTableau ) { -public: - /* - Use explanation to compute a bound (aka explained bound) - Given a variable, an explanation, initial tableau and ground bounds. - */ - static double computeBound( unsigned var, bool isUpper, const Vector &explanation, - const Vector> &initialTableau, const Vector &groundUpperBounds, const Vector &groundLowerBounds ); - - /* - Given a var, a tableau and a column vector, create a linear combination used to explain a bound - */ - static void getExplanationRowCombination( unsigned var, Vector &explanationRowCombination, const Vector &explanation, - const Vector> &initialTableau ); -}; -#endif //__UNSATCertificate_h__ + explanationRowCombination = Vector(initialTableau[0].size(), 0 ); + unsigned n = initialTableau[0].size(), m = explanation.size(); + for ( unsigned i = 0; i < m; ++i ) + { + for ( unsigned j = 0; j < n; ++j ) + { + if ( !FloatUtils::isZero( initialTableau[i][j] ) && !FloatUtils::isZero( explanation[i] ) ) + explanationRowCombination[j] += initialTableau[i][j] * explanation[i]; + } + } + + for ( unsigned i = 0; i < n; ++i ) + { + if ( !FloatUtils::isZero( explanationRowCombination[i] ) ) + explanationRowCombination[i] *= -1; + else + explanationRowCombination[i] = 0; + } + + // Since: 0 = Sum (ci * xi) + c * var = Sum (ci * xi) + (c - 1) * var + var + // We have: var = - Sum (ci * xi) - (c - 1) * var + explanationRowCombination[var] += 1; +} From 309038ee100bb63d084941b2c149a98b63e7c381 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 20 Feb 2022 19:23:02 +0200 Subject: [PATCH 021/165] Update BoundExplainer.h Fixed formatting --- src/engine/BoundExplainer.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/BoundExplainer.h b/src/engine/BoundExplainer.h index d6a8cbf982..bfe65f6c65 100644 --- a/src/engine/BoundExplainer.h +++ b/src/engine/BoundExplainer.h @@ -25,7 +25,7 @@ class BoundExplainer { public: - BoundExplainer(unsigned numberOfVariables, unsigned numberOfRows ); + BoundExplainer( unsigned numberOfVariables, unsigned numberOfRows ); /* Returns the number of rows From 9f15cbbaf75e951220f0899679bebdea2b9af195 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 20 Feb 2022 19:25:54 +0200 Subject: [PATCH 022/165] Update UNSATCertificate.cpp Fixed formatting --- src/engine/UNSATCertificate.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/engine/UNSATCertificate.cpp b/src/engine/UNSATCertificate.cpp index df0facc3c3..f3c1da4bd1 100644 --- a/src/engine/UNSATCertificate.cpp +++ b/src/engine/UNSATCertificate.cpp @@ -15,11 +15,11 @@ #include "UNSATCertificate.h" CertificateNode::CertificateNode( Vector> *initialTableau, Vector &groundUpperBounds, Vector &groundLowerBounds ) - : _children () + : _children() , _problemConstraints() , _parent( NULL ) , _PLCExplanations() - , _contradiction ( NULL ) + , _contradiction( NULL ) , _headSplit( ) , _hasSATSolution( false ) , _wasVisited( false ) @@ -32,14 +32,14 @@ CertificateNode::CertificateNode( Vector> *initialTableau, Vector } CertificateNode::CertificateNode( CertificateNode *parent, PiecewiseLinearCaseSplit split ) - : _children () + : _children() , _problemConstraints() , _parent( parent ) , _PLCExplanations() - , _contradiction ( NULL ) + , _contradiction( NULL ) , _headSplit( std::move( split ) ) , _hasSATSolution( false ) - , _wasVisited ( false ) + , _wasVisited( false ) , _delegationStatus( DelegationStatus::DONT_DELEGATE ) , _delegationNumber( 0 ) , _initialTableau( NULL ) From caedb5030473e23e2f677b44651b6f06acdf47e7 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 20 Feb 2022 19:26:49 +0200 Subject: [PATCH 023/165] Update UNSATCertificate.cpp --- src/engine/UNSATCertificate.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/UNSATCertificate.cpp b/src/engine/UNSATCertificate.cpp index f3c1da4bd1..d0a6909a36 100644 --- a/src/engine/UNSATCertificate.cpp +++ b/src/engine/UNSATCertificate.cpp @@ -552,7 +552,7 @@ double UNSATCertificateUtils::computeBound( unsigned var, bool isUpper, const Ve void UNSATCertificateUtils::getExplanationRowCombination(unsigned var, Vector &explanationRowCombination, const Vector &explanation, const Vector> &initialTableau ) { - explanationRowCombination = Vector(initialTableau[0].size(), 0 ); + explanationRowCombination = Vector( initialTableau[0].size(), 0 ); unsigned n = initialTableau[0].size(), m = explanation.size(); for ( unsigned i = 0; i < m; ++i ) { From 180fd9c54d712f81492203328ff8617ea1a77555 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 20 Feb 2022 19:28:48 +0200 Subject: [PATCH 024/165] Update UNSATCertificate.cpp --- src/engine/UNSATCertificate.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/UNSATCertificate.cpp b/src/engine/UNSATCertificate.cpp index d0a6909a36..d6b37287b6 100644 --- a/src/engine/UNSATCertificate.cpp +++ b/src/engine/UNSATCertificate.cpp @@ -197,7 +197,7 @@ bool CertificateNode::certifyContradiction() unsigned var = _contradiction->_var, m = _initialTableau->size(); auto upperBoundExplanation = Vector( 0, 0 ); - auto lowerBoundExplanation = Vector(0, 0 ); + auto lowerBoundExplanation = Vector( 0, 0 ); if ( _contradiction->_upperBoundExplanation ) { From 594d2babc0850201ad482d2417309ceff6d68ecb Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 6 Mar 2022 11:16:43 +0200 Subject: [PATCH 025/165] Update Test_List.h Added a test of removeIf() method --- src/common/tests/Test_List.h | 38 ++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/src/common/tests/Test_List.h b/src/common/tests/Test_List.h index f7e72fe97b..09e03b8426 100644 --- a/src/common/tests/Test_List.h +++ b/src/common/tests/Test_List.h @@ -63,6 +63,22 @@ class ListTestSuite : public CxxTest::TestSuite --it; TS_ASSERT_EQUALS( it, list.begin() ); TS_ASSERT_EQUALS( *it, 3 ); + + List otherList = { -1, -2 }; + list.appendHead( otherList ); + + it = list.begin(); + TS_ASSERT_EQUALS( *it, -1 ); + ++it; + TS_ASSERT_EQUALS( *it, -2 ); + ++it; + TS_ASSERT_EQUALS( *it, 3 ); + ++it; + TS_ASSERT_EQUALS( *it, 5 ); + ++it; + TS_ASSERT_EQUALS( *it, 8 ); + ++it; + TS_ASSERT_EQUALS( it, list.end() ); } void test_erase() @@ -273,6 +289,28 @@ class ListTestSuite : public CxxTest::TestSuite e.getCode(), CommonError::LIST_IS_EMPTY ); } + + void test_remove_if() + { + List a; + + a.append( -1 ); + a.append( 0 ); + a.append( 1 ); + a.append( -2 ); + + + a.removeIf( [] ( int number ) { return number < 0; } ); + + auto it = a.begin(); + TS_ASSERT_EQUALS( *it, 0 ); + + ++it; + TS_ASSERT_EQUALS( *it, 1 ); + + ++it; + TS_ASSERT_EQUALS( it, a.end() ); + } }; // From 2e4b207cb5e9e971b604e3cb5891662d97eabed6 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 6 Mar 2022 11:17:46 +0200 Subject: [PATCH 026/165] Update Test_Vector.h Added a test of const operator[] --- src/common/tests/Test_Vector.h | 570 ++++++++++----------------------- 1 file changed, 177 insertions(+), 393 deletions(-) diff --git a/src/common/tests/Test_Vector.h b/src/common/tests/Test_Vector.h index 0aa3219371..4719d139a1 100644 --- a/src/common/tests/Test_Vector.h +++ b/src/common/tests/Test_Vector.h @@ -1,5 +1,5 @@ /********************* */ -/*! \file Test_Vector.h +/*! \file Vector.h ** \verbatim ** Top contributors (to current version): ** Guy Katz @@ -9,504 +9,288 @@ ** All rights reserved. See the file COPYING in the top-level source ** directory for licensing information.\endverbatim ** - ** \brief [[ Add one-line brief description here ]] - ** ** [[ Add lengthier description here ]] + **/ -#include +#ifndef __Vector_h__ +#define __Vector_h__ -#include "MString.h" -#include "MockErrno.h" -#include "Vector.h" +#include +#include -class VectorTestSuite : public CxxTest::TestSuite +#include "CommonError.h" +#include + +template +class Vector { + typedef std::vector Super; public: - MockErrno *mockErrno; + typedef typename Super::iterator iterator; + typedef typename Super::const_iterator const_iterator; - void setUp() + Vector() { - TS_ASSERT( mockErrno = new MockErrno ); } - void tearDown() + Vector( const Vector &rhs) = default; + + Vector( const std::initializer_list &initializerList ) : _container( initializerList ) { - TS_ASSERT_THROWS_NOTHING( delete mockErrno ); } - void test_constructor_size() + Vector( unsigned size ) : _container( size ) { - unsigned size = 3; - - Vector vector( size ); - - TS_ASSERT_EQUALS( vector.size(), 3u ); } - void test_constructor_value() + Vector( unsigned size, T value ) : _container( size, value ) { - unsigned size = 3; - double value = 10.0; - - Vector vector( size, value ); - - TS_ASSERT_EQUALS( vector.size(), 3u ); - TS_ASSERT_EQUALS( vector[0], value ); - TS_ASSERT_EQUALS( vector[1], value ); - TS_ASSERT_EQUALS( vector[2], value ); } - void test_brackets() + template + Vector( InputIt begin, InputIt end) : _container( begin, end ) { - Vector vector; - - vector.append( "Apple" ); - vector.append( "Red" ); - vector.append( "Tasty" ); - - TS_ASSERT_EQUALS( vector[0], "Apple" ); - TS_ASSERT_EQUALS( vector[1], "Red" ); - TS_ASSERT_EQUALS( vector[2], "Tasty" ); } - void test_size_and_exists() + virtual void assign ( unsigned size, T value ) { - Vector vector; - - TS_ASSERT_EQUALS( vector.size(), 0u ); - TS_ASSERT( vector.empty() ); - - vector.append( "Apple" ); - TS_ASSERT_EQUALS( vector.size(), 1u ); - TS_ASSERT( vector.exists( "Apple" ) ); - TS_ASSERT( !vector.exists( "Red" ) ); - - TS_ASSERT( !vector.empty() ); - - vector.append( "Red" ); - TS_ASSERT_EQUALS( vector.size(), 2u ); - TS_ASSERT( vector.exists( "Apple" ) ); - TS_ASSERT( vector.exists( "Red" ) ); - - vector.append( "Tasty" ); - TS_ASSERT_EQUALS( vector.size(), 3u ); - TS_ASSERT( vector.exists( "Apple" ) ); - TS_ASSERT( vector.exists( "Red" ) ); - TS_ASSERT( vector.exists( "Tasty" ) ); + _container.assign( size, value ); } - void test_erase() + virtual void append( T value ) { - Vector vector; - - vector.append( "Apple" ); - TS_ASSERT( vector.exists( "Apple" ) ); - TS_ASSERT_THROWS_NOTHING( vector.erase( "Apple" ) ); - TS_ASSERT( !vector.exists( "Apple" ) ); - TS_ASSERT_EQUALS( vector.size(), 0U ); - - vector.append( "Red" ); - vector.append( "Tasty" ); - TS_ASSERT( !vector.exists( "Apple" ) ); - TS_ASSERT( vector.exists( "Red" ) ); - TS_ASSERT( vector.exists( "Tasty" ) ); - - TS_ASSERT_THROWS_NOTHING( vector.erase( "Tasty" ) ); - TS_ASSERT( !vector.exists( "Apple" ) ); - TS_ASSERT( vector.exists( "Red" ) ); - TS_ASSERT( !vector.exists( "Tasty" ) ); - - TS_ASSERT_THROWS_EQUALS( vector.erase( "Bla" ), - const CommonError &e, - e.getCode(), - CommonError::VALUE_DOESNT_EXIST_IN_VECTOR ); - - Vector anotherVector; - anotherVector.append( "1" ); - - String toDelete = anotherVector[0]; - - TS_ASSERT_THROWS_NOTHING( anotherVector.erase( toDelete ) ); - TS_ASSERT_EQUALS( anotherVector.size(), 0u ); + _container.push_back( value ); } - void test_eraseByValue() + virtual void insertHead( T value ) { - Vector vector; - - vector.append( "Apple" ); - TS_ASSERT( vector.exists( "Apple" ) ); - TS_ASSERT_THROWS_NOTHING( vector.eraseByValue( "Apple" ) ); - TS_ASSERT( !vector.exists( "Apple" ) ); - TS_ASSERT_EQUALS( vector.size(), 0U ); - - vector.append( "Red" ); - vector.append( "Tasty" ); - TS_ASSERT( !vector.exists( "Apple" ) ); - TS_ASSERT( vector.exists( "Red" ) ); - TS_ASSERT( vector.exists( "Tasty" ) ); - - TS_ASSERT_THROWS_NOTHING( vector.eraseByValue( "Tasty" ) ); - TS_ASSERT( !vector.exists( "Apple" ) ); - TS_ASSERT( vector.exists( "Red" ) ); - TS_ASSERT( !vector.exists( "Tasty" ) ); - - TS_ASSERT_THROWS_EQUALS( vector.eraseByValue( "Bla" ), - const CommonError &e, - e.getCode(), - CommonError::VALUE_DOESNT_EXIST_IN_VECTOR ); - - Vector anotherVector; - anotherVector.append( "1" ); - - String toDelete = anotherVector[0]; - - TS_ASSERT_THROWS_NOTHING( anotherVector.eraseByValue( toDelete ) ); - TS_ASSERT_EQUALS( anotherVector.size(), 0u ); + _container.insert( _container.begin(), value ); } - void test_erase_at() + virtual ~Vector() { - Vector vector; - - vector.append( 2 ); - vector.append( 4 ); - vector.append( 6 ); - vector.append( 8 ); - - vector.eraseAt( 0 ); - - TS_ASSERT_EQUALS( vector[0], 4 ); - TS_ASSERT_EQUALS( vector[1], 6 ); - TS_ASSERT_EQUALS( vector[2], 8 ); - - vector.eraseAt( 1 ); - - TS_ASSERT_EQUALS( vector[0], 4 ); - TS_ASSERT_EQUALS( vector[1], 8 ); - - TS_ASSERT_THROWS_EQUALS( vector.eraseAt( 17 ), - const CommonError &e, - e.getCode(), - CommonError::VECTOR_OUT_OF_BOUNDS ); } - void test_clear() + T *data() { - Vector vector; - - vector.append( 5 ); - vector.append( 10 ); - - TS_ASSERT_EQUALS( vector.size(), 2U ); - - TS_ASSERT_THROWS_NOTHING( vector.clear() ); - - TS_ASSERT_EQUALS( vector.size(), 0U ); - - TS_ASSERT( !vector.exists( 5 ) ); - TS_ASSERT( !vector.exists( 10 ) ); - - vector.append( 10 ); - - TS_ASSERT_EQUALS( vector.size(), 1U ); - TS_ASSERT( vector.exists( 10 ) ); + return _container.data(); } - void test_concatenation() + T get( int index ) const { - Vector one; - Vector two; - Vector output; - - one.append( 1 ); - one.append( 15 ); - - two.append( 27 ); - two.append( 13 ); - - output = one + two; - - TS_ASSERT_EQUALS( output.size(), 4U ); - - TS_ASSERT_EQUALS( output[0], 1U ); - TS_ASSERT_EQUALS( output[1], 15U ); - TS_ASSERT_EQUALS( output[2], 27U ); - TS_ASSERT_EQUALS( output[3], 13U ); - - TS_ASSERT_EQUALS( one.size(), 2U ); - - one += two; - - TS_ASSERT_EQUALS( one.size(), 4U ); - - TS_ASSERT_EQUALS( one[0], 1U ); - TS_ASSERT_EQUALS( one[1], 15U ); - TS_ASSERT_EQUALS( one[2], 27U ); - TS_ASSERT_EQUALS( one[3], 13U ); + return _container.at( index ); } - void test_pop_first() + T &operator[]( int index ) { - Vector vector; - - vector.append( 1 ); - vector.append( 2 ); - vector.append( 3 ); - - TS_ASSERT_EQUALS( vector.popFirst(), 1 ); - TS_ASSERT_EQUALS( vector.size(), 2U ); - - TS_ASSERT_EQUALS( vector.popFirst(), 2 ); - TS_ASSERT_EQUALS( vector.size(), 1U ); - - TS_ASSERT_EQUALS( vector.popFirst(), 3 ); - TS_ASSERT_EQUALS( vector.size(), 0U ); - - TS_ASSERT_THROWS_EQUALS( vector.popFirst(), - const CommonError &e, - e.getCode(), - CommonError::POPPING_FROM_EMPTY_VECTOR ); + return _container[index]; } - void test_pop() + const T &operator[]( int index ) const { - Vector vector; - - vector.append( 1 ); - vector.append( 2 ); - vector.append( 3 ); - - TS_ASSERT_EQUALS( vector.pop(), 3 ); - TS_ASSERT_EQUALS( vector.size(), 2U ); - - TS_ASSERT_EQUALS( vector.pop(), 2 ); - TS_ASSERT_EQUALS( vector.size(), 1U ); - - TS_ASSERT_EQUALS( vector.pop(), 1 ); - TS_ASSERT_EQUALS( vector.size(), 0U ); - - TS_ASSERT_THROWS_EQUALS( vector.pop(), - const CommonError &e, - e.getCode(), - CommonError::POPPING_FROM_EMPTY_VECTOR ); + return _container[index]; } - void test_first() + bool empty() const { - Vector vector; - - TS_ASSERT_THROWS_EQUALS( vector.first(), - const CommonError &e, - e.getCode(), - CommonError::VECTOR_OUT_OF_BOUNDS ); - - vector.append( 1 ); - TS_ASSERT_EQUALS( vector.first(), 1 ); - - vector.append( 2 ); - TS_ASSERT_EQUALS( vector.first(), 1 ); - - vector.append( 3 ); - TS_ASSERT_EQUALS( vector.first(), 1 ); - - vector.erase( 1 ); - TS_ASSERT_EQUALS( vector.first(), 2 ); + return size() == 0; } - void test_last() + unsigned size() const { - Vector vector; - - TS_ASSERT_THROWS_EQUALS( vector.last(), - const CommonError &e, - e.getCode(), - CommonError::VECTOR_OUT_OF_BOUNDS ); - - vector.append( 1 ); - TS_ASSERT_EQUALS( vector.last(), 1 ); - - vector.append( 2 ); - TS_ASSERT_EQUALS( vector.last(), 2 ); - - vector.append( 3 ); - TS_ASSERT_EQUALS( vector.last(), 3 ); + return _container.size(); } - void test_insert_head() + bool exists( const T &value ) const { - Vector vector; - - vector.append( 1 ); - vector.append( 2 ); - - vector.insertHead( 3 ); + for ( unsigned i = 0; i < size(); ++i ) + { + if ( get( i ) == value ) + return true; + } - TS_ASSERT_EQUALS( vector.size(), 3U ); - TS_ASSERT_EQUALS( vector[0], 3 ); - TS_ASSERT_EQUALS( vector[1], 1 ); - TS_ASSERT_EQUALS( vector[2], 2 ); - - vector.insertHead( 4 ); - - TS_ASSERT_EQUALS( vector.size(), 4U ); - TS_ASSERT_EQUALS( vector[0], 4 ); - TS_ASSERT_EQUALS( vector[1], 3 ); - TS_ASSERT_EQUALS( vector[2], 1 ); - TS_ASSERT_EQUALS( vector[3], 2 ); + return false; } - void test_equality() + void erase( const T &value ) { - Vector a; - Vector b; - - TS_ASSERT( a == b ); - TS_ASSERT( a == a ); - TS_ASSERT( b == b ); - - b.append( 1 ); - - TS_ASSERT( a != b ); - - a.append( 1 ); - - TS_ASSERT( a == b ); - - a.append( 3 ); - a.append( 2 ); - - b.append( 2 ); - - TS_ASSERT( a != b ); - - b.append( 3 ); - - TS_ASSERT( a == b ); + for ( iterator it = _container.begin(); it != _container.end(); ++it ) + { + if ( (*it) == value ) + { + _container.erase( it ); + return; + } + } + + throw CommonError( CommonError::VALUE_DOESNT_EXIST_IN_VECTOR ); } - void test_equality_complex() + void eraseByValue( T value ) { - Vector a, b; - - a.append( 1 ); - a.append( 2 ); - a.append( 1 ); - - b.append( 1 ); - b.append( 2 ); - b.append( 2 ); - - TS_ASSERT( !( a == b ) ); + for ( iterator it = _container.begin(); it != _container.end(); ++it ) + { + if ( (*it) == value ) + { + _container.erase( it ); + return; + } + } + + throw CommonError( CommonError::VALUE_DOESNT_EXIST_IN_VECTOR ); } - void test_sort() + iterator begin() { - Vector a; - - a.append( 2 ); - a.append( 3 ); - a.append( 1 ); + return _container.begin(); + } - TS_ASSERT_EQUALS( a[0], 2 ); + iterator end() + { + return _container.end(); + } - TS_ASSERT_THROWS_NOTHING( a.sort() ); + const_iterator begin() const + { + return _container.begin(); + } - TS_ASSERT_EQUALS( a[0], 1 ); - TS_ASSERT_EQUALS( a[1], 2 ); - TS_ASSERT_EQUALS( a[2], 3 ); + const_iterator end() const + { + return _container.cend(); + } - Vector b; + void erase( iterator &it ) + { + _container.erase( it ); + } - b.append( "egg" ); - b.append( "dog" ); - b.append( "cat" ); + void eraseAt( unsigned index ) + { + if ( index >= size() ) + throw CommonError( CommonError::VECTOR_OUT_OF_BOUNDS ); - TS_ASSERT_EQUALS( b[0], "egg" ); + iterator it = _container.begin(); - TS_ASSERT_THROWS_NOTHING( b.sort() ); + while ( index > 0 ) + { + ++it; + --index; + } - TS_ASSERT_EQUALS( b[0], "cat" ); - TS_ASSERT_EQUALS( b[1], "dog" ); - TS_ASSERT_EQUALS( b[2], "egg" ); + _container.erase( it ); } - void test_erase_by_iterator() + void clear() { - Vector a; + _container.clear(); + } - a.append( 1 ); - a.append( 2 ); - a.append( 3 ); - a.append( 4 ); + Vector operator+( const Vector &other ) + { + Vector output; - Vector::iterator it = a.begin(); + for ( unsigned i = 0; i < this->size(); ++i ) + output.append( ( *this )[i] ); - TS_ASSERT_EQUALS( *it, 1 ); + for ( unsigned i = 0; i < other.size(); ++i ) + output.append( other.get( i ) ); - TS_ASSERT_THROWS_NOTHING( a.erase( it ) ); + return output; + } - TS_ASSERT_EQUALS( *it, 2 ); + Vector &operator+=( const Vector &other ) + { + (*this) = (*this) + other; + return *this; + } - TS_ASSERT_EQUALS( a.size(), 3U ); + T popFirst() + { + if ( size() == 0 ) + throw CommonError( CommonError::POPPING_FROM_EMPTY_VECTOR ); - ++it; + T value = _container[0]; + eraseAt( 0 ); + return value; + } - TS_ASSERT_EQUALS( *it, 3 ); - TS_ASSERT_THROWS_NOTHING( a.erase( it ) ); - TS_ASSERT_EQUALS( *it, 4 ); + T first() const + { + if ( empty() ) + throw CommonError( CommonError::VECTOR_OUT_OF_BOUNDS ); - ++it; + return get( 0 ); + } - TS_ASSERT_EQUALS( it, a.end() ); + T last() const + { + if ( empty() ) + throw CommonError( CommonError::VECTOR_OUT_OF_BOUNDS ); - TS_ASSERT_EQUALS( a.size(), 2U ); + return get( size() - 1 ); } - void test_assignemnt() + T pop() { - Vector a,b; + if ( size() == 0 ) + throw CommonError( CommonError::POPPING_FROM_EMPTY_VECTOR ); - a.append( 1 ); - a.append( 2 ); + T value = last(); + eraseAt( size() - 1 ); + return value; + } - TS_ASSERT_EQUALS( a.size(), 2U ); - TS_ASSERT_EQUALS( b.size(), 0U ); + bool operator==( const Vector &other ) const + { + if ( size() != other.size() ) + return false; - b = a; + Vector copyOfOther = other; - TS_ASSERT_EQUALS( a.size(), 2U ); - TS_ASSERT_EQUALS( b.size(), 2U ); + for ( unsigned i = 0; i < size(); ++i ) + { + if ( !copyOfOther.exists( get( i ) ) ) + return false; - TS_ASSERT_EQUALS( b[0], 1 ); - TS_ASSERT_EQUALS( b[1], 2 ); + copyOfOther.erase( get( i ) ); + } - a.erase( 1 ); - TS_ASSERT_EQUALS( b.size(), 2U ); + return true; } - void test_get() + bool operator!=( const Vector &other ) const { - Vector a; - - a.append( 1 ); - a.append( 2 ); + return !( *this == other ); + } - TS_ASSERT_EQUALS( a.get( 0 ), a[0] ); - TS_ASSERT_EQUALS( a.get( 1 ), a[1] ); + Vector &operator=( const Vector &other ) + { + _container = other._container; + return *this; + } - a[0] = 13; + void sort() + { + std::sort( _container.begin(), _container.end() ); + } - TS_ASSERT_EQUALS( a.get( 0 ), 13 ); - TS_ASSERT_EQUALS( a.get( 0 ), a[0] ); + Super getContainer() const + { + return _container; } + +protected: + Super _container; }; +#endif // __Vector_h__ + // // Local Variables: -// compile-command: "make -C ../../.. " -// tags-file-name: "../../../TAGS" +// compile-command: "make -C ../.. " +// tags-file-name: "../../TAGS" // c-basic-offset: 4 // End: // From c9f3f2eca0433d7622e022db552b053b5a5a88b0 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 6 Mar 2022 11:19:19 +0200 Subject: [PATCH 027/165] Update Vector.h --- src/common/Vector.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/common/Vector.h b/src/common/Vector.h index aa8323ecc3..4719d139a1 100644 --- a/src/common/Vector.h +++ b/src/common/Vector.h @@ -88,9 +88,9 @@ class Vector } const T &operator[]( int index ) const - { - return _container[index]; - } + { + return _container[index]; + } bool empty() const { From bd0a1f2a89121558808e40b1841d0fa89117191d Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 6 Mar 2022 11:20:01 +0200 Subject: [PATCH 028/165] Delete BoundExplainer.cpp --- src/engine/BoundExplainer.cpp | 231 ---------------------------------- 1 file changed, 231 deletions(-) delete mode 100644 src/engine/BoundExplainer.cpp diff --git a/src/engine/BoundExplainer.cpp b/src/engine/BoundExplainer.cpp deleted file mode 100644 index 5aef489c35..0000000000 --- a/src/engine/BoundExplainer.cpp +++ /dev/null @@ -1,231 +0,0 @@ -/********************* */ -/*! \file BoundExplainer.cpp - ** \verbatim - ** Top contributors (to current version): - ** Omri Isac, Guy Katz - ** This file is part of the Marabou project. - ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS - ** in the top-level source directory) and their institutional affiliations. - ** All rights reserved. See the file COPYING in the top-level source - ** directory for licensing information.\endverbatim - ** - ** [[ Add lengthier description here ]] - **/ - -#include "BoundExplainer.h" - -BoundExplainer::BoundExplainer( unsigned numberOfVariables, unsigned numberOfRows ) - : _numberOfVariables( numberOfVariables ) - , _numberOfRows( numberOfRows ) - , _upperBoundExplanations( _numberOfVariables, Vector( 0 ) ) - , _lowerBoundExplanations( _numberOfVariables, Vector( 0 ) ) -{ -} - -unsigned BoundExplainer::getNumberOfRows() const -{ - return _numberOfRows; -} - -unsigned BoundExplainer::getNumberOfVariables() const -{ - return _numberOfVariables; -} - -const Vector &BoundExplainer::getExplanation( unsigned var, bool isUpper ) -{ - ASSERT ( var < _numberOfVariables ); - return isUpper ? _upperBoundExplanations[var] : _lowerBoundExplanations[var]; -} - -void BoundExplainer::updateBoundExplanation( const TableauRow &row, bool isUpper ) -{ - if ( row._size == 0 ) - return; - - updateBoundExplanation( row, isUpper, row._lhs ); -} - -void BoundExplainer::updateBoundExplanation( const TableauRow &row, bool isUpper, unsigned var ) -{ - if ( row._size == 0 ) - return; - - ASSERT ( var < _numberOfVariables ); - double curCoefficient, ci = 0, realCoefficient; - bool tempUpper; - unsigned curVar; - if ( var != row._lhs ) - { - for ( unsigned i = 0; i < row._size; ++i ) - { - if ( row._row[i]._var == var ) - { - ci = row._row[i]._coefficient; - break; - } - } - } - else - ci = -1; - - ASSERT( !FloatUtils::isZero( ci ) ); - Vector rowCoefficients = Vector( _numberOfRows, 0 ); - Vector sum = Vector( _numberOfRows, 0 ); - Vector tempBound; - - for ( unsigned i = 0; i < row._size; ++i ) - { - curVar = row._row[i]._var; - curCoefficient = row._row[i]._coefficient; - - // If the coefficient of the variable is zero then nothing to add to the sum, also skip var - if ( FloatUtils::isZero( curCoefficient ) || curVar == var ) - continue; - - realCoefficient = curCoefficient / -ci; - if ( FloatUtils::isZero( realCoefficient ) ) - continue; - - // If we're currently explaining an upper bound, we use upper bound explanation iff variable's coefficient is positive - // If we're currently explaining a lower bound, we use upper bound explanation iff variable's coefficient is negative - tempUpper = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ); - tempBound = tempUpper ? _upperBoundExplanations[curVar] : _lowerBoundExplanations[curVar]; - addVecTimesScalar( sum, tempBound, realCoefficient ); - } - - // Include lhs as well, if needed - if ( var != row._lhs ) - { - realCoefficient = 1 / ci; - if ( !FloatUtils::isZero( realCoefficient ) ) - { - tempUpper = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ); - tempBound = tempUpper ? _upperBoundExplanations[row._lhs] : _lowerBoundExplanations[row._lhs]; - addVecTimesScalar( sum, tempBound, realCoefficient ); - } - } - - // Update according to row coefficients - extractRowCoefficients( row, rowCoefficients, ci ); - addVecTimesScalar( sum, rowCoefficients, 1 ); - - injectExplanation( sum, var, isUpper ); -} - -void BoundExplainer::updateBoundExplanationSparse( const SparseUnsortedList &row, bool isUpper, unsigned var ) -{ - if ( row.empty() ) - return; - - ASSERT( var < _numberOfVariables ); - bool tempUpper; - double curCoefficient, ci = 0, realCoefficient; - for ( const auto &entry : row ) - { - if ( entry._index == var ) - { - ci = entry._value; - break; - } - } - - ASSERT( !FloatUtils::isZero( ci ) ); - Vector rowCoefficients = Vector( _numberOfRows, 0 ); - Vector sum = Vector( _numberOfRows, 0 ); - Vector tempBound; - - for ( const auto &entry : row ) - { - curCoefficient = entry._value; - // If coefficient is zero then nothing to add to the sum, also skip var - if ( FloatUtils::isZero( curCoefficient ) || entry._index == var ) - continue; - - realCoefficient = curCoefficient / -ci; - if ( FloatUtils::isZero( realCoefficient ) ) - continue; - - // If we're currently explaining an upper bound, we use upper bound explanation iff variable's coefficient is positive - // If we're currently explaining a lower bound, we use upper bound explanation iff variable's coefficient is negative - tempUpper = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ); - tempBound = tempUpper ? _upperBoundExplanations[entry._index] : _lowerBoundExplanations[entry._index]; - addVecTimesScalar( sum, tempBound, realCoefficient ); - } - - // Update according to row coefficients - extractSparseRowCoefficients( row, rowCoefficients, ci ); - addVecTimesScalar( sum, rowCoefficients, 1 ); - - injectExplanation( sum, var, isUpper ); -} - -void BoundExplainer::addVecTimesScalar( Vector &sum, const Vector &input, double scalar ) const -{ - if ( input.empty() || FloatUtils::isZero( scalar ) ) - return; - - ASSERT( sum.size() == _numberOfRows && input.size() == _numberOfRows ); - - for (unsigned i = 0; i < _numberOfRows; ++i ) - sum[i] += scalar * input[i]; -} - -void BoundExplainer::extractRowCoefficients( const TableauRow &row, Vector &coefficients, double ci ) const -{ - ASSERT(coefficients.size() == _numberOfRows && (row._size == _numberOfVariables || row._size == _numberOfVariables - _numberOfRows ) ); - - // The coefficients of the row m highest-indices vars are the coefficients of slack variables - for ( unsigned i = 0; i < row._size; ++i ) - { - if (row._row[i]._var >= _numberOfVariables - _numberOfRows && !FloatUtils::isZero(row._row[i]._coefficient ) ) - coefficients[row._row[i]._var - _numberOfVariables + _numberOfRows] = - row._row[i]._coefficient / ci; - } - - // If the lhs was part of original basis, its coefficient is 1 / ci - if (row._lhs >= _numberOfVariables - _numberOfRows ) - coefficients[row._lhs - _numberOfVariables + _numberOfRows] = 1 / ci; -} - - -void BoundExplainer::extractSparseRowCoefficients( const SparseUnsortedList &row, Vector &coefficients, double ci ) const -{ - ASSERT(coefficients.size() == _numberOfRows ); - - // The coefficients of the row m highest-indices vars are the coefficients of slack variables - for ( const auto &entry : row ) - { - if (entry._index >= _numberOfVariables - _numberOfRows && !FloatUtils::isZero( entry._value ) ) - coefficients[entry._index - _numberOfVariables + _numberOfRows] = - entry._value / ci; - } -} - -void BoundExplainer::addVariable() -{ - ++_numberOfRows; - ++_numberOfVariables; - _upperBoundExplanations.append( Vector( 0 ) ); - _lowerBoundExplanations.append( Vector( 0 ) ); - - for (unsigned i = 0; i < _numberOfVariables; ++i ) - { - if ( !_upperBoundExplanations[i].empty() ) - _upperBoundExplanations[i].append( 0 ); - - if ( !_lowerBoundExplanations[i].empty() ) - _lowerBoundExplanations[i].append( 0 ); - } -} - -void BoundExplainer::resetExplanation( unsigned var, bool isUpper ) -{ - ASSERT(var < _numberOfVariables ); - isUpper ? _upperBoundExplanations[var].clear() : _lowerBoundExplanations[var].clear(); -} - -void BoundExplainer::injectExplanation( const Vector &explanation, unsigned var, bool isUpper ) -{ - ASSERT(var < _numberOfVariables && (explanation.empty() || explanation.size() == _numberOfRows ) ); - Vector *temp = isUpper ? &_upperBoundExplanations[var] : &_lowerBoundExplanations[var]; - *temp = explanation; -} \ No newline at end of file From 27e915031bfcabf1e9b8e377adaa2a74cf039336 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 6 Mar 2022 11:20:09 +0200 Subject: [PATCH 029/165] Delete BoundExplainer.h --- src/engine/BoundExplainer.h | 102 ------------------------------------ 1 file changed, 102 deletions(-) delete mode 100644 src/engine/BoundExplainer.h diff --git a/src/engine/BoundExplainer.h b/src/engine/BoundExplainer.h deleted file mode 100644 index bfe65f6c65..0000000000 --- a/src/engine/BoundExplainer.h +++ /dev/null @@ -1,102 +0,0 @@ -/********************* */ -/*! \file BoundExplainer.h - ** \verbatim - ** Top contributors (to current version): - ** Omri Isac, Guy Katz - ** This file is part of the Marabou project. - ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS - ** in the top-level source directory) and their institutional affiliations. - ** All rights reserved. See the file COPYING in the top-level source - ** directory for licensing information.\endverbatim - ** - ** [[ Add lengthier description here ]] - **/ - -#ifndef __BoundsExplainer_h__ -#define __BoundsExplainer_h__ - -#include "SparseUnsortedList.h" -#include "TableauRow.h" -#include "Vector.h" - -/* - A class which encapsulates bounds explanations of all variables of a tableau -*/ -class BoundExplainer -{ -public: - BoundExplainer( unsigned numberOfVariables, unsigned numberOfRows ); - - /* - Returns the number of rows - */ - unsigned getNumberOfRows() const; - - /* - Returns the number of variables - */ - unsigned getNumberOfVariables() const; - - /* - Returns a bound explanation - */ - const Vector &getExplanation( unsigned var, bool isUpper ); - - /* - Given a row, updates the values of the bound explanations of its lhs according to the row - */ - void updateBoundExplanation( const TableauRow &row, bool isUpper ); - - /* - Given a row, updates the values of the bound explanations of a var according to the row - */ - void updateBoundExplanation( const TableauRow &row, bool isUpper, unsigned varIndex ); - - /* - Given a row as SparseUnsortedList, updates the values of the bound explanations of a var according to the row - */ - void updateBoundExplanationSparse( const SparseUnsortedList &row, bool isUpper, unsigned var ); - - /* - Adds a zero explanation at the end, and a zero entry to all explanations - */ - void addVariable(); - - /* - Resets an explanation (to be a zero vec, represented by an empty vec) - */ - void resetExplanation( unsigned var, bool isUpper ); - - /* - Updates an explanation, without necessarily using the recursive rule - */ - void injectExplanation( const Vector &explanation, unsigned var, bool isUpper ); - -private: - unsigned _numberOfVariables; - unsigned _numberOfRows; - Vector> _upperBoundExplanations; - Vector> _lowerBoundExplanations; - - /* - Adds a multiplication of an array by scalar to another array - */ - void addVecTimesScalar( Vector &sum, const Vector &input, double scalar ) const; - - /* - Upon receiving a row, extract coefficients of the original tableau's equations that create the row - Equivalently, extract the coefficients of the slack variables. - Assumption - the slack variables indices are always the last m. - All coefficients are divided by -ci, the coefficient of the explained var, for normalization. - */ - void extractRowCoefficients( const TableauRow &row, Vector &coefficients, double ci ) const; - - /* - Upon receiving a row given as a SparseUnsortedList, extract coefficients of the original tableau's equations that create the row - Equivalently, extract the coefficients of the slack variables. - Assumption - the slack variables indices are always the last m. - All coefficients are divided by -ci, the coefficient of the explained var, for normalization. - */ - void extractSparseRowCoefficients( const SparseUnsortedList &row, Vector &coefficients, double ci ) const; -}; -#endif // __BoundsExplainer_h__ From 7c8f9a9016d14fb6e573e945f47dc74b22d9e91c Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 6 Mar 2022 11:20:19 +0200 Subject: [PATCH 030/165] Delete UNSATCertificate.cpp --- src/engine/UNSATCertificate.cpp | 577 -------------------------------- 1 file changed, 577 deletions(-) delete mode 100644 src/engine/UNSATCertificate.cpp diff --git a/src/engine/UNSATCertificate.cpp b/src/engine/UNSATCertificate.cpp deleted file mode 100644 index d6b37287b6..0000000000 --- a/src/engine/UNSATCertificate.cpp +++ /dev/null @@ -1,577 +0,0 @@ -/********************* */ -/*! \file UNSATCertificate.cpp - ** \verbatim - ** Top contributors (to current version): - ** Omri Isac, Guy Katz - ** This file is part of the Marabou project. - ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS - ** in the top-level source directory) and their institutional affiliations. - ** All rights reserved. See the file COPYING in the top-level source - ** directory for licensing information.\endverbatim - ** - ** [[ Add lengthier description here ]] - **/ - -#include "UNSATCertificate.h" - -CertificateNode::CertificateNode( Vector> *initialTableau, Vector &groundUpperBounds, Vector &groundLowerBounds ) - : _children() - , _problemConstraints() - , _parent( NULL ) - , _PLCExplanations() - , _contradiction( NULL ) - , _headSplit( ) - , _hasSATSolution( false ) - , _wasVisited( false ) - , _delegationStatus( DelegationStatus::DONT_DELEGATE ) - , _delegationNumber( 0 ) - , _initialTableau( initialTableau ) - , _groundUpperBounds( groundUpperBounds ) - , _groundLowerBounds( groundLowerBounds ) -{ -} - -CertificateNode::CertificateNode( CertificateNode *parent, PiecewiseLinearCaseSplit split ) - : _children() - , _problemConstraints() - , _parent( parent ) - , _PLCExplanations() - , _contradiction( NULL ) - , _headSplit( std::move( split ) ) - , _hasSATSolution( false ) - , _wasVisited( false ) - , _delegationStatus( DelegationStatus::DONT_DELEGATE ) - , _delegationNumber( 0 ) - , _initialTableau( NULL ) - , _groundUpperBounds( 0 ) - , _groundLowerBounds( 0 ) -{ - parent->_children.append( this ); -} - -CertificateNode::~CertificateNode() -{ - for ( auto child : _children ) - { - if ( child ) - { - delete child; - child = NULL; - } - } - - _children.clear(); - deletePLCExplanations(); - - if ( _contradiction ) - { - delete _contradiction; - _contradiction = NULL; - } - - _parent = NULL; -} - -void CertificateNode::setContradiction( Contradiction *contradiction ) -{ - _contradiction = contradiction; -} - -Contradiction *CertificateNode::getContradiction() const -{ - return _contradiction; -} - -CertificateNode *CertificateNode::getParent() const -{ - return _parent; -} - -const PiecewiseLinearCaseSplit &CertificateNode::getSplit() const -{ - return _headSplit; -} - -const List &CertificateNode::getPLCExplanations() const -{ - return _PLCExplanations; -} - -void CertificateNode::makeLeaf() -{ - for ( CertificateNode *child : _children ) - { - if ( child ) - { - // Clear reference to root tableau so it will not be deleted - child->_initialTableau = NULL; - delete child; - child = NULL; - } - } - - _children.clear(); -} - -void CertificateNode::passChangesToChildren( ProblemConstraint *childrenSplitConstraint ) -{ - for ( auto* child : _children ) - { - child->copyGroundBounds( _groundUpperBounds, _groundLowerBounds ); - child->_initialTableau = _initialTableau; - - for ( auto &con : _problemConstraints ) - { - if ( &con != childrenSplitConstraint ) - child->addProblemConstraint( con._type, con._constraintVars, con._status ); - } - - //Add the constraint corresponding to head split with correct phase - if ( childrenSplitConstraint && childrenSplitConstraint->_type == PiecewiseLinearFunctionType::RELU ) - { - if ( child->_headSplit.getBoundTightenings().front()._type == Tightening::LB || child->_headSplit.getBoundTightenings().back()._type == Tightening::LB ) - child->addProblemConstraint( childrenSplitConstraint->_type, childrenSplitConstraint->_constraintVars, PhaseStatus::RELU_PHASE_ACTIVE ); - else - child->addProblemConstraint( childrenSplitConstraint->_type, childrenSplitConstraint->_constraintVars, PhaseStatus::RELU_PHASE_INACTIVE ); - } - } -} - -bool CertificateNode::certify() -{ - // Update ground bounds according to head split - for ( auto& tightening : _headSplit.getBoundTightenings() ) - { - auto& temp = tightening._type == Tightening::UB ? _groundUpperBounds : _groundLowerBounds; - temp[tightening._variable] = tightening._value; - } - - // Certify all PLC bound propagations - if ( !certifyAllPLCExplanations( 0.0025 ) ) - return false; - - // Save to file if marked - if ( _delegationStatus == DelegationStatus::DELEGATE_SAVE ) - writeLeafToFile(); - - // Skip if laf has the SAT solution, or if was marked to delegate - if ( _hasSATSolution || _delegationStatus != DelegationStatus::DONT_DELEGATE ) - return true; - - // Check if it is a leaf, and if so use contradiction to certify - // return true iff it is certified - if ( isValidLeaf() ) - return certifyContradiction(); - - // If not a valid leaf, skip only if it is leaf that was not visited - if ( !_wasVisited && !_contradiction && _children.empty() ) - return true; - - // Otherwise, should be a valid non-leaf node - if ( !isValidNoneLeaf() ) - return false; - - // If so, certify all children and return true iff all children are certified - // Also make sure that they are split correctly (i.e by ReLU constraint or by a single var) - bool answer = true; - List childrenSplits; - for ( auto& child : _children ) - childrenSplits.append( child->_headSplit ); - - auto *childrenSplitConstraint = getCorrespondingReLUConstraint( childrenSplits ); - if ( !certifySingleVarSplits( childrenSplits ) && !childrenSplitConstraint ) - return false; - - passChangesToChildren( childrenSplitConstraint ); - - for ( auto child : _children ) - if ( !child->certify() ) - answer = false; - - return answer; -} - -bool CertificateNode::certifyContradiction() -{ - ASSERT( isValidLeaf() && !_hasSATSolution ); - unsigned var = _contradiction->_var, m = _initialTableau->size(); - - auto upperBoundExplanation = Vector( 0, 0 ); - auto lowerBoundExplanation = Vector( 0, 0 ); - - if ( _contradiction->_upperBoundExplanation ) - { - upperBoundExplanation = Vector( m, 0 ); - std::copy( _contradiction->_upperBoundExplanation, _contradiction->_upperBoundExplanation + m, upperBoundExplanation.begin() ); - } - - if ( _contradiction->_lowerBoundExplanation ) - { - lowerBoundExplanation = Vector( m, 0 ); - std::copy( _contradiction->_lowerBoundExplanation, _contradiction->_lowerBoundExplanation + m, lowerBoundExplanation.begin() ); - } - - double computedUpper = explainBound( var, true, upperBoundExplanation ); - double computedLower = explainBound( var, false, lowerBoundExplanation ); - - return computedUpper < computedLower; -} - -double CertificateNode::explainBound( unsigned var, bool isUpper, Vector &explanation ) -{ - return UNSATCertificateUtils::computeBound( var, isUpper, explanation, *_initialTableau, _groundUpperBounds, _groundLowerBounds ); -} - -void CertificateNode::copyGroundBounds( Vector &groundUpperBounds, Vector &groundLowerBounds ) -{ - _groundUpperBounds = Vector( groundUpperBounds ); - _groundLowerBounds = Vector( groundLowerBounds ); -} - -bool CertificateNode::isValidLeaf() const -{ - return _contradiction && _children.empty(); -} - -bool CertificateNode::isValidNoneLeaf() const -{ - return !_contradiction && !_children.empty(); -} - -void CertificateNode::addPLCExplanation( PLCExplanation *explanation ) -{ - _PLCExplanations.append( explanation ); -} - -void CertificateNode::addProblemConstraint( PiecewiseLinearFunctionType type, List constraintVars, PhaseStatus status ) -{ - _problemConstraints.append( { type, constraintVars, status } ); -} - -ProblemConstraint *CertificateNode::getCorrespondingReLUConstraint( const List &splits ) -{ - if ( splits.size() != 2 ) - return NULL; - - auto firstSplitTightenings = splits.front().getBoundTightenings(), secondSplitTightenings = splits.back().getBoundTightenings(); - - // Find the LB tightening, its var is b - auto &activeSplit = firstSplitTightenings.front()._type == Tightening::LB ? firstSplitTightenings : secondSplitTightenings; - auto &inactiveSplit = firstSplitTightenings.front()._type == Tightening::LB ? secondSplitTightenings : firstSplitTightenings; - - unsigned b = activeSplit.front()._variable; - unsigned aux = activeSplit.back()._variable; - unsigned f = inactiveSplit.back()._variable; - - // Aux var may or may not be used - if ( ( activeSplit.size() != 2 && activeSplit.size() != 1 ) || inactiveSplit.size() != 2 ) - return NULL; - - if ( FloatUtils::areDisequal( inactiveSplit.back()._value, 0.0 ) || FloatUtils::areDisequal( inactiveSplit.front()._value, 0.0 ) || FloatUtils::areDisequal( activeSplit.back()._value, 0.0 ) || FloatUtils::areDisequal( activeSplit.front()._value, 0.0 ) ) - return NULL; - - // Certify that f = b + aux corresponds to a problem constraints - ProblemConstraint *correspondingConstraint = NULL; - for ( ProblemConstraint &con : _problemConstraints ) - { - if ( con._type == PiecewiseLinearFunctionType::RELU && con._constraintVars.front() == b && con._constraintVars.exists( f ) && ( activeSplit.size() == 1 || con._constraintVars.back() == aux ) ) - correspondingConstraint = &con; - } - - // Return the constraint for which f=relu(b) - return correspondingConstraint; -} - -bool CertificateNode::certifyAllPLCExplanations( double epsilon ) -{ - // Create copies of the gb, check for their validity, and pass these changes to all the children - // Assuming the splits of the children are ok. - // NOTE, this will change as PLCExplanation will - for ( auto* expl : _PLCExplanations ) - { - bool constraintMatched = false, tighteningMatched = false; - unsigned length = _initialTableau->size(); - auto explanationVector = Vector( 0, 0 ); - - if ( expl->_explanation ) - { - explanationVector = Vector( length, 0 ); - std::copy( expl->_explanation, expl->_explanation + length, explanationVector.begin() ); - } - - double explainedBound = UNSATCertificateUtils::computeBound( expl->_causingVar, expl->_isCausingBoundUpper, explanationVector, *_initialTableau, _groundUpperBounds, _groundLowerBounds ); - unsigned b = 0, f = 0, aux = 0; - // Make sure propagation was by a problem constraint - for ( ProblemConstraint &con : _problemConstraints ) - { - if ( expl->_constraintType == PiecewiseLinearFunctionType::RELU && con._constraintVars.exists( expl->_affectedVar ) && con._constraintVars.exists( expl->_causingVar ) ) - { //TODO reconsider design - Vector conVec( con._constraintVars.begin(), con._constraintVars.end() ); - b = conVec[0], f = conVec[1], aux = conVec[2]; - constraintMatched = true; - - // If explanation is phase fixing, mark it - if ( ( !expl->_isAffectedBoundUpper && expl->_affectedVar == f && FloatUtils::isPositive( expl->_bound ) ) || ( expl->_isAffectedBoundUpper && expl->_affectedVar == aux && FloatUtils::isZero( expl->_bound ) ) ) - con._status = PhaseStatus::RELU_PHASE_ACTIVE; - else if ( ( !expl->_isAffectedBoundUpper && expl->_affectedVar == aux && FloatUtils::isPositive( expl->_bound ) ) || ( expl->_isAffectedBoundUpper && expl->_affectedVar == f && FloatUtils::isZero( expl->_bound ) ) ) - con._status = PhaseStatus::RELU_PHASE_INACTIVE; - } - } - - if ( !constraintMatched ) - return false; - - if ( expl->_causingVar != b && expl->_causingVar != f && expl->_causingVar != aux ) - return false; - - // Make sure the explanation is explained using a ReLU bound tightening. Cases are matching each rule in ReluConstraint.cpp - // We allow explained bound to be tighter than the ones recorded (since an explanation can explain tighter bounds), and an epsilon sized error is tolerated. - - // If lb of b is non negative, then ub of aux is 0 - if ( expl->_causingVar == b && !expl->_isCausingBoundUpper && expl->_affectedVar == aux && expl->_isAffectedBoundUpper && FloatUtils::isZero( expl->_bound ) && !FloatUtils::isNegative( explainedBound + epsilon ) ) - tighteningMatched = true; - - // If lb of f is positive, then ub if aux is 0 - else if ( expl->_causingVar == f && !expl->_isCausingBoundUpper && expl->_affectedVar == aux && expl->_isAffectedBoundUpper && FloatUtils::isZero( expl->_bound ) && FloatUtils::isPositive( explainedBound + epsilon ) ) - tighteningMatched = true; - - // If lb of b is positive x, then lb of aux is -x - else if ( expl->_causingVar == b && !expl->_isCausingBoundUpper && expl->_affectedVar == aux && expl->_isAffectedBoundUpper && FloatUtils::gte( explainedBound, - expl->_bound - epsilon ) && expl->_bound > 0 ) - tighteningMatched = true; - - // If lb of aux is positive, then ub of f is 0 - else if ( expl->_causingVar == aux && !expl->_isCausingBoundUpper && expl->_affectedVar == f && expl->_isAffectedBoundUpper && FloatUtils::isZero( expl->_bound ) && FloatUtils::isPositive( explainedBound + epsilon ) ) - tighteningMatched = true; - - // If lb of f is negative, then it is 0 - else if ( expl->_causingVar == f && !expl->_isCausingBoundUpper && expl->_affectedVar == f && !expl->_isAffectedBoundUpper && FloatUtils::isZero( expl->_bound ) && FloatUtils::isNegative( explainedBound - epsilon ) ) - tighteningMatched = true; - - // Propagate ub from f to b - else if ( expl->_causingVar == f && expl->_isCausingBoundUpper && expl->_affectedVar == b && expl->_isAffectedBoundUpper && FloatUtils::lte( explainedBound, expl->_bound + epsilon ) ) - tighteningMatched = true; - - // If ub of b is non positive, then ub of f is 0 - else if ( expl->_causingVar == b && expl->_isCausingBoundUpper && expl->_affectedVar == f && expl->_isAffectedBoundUpper && FloatUtils::isZero( expl->_bound ) && !FloatUtils::isPositive( explainedBound - epsilon ) ) - tighteningMatched = true; - - // If ub of b is non positive x, then lb of aux is -x - else if ( expl->_causingVar == b && expl->_isCausingBoundUpper && expl->_affectedVar == aux && !expl->_isAffectedBoundUpper && expl->_bound > 0 && !FloatUtils::isPositive( explainedBound - epsilon ) && FloatUtils::lte( explainedBound, -expl->_bound + epsilon) ) - tighteningMatched = true; - - // If ub of b is positive, then propagate to f ( positivity of explained bound is not checked since negative explained ub can always explain positive bound ) - else if ( expl->_causingVar == b && expl->_isCausingBoundUpper && expl->_affectedVar == f && expl->_isAffectedBoundUpper && FloatUtils::isPositive( expl->_bound ) && FloatUtils::lte( explainedBound, expl->_bound + epsilon ) ) - tighteningMatched = true; - - // If ub of aux is x, then lb of b is -x - else if ( expl->_causingVar == aux && expl->_isCausingBoundUpper && expl->_affectedVar == b && !expl->_isAffectedBoundUpper && FloatUtils::lte( explainedBound, -expl->_bound + epsilon ) ) - tighteningMatched = true; - - if ( !tighteningMatched ) - return false; - - // If so, update the ground bounds and continue - Vector& temp = expl->_isAffectedBoundUpper ? _groundUpperBounds : _groundLowerBounds; - bool isTighter = expl->_isAffectedBoundUpper ? FloatUtils::lt( expl->_bound, temp[expl->_affectedVar] ) : FloatUtils::gt( expl->_bound, temp[expl->_affectedVar] ); - if ( isTighter ) - temp[expl->_affectedVar] = expl->_bound; - } - return true; -} - -/* - * Get a pointer to a child by a head split, or NULL if not found - */ -CertificateNode* CertificateNode::getChildBySplit( const PiecewiseLinearCaseSplit &split ) const -{ - for ( CertificateNode* child : _children ) - { - if ( child->_headSplit == split ) - return child; - } - - return NULL; -} - -void CertificateNode::hasSATSolution() -{ - _hasSATSolution = true; -} - -void CertificateNode::wasVisited() -{ - _wasVisited = true; -} - -void CertificateNode::shouldDelegate( unsigned delegationNumber, DelegationStatus delegationStatus ) -{ - ASSERT( delegationStatus != DelegationStatus::DONT_DELEGATE ); - _delegationStatus = delegationStatus; - _delegationNumber = delegationNumber; -} - -bool CertificateNode::certifySingleVarSplits( const List &splits ) const -{ - if ( splits.size() != 2 ) - return false; - - // These are singletons to tightenings - auto &frontSplitTightenings = splits.front().getBoundTightenings(); - auto &backSplitTightenings = splits.back().getBoundTightenings(); - - if ( frontSplitTightenings.size() != 1 || backSplitTightenings.size() != 1 ) - return false; - - // These are the elements in the singletons - auto &frontSplitOnlyTightening = frontSplitTightenings.front(); - auto &backSplitOnlyTightening = backSplitTightenings.front(); - - // Check that cases are of the same var and bound, where the for one the bound is UB, and for the other is LB - if ( frontSplitOnlyTightening._variable != backSplitOnlyTightening._variable ) - return false; - - if ( FloatUtils::areDisequal( frontSplitOnlyTightening._value, backSplitOnlyTightening._value ) ) - return false; - - if ( frontSplitOnlyTightening._type == backSplitOnlyTightening._type ) - return false; - - return true; -} - -void CertificateNode::deletePLCExplanations() -{ - if ( !_PLCExplanations.empty() ) - { - for ( auto explanation : _PLCExplanations ) - delete explanation; - - _PLCExplanations.clear(); - } -} - -/* - * Removes all PLC explanations from a certain point - */ -void CertificateNode::resizePLCExplanationsList( unsigned newSize ) -{ - unsigned originalSize = _PLCExplanations.size(); - if ( newSize >= originalSize ) - return; - - for ( unsigned i =0; i < originalSize - newSize; ++i ) - { - delete _PLCExplanations.back(); - _PLCExplanations.back() = NULL; - _PLCExplanations.popBack(); - } - ASSERT( _PLCExplanations.size() == newSize ); -} - -void CertificateNode::writeLeafToFile() -{ - ASSERT( _children.empty() && _delegationStatus == DelegationStatus::DELEGATE_SAVE ); - List leafInstance; - - // Write to smtWriter - unsigned m = _initialTableau->size(), n = _groundUpperBounds.size(), b, f; - SmtLibWriter::addHeader( n, leafInstance ); - SmtLibWriter::addGroundUpperBounds( _groundUpperBounds, leafInstance ); - SmtLibWriter::addGroundLowerBounds( _groundLowerBounds, leafInstance ); - - for ( unsigned i = 0; i < m; ++i ) - { - SparseUnsortedList tempRow = SparseUnsortedList(); - for ( unsigned j = 0; j < n; ++j ) //TODO consider improving - if ( !FloatUtils::isZero( ( *_initialTableau )[i][j]) ) - { - tempRow.append( j, ( *_initialTableau )[i][j] ); - tempRow.incrementSize(); - } - SmtLibWriter::addTableauRow( tempRow, leafInstance ); - tempRow.clear(); - } - - for ( auto &constraint : _problemConstraints ) - if ( constraint._type == PiecewiseLinearFunctionType::RELU ) - { - auto vars = constraint._constraintVars; - b = vars.front(); - vars.popBack(); - f = vars.back(); - SmtLibWriter::addReLUConstraint( b, f, constraint._status, leafInstance ); - } - - SmtLibWriter::addFooter( leafInstance ); - SmtLibWriter::writeInstanceToFile( "", _delegationNumber, leafInstance ); -} - -void CertificateNode::removePLCExplanationsBelowDecisionLevel( unsigned decisionLevel ) -{ - _PLCExplanations.removeIf( [decisionLevel] ( PLCExplanation* explanation ){ return explanation->_decisionLevel <= decisionLevel; } ); -} - -double UNSATCertificateUtils::computeBound( unsigned var, bool isUpper, const Vector &explanation, - const Vector> &initialTableau, const Vector &groundUpperBounds, const Vector &groundLowerBounds ) -{ - ASSERT( groundLowerBounds.size() == groundUpperBounds.size() ); - ASSERT( initialTableau.size() == explanation.size() || explanation.empty() ); - ASSERT( groundLowerBounds.size() == initialTableau[0].size() ); - ASSERT( groundLowerBounds.size() == initialTableau[initialTableau.size() - 1 ].size() ); - ASSERT( var < groundUpperBounds.size() ); - - double derived_bound = 0, temp; - unsigned n = groundUpperBounds.size(); - - if ( explanation.empty() ) - return isUpper ? groundUpperBounds[var] : groundLowerBounds[var]; - - // Create linear combination of original rows implied from explanation - Vector explanationRowsCombination; - UNSATCertificateUtils::getExplanationRowCombination(var, explanationRowsCombination, explanation, initialTableau ); - - // Set the bound derived from the linear combination, using original bounds. - for ( unsigned i = 0; i < n; ++i ) - { - temp = explanationRowsCombination[i]; - if ( !FloatUtils::isZero( temp ) ) - { - if ( isUpper ) - temp *= FloatUtils::isPositive( explanationRowsCombination[i] ) ? groundUpperBounds[i] : groundLowerBounds[i]; - else - temp *= FloatUtils::isPositive( explanationRowsCombination[i] ) ? groundLowerBounds[i] : groundUpperBounds[i]; - - if ( !FloatUtils::isZero( temp ) ) - derived_bound += temp; - } - } - - return derived_bound; -} - -void UNSATCertificateUtils::getExplanationRowCombination(unsigned var, Vector &explanationRowCombination, const Vector &explanation, - const Vector> &initialTableau ) -{ - explanationRowCombination = Vector( initialTableau[0].size(), 0 ); - unsigned n = initialTableau[0].size(), m = explanation.size(); - for ( unsigned i = 0; i < m; ++i ) - { - for ( unsigned j = 0; j < n; ++j ) - { - if ( !FloatUtils::isZero( initialTableau[i][j] ) && !FloatUtils::isZero( explanation[i] ) ) - explanationRowCombination[j] += initialTableau[i][j] * explanation[i]; - } - } - - for ( unsigned i = 0; i < n; ++i ) - { - if ( !FloatUtils::isZero( explanationRowCombination[i] ) ) - explanationRowCombination[i] *= -1; - else - explanationRowCombination[i] = 0; - } - - // Since: 0 = Sum (ci * xi) + c * var = Sum (ci * xi) + (c - 1) * var + var - // We have: var = - Sum (ci * xi) - (c - 1) * var - explanationRowCombination[var] += 1; -} From 63a3cf744a9234bb2a9a6a872a90b952de3dad92 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 6 Mar 2022 11:20:29 +0200 Subject: [PATCH 031/165] Delete UNSATCertificate.h --- src/engine/UNSATCertificate.h | 282 ---------------------------------- 1 file changed, 282 deletions(-) delete mode 100644 src/engine/UNSATCertificate.h diff --git a/src/engine/UNSATCertificate.h b/src/engine/UNSATCertificate.h deleted file mode 100644 index e65008fe50..0000000000 --- a/src/engine/UNSATCertificate.h +++ /dev/null @@ -1,282 +0,0 @@ -/********************* */ -/*! \file UNSATCertificate.h - ** \verbatim - ** Top contributors (to current version): - ** Omri Isac, Guy Katz - ** This file is part of the Marabou project. - ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS - ** in the top-level source directory) and their institutional affiliations. - ** All rights reserved. See the file COPYING in the top-level source - ** directory for licensing information.\endverbatim - ** - ** [[ Add lengthier description here ]] - **/ - - -#ifndef __UNSATCertificate_h__ -#define __UNSATCertificate_h__ - -#include "BoundExplainer.h" -#include "SmtLibWriter.h" -#include "PiecewiseLinearFunctionType.h" -#include "ReluConstraint.h" - -/* - Contains all necessary info of a ground bound update during a run (i.e from ReLU phase-fixing) -*/ -struct PLCExplanation -{ - unsigned _causingVar; - unsigned _affectedVar; - double _bound; - bool _isCausingBoundUpper; - bool _isAffectedBoundUpper; - double *_explanation; - PiecewiseLinearFunctionType _constraintType; - unsigned _decisionLevel; - - ~PLCExplanation() - { - if ( _explanation ) - { - delete [] _explanation; - _explanation = NULL; - } - } -}; - -/* - Contains all ino relevant for a simple Marabou contradiction - i.e. explanations of contradicting bounds of a variable -*/ -struct Contradiction -{ - unsigned _var; - double *_upperBoundExplanation; - double *_lowerBoundExplanation; - - ~Contradiction() - { - if ( _upperBoundExplanation ) - { - delete [] _upperBoundExplanation; - _upperBoundExplanation = NULL; - } - - if ( _lowerBoundExplanation ) - { - delete [] _lowerBoundExplanation; - _lowerBoundExplanation = NULL; - } - } -}; - -/* - A smaller representation of a problem constraint -*/ -struct ProblemConstraint -{ - PiecewiseLinearFunctionType _type; - List _constraintVars; - PhaseStatus _status; - - bool operator==( const ProblemConstraint other ) const - { - return _type == other._type && _constraintVars == other._constraintVars; - } -}; - -enum DelegationStatus : unsigned -{ - DONT_DELEGATE = 0, - DELEGATE_DONT_SAVE = 1, - DELEGATE_SAVE = 2 -}; - -/* - A certificate node in the tree representing the UNSAT certificate -*/ -class CertificateNode -{ -public: - /* - Constructor for the root - */ - CertificateNode( Vector> *_initialTableau, Vector &groundUpperBounds, Vector &groundLowerBounds ); - - /* - Constructor for a regular node - */ - CertificateNode( CertificateNode *parent, PiecewiseLinearCaseSplit split ); - - ~CertificateNode(); - - /* - Certifies the tree is indeed a correct proof of unsatisfiability; - */ - bool certify(); - - /* - Sets the leaf contradiction certificate as input - */ - void setContradiction( Contradiction *certificate ); - - /* - Returns the leaf contradiction certificate of the node - */ - Contradiction *getContradiction() const; - - /* - Returns the parent of a node - */ - CertificateNode *getParent() const; - - /* - Returns the head split of a node - */ - const PiecewiseLinearCaseSplit &getSplit() const; - - /* - Returns the list of PLC explanations of the node - */ - const List &getPLCExplanations() const; - - /* - Adds an PLC explanation to the list - */ - void addPLCExplanation( PLCExplanation *explanation ); - - /* - Adds an a problem constraint to the list - */ - void addProblemConstraint( PiecewiseLinearFunctionType type, List constraintVars, PhaseStatus status ); - - /* - Returns a pointer to a child by a head split, or NULL if not found - */ - CertificateNode *getChildBySplit( const PiecewiseLinearCaseSplit &split ) const; - - /* - Sets value of _hasSATSolution to be true - */ - void hasSATSolution(); - - /* - Sets value of _wasVisited to be true - */ - void wasVisited(); - - /* - Sets value of _shouldDelegate to be true - Saves delegation to file iff saveToFile is true - */ - void shouldDelegate( unsigned delegationNumber, DelegationStatus saveToFile ); - - /* - Removes all PLC explanations - */ - void deletePLCExplanations(); - - /* - Removes all PLC explanations from a certain point - */ - void resizePLCExplanationsList( unsigned newSize ); - - /* - Deletes all offsprings of the node and makes it a leaf - */ - void makeLeaf(); - - /* - Removes all PLCExplanations above a certain decision level WITHOUT deleting them - ASSUMPTION - explanations pointers are kept elsewhere before removal - */ - void removePLCExplanationsBelowDecisionLevel( unsigned decisionLevel ); - -private: - List _children; - List _problemConstraints; - CertificateNode* _parent; - List _PLCExplanations; - Contradiction *_contradiction; - PiecewiseLinearCaseSplit _headSplit; - - // Enables certifying correctness of UNSAT leaves in SAT queries - bool _hasSATSolution; - bool _wasVisited; - - DelegationStatus _delegationStatus; - unsigned _delegationNumber; - - Vector> *_initialTableau; - Vector _groundUpperBounds; - Vector _groundLowerBounds; - - /* - Copies initial tableau and ground bounds - */ - void copyGroundBounds( Vector &groundUpperBounds, Vector &groundLowerBounds ); - - /* - Inherits the initialTableau pointer, the ground bounds and the problem constraint from parent, if exists. - Fixes the phase of the constraint that corresponds to the head split - */ - void passChangesToChildren( ProblemConstraint *childrenSplitConstraint ); - - /* - Checks if the node is a valid leaf - */ - bool isValidLeaf() const; - - /* - Checks if the node is a valid none-leaf - */ - bool isValidNoneLeaf() const; - - /* - Write a leaf marked to delegate to a smtlib file format - */ - void writeLeafToFile(); - - /* - Return true iff a list of splits represents a splits over a single variable - */ - bool certifySingleVarSplits( const List &splits ) const; - - /* - Return true iff the changes in the ground bounds are certified, with tolerance to errors with at most size epsilon - */ - bool certifyAllPLCExplanations( double epsilon ); - - /* - Return a pointer to the problem constraint representing the split - */ - ProblemConstraint *getCorrespondingReLUConstraint( const List &splits ); - - /* - Certifies a contradiction - */ - bool certifyContradiction(); - - /* - Computes a bound according to an explanation - */ - double explainBound( unsigned var, bool isUpper, Vector &explanation ); -}; - -class UNSATCertificateUtils -{ -public: - /* - Use explanation to compute a bound (aka explained bound) - Given a variable, an explanation, initial tableau and ground bounds. - */ - static double computeBound( unsigned var, bool isUpper, const Vector &explanation, - const Vector> &initialTableau, const Vector &groundUpperBounds, const Vector &groundLowerBounds ); - - /* - Given a var, a tableau and a column vector, create a linear combination used to explain a bound - */ - static void getExplanationRowCombination( unsigned var, Vector &explanationRowCombination, const Vector &explanation, - const Vector> &initialTableau ); -}; -#endif //__UNSATCertificate_h__ From 27f00e5c231f43d1b0206588a91abebbbfc88cdf Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 6 Mar 2022 11:20:43 +0200 Subject: [PATCH 032/165] Delete SmtLibWriter.h --- src/common/SmtLibWriter.h | 72 --------------------------------------- 1 file changed, 72 deletions(-) delete mode 100644 src/common/SmtLibWriter.h diff --git a/src/common/SmtLibWriter.h b/src/common/SmtLibWriter.h deleted file mode 100644 index fd4dcd4328..0000000000 --- a/src/common/SmtLibWriter.h +++ /dev/null @@ -1,72 +0,0 @@ -/********************* */ -/*! \file SmtLibWriter.h -** \verbatim -** Top contributors (to current version): -** Omri Isac, Guy Katz -** This file is part of the Marabou project. -** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS -** in the top-level source directory) and their institutional affiliations. -** All rights reserved. See the file COPYING in the top-level source -** directory for licensing information.\endverbatim -** -** [[ Add lengthier description here ]] -**/ - -#ifndef __SmtLibWriter_h__ -#define __SmtLibWriter_h__ - -#include "File.h" -#include "List.h" -#include "MString.h" -#include "PiecewiseLinearConstraint.h" -#include "SparseUnsortedList.h" -#include "Vector.h" - -/* -* A class responsible for writing instances of LP+PLC into SMTLIB format -*/ -class SmtLibWriter -{ -public: - /* - Adds a SMTLIB header to the SMTLIB instance with numberOfVariables variables - */ - static void addHeader( unsigned numberOfVariables, List &instance ); - - /* - Adds a SMTLIB footer to the SMTLIB instance - */ - static void addFooter( List &instance ); - - /* - Adds a line representing ReLU constraint, in SMTLIB format, to the SMTLIB instance - */ - static void addReLUConstraint( unsigned b, unsigned f, PhaseStatus status, List &instance ); - - /* - Adds a line representing a Tableau Row, in SMTLIB format, to the SMTLIB instance - */ - static void addTableauRow( const SparseUnsortedList &row, List &instance ); - - /* - Adds lines representing the ground upper bounds, in SMTLIB format, to the SMTLIB instance - */ - static void addGroundUpperBounds( Vector &bounds, List &instance ); - - /* - Adds lines representing the ground lower bounds, in SMTLIB format, to the SMTLIB instance - */ - static void addGroundLowerBounds( Vector &bounds, List &instance ); - - /* - Writes an instances to a file - */ - static void writeInstanceToFile( const String &directory, unsigned delegationNumber, const List &instance ); - - /* - Returns a string representing the value of a double - */ - static String signedValue( double val ); -}; - -#endif //__SmtLibWriter_h__ From 6657bb819f176d3f688aebbbc82b51c30b0bd758 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 6 Mar 2022 11:20:50 +0200 Subject: [PATCH 033/165] Delete SmtLibWriter.cpp --- src/common/SmtLibWriter.cpp | 87 ------------------------------------- 1 file changed, 87 deletions(-) delete mode 100644 src/common/SmtLibWriter.cpp diff --git a/src/common/SmtLibWriter.cpp b/src/common/SmtLibWriter.cpp deleted file mode 100644 index 195301c06f..0000000000 --- a/src/common/SmtLibWriter.cpp +++ /dev/null @@ -1,87 +0,0 @@ -/********************* */ -/*! \file SmtLibWriter.cpp - ** \verbatim - ** Top contributors (to current version): - ** Omri Isac, Guy Katz - ** This file is part of the Marabou project. - ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS - ** in the top-level source directory) and their institutional affiliations. - ** All rights reserved. See the file COPYING in the top-level source - ** directory for licensing information.\endverbatim - ** - ** [[ Add lengthier description here ]] - **/ - -#include "SmtLibWriter.h" - -void SmtLibWriter::addHeader( unsigned numberOfVariables, List &instance ) -{ - instance.append( "( set-logic QF_LRA )\n" ); - for ( unsigned i = 0; i < numberOfVariables; ++i ) - instance.append( "( declare-fun x" + std::to_string( i ) + " () Real )\n" ); -} - -void SmtLibWriter::addFooter( List &instance ) -{ - instance.append( "( check-sat )\n" ); - instance.append( "( exit )\n" ); -} - -void SmtLibWriter::addReLUConstraint( unsigned b, unsigned f, PhaseStatus status, List &instance ) -{ - if ( status == PHASE_NOT_FIXED ) - instance.append( "( assert ( = x" + std::to_string( f ) + " ( ite ( >= x" + std::to_string( b ) + " 0) x" + std::to_string( b )+ " 0 ) ) )\n" ); - else if ( status == RELU_PHASE_ACTIVE ) - instance.append( "( assert ( = x" + std::to_string( f ) + " x" + std::to_string( b ) + " ) )\n" ); - else if ( status == RELU_PHASE_INACTIVE ) - instance.append( "( assert ( = x" + std::to_string( f ) + " 0 ) )\n" ); -} - -void SmtLibWriter::addTableauRow( const SparseUnsortedList &row, List &instance ) -{ - unsigned size = row.getSize(), counter = 0; - String assertRowLine = "( assert ( = 0"; - for ( auto &entry : row ) - { - if ( counter != size - 1 ) - assertRowLine += String( " ( + ( * " ) + signedValue( entry._value ) + " x" + std::to_string( entry._index ) + " )"; - else - assertRowLine += String( " ( * " ) + signedValue( entry._value ) + " x" + std::to_string( entry._index ) + " )"; - ++counter; - } - - for ( unsigned i = 0; i < counter + 1 ; ++i ) - assertRowLine += String( ")" ); - - instance.append( assertRowLine + "\n" ); -} - -void SmtLibWriter::addGroundUpperBounds( Vector &bounds, List &instance ) -{ - unsigned n = bounds.size(); - for ( unsigned i = 0; i < n; ++i ) - instance.append( String( " ( assert ( >= x" + std::to_string( i ) ) + String( " " ) + signedValue( bounds[i] ) + " ) )\n" ); -} - -void SmtLibWriter::addGroundLowerBounds( Vector &bounds, List &instance ) -{ - unsigned n = bounds.size(); - for ( unsigned i = 0; i < n; ++i ) - instance.append( String( " ( assert ( >= x" + std::to_string( i ) ) + String( " " ) + signedValue( bounds[i] ) + " ) )\n" ); -} - -void SmtLibWriter::writeInstanceToFile( const String &directory, unsigned delegationNumber, const List &instance ) -{ - File file ( directory + "delegated" + std::to_string( delegationNumber ) + ".smtlib" ); - file.open(File::MODE_WRITE_TRUNCATE ); - - for ( const String &s : instance ) - file.write( s ); - - file.close(); -} - -String SmtLibWriter::signedValue( double val ) -{ - return val > 0 ? std::to_string( val ) : "( - " + std::to_string( abs( val ) ) + " )"; -} From b27c0531bb69f5de79b8c6e9fc9134838e80cc41 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 6 Mar 2022 11:21:07 +0200 Subject: [PATCH 034/165] Delete Test_BoundExplainer.h --- src/engine/tests/Test_BoundExplainer.h | 165 ------------------------- 1 file changed, 165 deletions(-) delete mode 100644 src/engine/tests/Test_BoundExplainer.h diff --git a/src/engine/tests/Test_BoundExplainer.h b/src/engine/tests/Test_BoundExplainer.h deleted file mode 100644 index 1de757cdd9..0000000000 --- a/src/engine/tests/Test_BoundExplainer.h +++ /dev/null @@ -1,165 +0,0 @@ -/********************* */ -/*! \file BoundExplainer.h - ** \verbatim - ** Top contributors (to current version): - ** Omri Isac, Guy Katz - ** This file is part of the Marabou project. - ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS - ** in the top-level source directory) and their institutional affiliations. - ** All rights reserved. See the file COPYING in the top-level source - ** directory for licensing information.\endverbatim - ** - ** [[ Add lengthier description here ]] - **/ - -#include "BoundExplainer.h" -#include "context/cdlist.h" -#include "context/context.h" -#include - -class BoundsExplainerTestSuite : public CxxTest::TestSuite -{ -public: - void setUp() - { - } - - void tearDown() - { - } - - /* - Test initialization of BoundExplainer - */ - void testInitialization() - { - unsigned numberOfVariables = 3, numberOfRows = 5; - BoundExplainer be(numberOfVariables, numberOfRows ); - - TS_ASSERT_EQUALS( be.getNumberOfRows(), numberOfRows ); - TS_ASSERT_EQUALS( be.getNumberOfVariables(), numberOfVariables ); - - for (unsigned i = 0; i < numberOfVariables; ++i ) - { - TS_ASSERT( be.getExplanation( i, true ).empty() ); - TS_ASSERT( be.getExplanation( i, false ).empty() ); - } - } - - /* - Test explanation injection - */ - void testExplanationInjection() - { - unsigned numberOfVariables = 2, numberOfRows = 2; - double value = -2.55; - BoundExplainer be( numberOfVariables, numberOfRows ); - - TS_ASSERT_THROWS_NOTHING( be.injectExplanation( Vector( numberOfVariables, value ), 0, true ) ); - auto explanation = be.getExplanation( 0, true ); - - for ( auto num : explanation ) - TS_ASSERT_EQUALS( num, value ); - } - - /* - Test addition of an explanation of the new variable, and correct updates of all previous explanations - */ - void testVariableAddition() - { - unsigned numberOfVariables = 2, numberOfRows = 2; - BoundExplainer be( numberOfVariables, numberOfRows ); - TS_ASSERT_THROWS_NOTHING( be.injectExplanation( Vector( numberOfVariables, 1 ), numberOfVariables - 1, true ) ); - TS_ASSERT_THROWS_NOTHING( be.injectExplanation( Vector( numberOfVariables, 5 ), numberOfVariables - 1, false ) ); - be.addVariable(); - - TS_ASSERT_EQUALS( be.getNumberOfRows(), numberOfRows + 1 ); - TS_ASSERT_EQUALS( be.getNumberOfVariables(), numberOfVariables + 1 ); - - for ( unsigned i = 0; i < numberOfVariables; ++ i) - { - TS_ASSERT(be.getExplanation( i, true ).empty() || ( be.getExplanation( i, true ).last() == 0 && be.getExplanation( i, true ).size() == numberOfVariables + 1 ) ); - TS_ASSERT(be.getExplanation( i, false ).empty() || ( be.getExplanation( i, false ).last() == 0 && be.getExplanation( i, false ).size() == numberOfVariables + 1 ) ); - } - - TS_ASSERT(be.getExplanation( numberOfVariables, true ).empty() ); - TS_ASSERT(be.getExplanation( numberOfVariables, false ).empty() ) ; - } - - /* - Test explanation reset - */ - void testExplanationReset() - { - unsigned numberOfVariables = 1, numberOfRows = 1; - BoundExplainer be( numberOfVariables, numberOfRows ); - - TS_ASSERT_THROWS_NOTHING( be.injectExplanation( Vector( numberOfRows, 1 ), 0, true ) ); - TS_ASSERT( !be.getExplanation( 0 , true ).empty() ); - - be.resetExplanation(0, true ); - TS_ASSERT( be.getExplanation( 0 , true ).empty() ); - } - - /* - Test main functionality of BoundExplainer i.e. updating explanations according to tableau rows - */ - void testExplanationUpdates() - { - unsigned numberOfVariables = 6, numberOfRows = 3; - BoundExplainer be( numberOfVariables, numberOfRows ); - Vector row1 { 1, 0, 0 }; - Vector row2 { 0, -1, 0 }; - Vector row3 { 0, 0, 2.5 }; - - TableauRow updateTableauRow( 6 ); - // row1 + row2 := x2 = x0 + 2 x1 - x3 + x4 - // Equivalently x3 = x0 + 2 x1 - x2 - x3 + x4 - // Equivalently x1 = -0.5 x0 + 0.5 x2 + 0.5 x3 - 0.5 x4 - // Rows coefficients are { -1, 1, 0 } - updateTableauRow._scalar = 0; - updateTableauRow._lhs = 2; - updateTableauRow._row[0] = TableauRow::Entry( 0, 1 ); - updateTableauRow._row[1] = TableauRow::Entry( 1, 2 ); - updateTableauRow._row[2] = TableauRow::Entry( 3, -1 ); - updateTableauRow._row[3] = TableauRow::Entry( 4, 1 ); - updateTableauRow._row[4] = TableauRow::Entry( 5, 0 ); - - TS_ASSERT_THROWS_NOTHING( be.injectExplanation( row1, 0, true ) ); - TS_ASSERT_THROWS_NOTHING( be.injectExplanation( row2, 1, true ) ); - TS_ASSERT_THROWS_NOTHING( be.injectExplanation( row3, 1, false ) ); // Will not be possible in an actual tableau - - be.updateBoundExplanation( updateTableauRow, true ); - // Result is { 1, 0, 0 } + 2 * { 0, -1, 0 } + { -1, 1, 0} - Vector res1 { 0, -1, 0 }; - TS_ASSERT_EQUALS( be.getExplanation( 2, true ), res1 ); - - be.updateBoundExplanation( updateTableauRow, false, 3 ); - // Result is 2 * { 0, 0, 2.5 } + { -1, 1, 0 } - Vector res2 { -1, 2, 5 }; - TS_ASSERT_EQUALS( be.getExplanation( 3, false ), res2 ); - - be.updateBoundExplanation( updateTableauRow, false, 1 ); - // Result is -0.5 * { 1, 0, 0 } + 0.5 * { -1, 2, 5 } - 0.5 * { -1, 1, 0 } - Vector res3 { -0.5, 0.5, 2.5 }; - TS_ASSERT_EQUALS( be.getExplanation( 1, false ), res3 ); - - // row3:= x1 = x5 - // Rows coefficients are { 0, 0, -2.5 } - SparseUnsortedList updateSparseRow( 0 ); - updateSparseRow.append( 1, -2.5 ); - updateSparseRow.append( 5, -2.5 ); - - be.updateBoundExplanationSparse( updateSparseRow, true, 5 ); - // Result is ( 1 / 2.5 ) * ( -2.5 ) * { -0.5, 0.5, 2.5 } + ( 1 / 2.5 ) * { 0, 0, -2.5 } - Vector res4 { 0.5, -0.5, -3.5 }; - TS_ASSERT_EQUALS( be.getExplanation( 5, true ), res4 ); - } -}; - -// -// Local Variables: -// compile-command: "make -C ../../.. " -// tags-file-name: "../../../TAGS" -// c-basic-offset: 4 -// End: From 36cf9b654e43d43d617bf090e4f74e82f65c08ea Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 6 Mar 2022 11:21:18 +0200 Subject: [PATCH 035/165] Delete Test_CertificateNode.h --- src/engine/tests/Test_CertificateNode.h | 200 ------------------------ 1 file changed, 200 deletions(-) delete mode 100644 src/engine/tests/Test_CertificateNode.h diff --git a/src/engine/tests/Test_CertificateNode.h b/src/engine/tests/Test_CertificateNode.h deleted file mode 100644 index a1ffa48f81..0000000000 --- a/src/engine/tests/Test_CertificateNode.h +++ /dev/null @@ -1,200 +0,0 @@ -/********************* */ -/*! \file BoundExplainer.h - ** \verbatim - ** This file is part of the Marabou project. - ** Copyright (c) 2017-2019 by the authors listed in the file AUTHORS - ** in the top-level source directory) and their institutional affiliations. - ** All rights reserved. See the file COPYING in the top-level source - ** directory for licensing information.\endverbatim - ** - ** [[ Add lengthier description here ]] - **/ - -#include "BoundExplainer.h" -#include "context/cdlist.h" -#include "context/context.h" -#include -#include "UNSATCertificate.h" - -class CertificateNodeTestSuite : public CxxTest::TestSuite -{ -public: - void setUp() - { - } - - void tearDown() - { - } - - /* - Tests a simple tree construction - */ - void testTreeRelations() - { - Vector row1 = { 1, 0, -1, 1, 0, 0 }; - Vector row2 = { 0, -1, 2, 0, 1, 0 }; - Vector row3 = { 0.5, 0, -1, 0, 0, 1 }; - Vector> initialTableau = {row1, row2, row3 }; - - Vector groundUpperBounds( 6, 1 ); - Vector groundLowerBounds( 6, 0 ); - - auto *root = new CertificateNode( &initialTableau, groundUpperBounds, groundLowerBounds ); - - ReluConstraint relu = ReluConstraint(1, 3); - auto splits = relu.getCaseSplits(); - TS_ASSERT_EQUALS( splits.size(), ( unsigned ) 2 ); - - PiecewiseLinearCaseSplit split1 = splits.back(); - PiecewiseLinearCaseSplit split2 = splits.front(); - - auto *child1 = new CertificateNode( root, split1 ); - auto *child2 = new CertificateNode( root, split2 ); - - TS_ASSERT_EQUALS( child1->getParent(), root ); - TS_ASSERT_EQUALS( child2->getParent(), root ); - - TS_ASSERT_EQUALS( root->getChildBySplit( split1 ), child1 ); - TS_ASSERT_EQUALS( root->getChildBySplit( split2 ), child2 ); - - TS_ASSERT_EQUALS( child1->getSplit(), split1 ); - TS_ASSERT_EQUALS( child2->getSplit(), split2 ); - - root->makeLeaf(); - - TS_ASSERT_EQUALS( root->getChildBySplit( split1 ), nullptr ); - TS_ASSERT_EQUALS( root->getChildBySplit( split2 ), nullptr ); - - delete root; - } - - /* - Tests methods that set and get the contradiction - */ - void testContradiction() - { - Vector> initialTableau = { Vector( 1,1 ) }; - Vector groundUpperBounds( 1, 1 ); - Vector groundLowerBounds( 1, 0 ); - - CertificateNode root = CertificateNode( &initialTableau, groundUpperBounds, groundLowerBounds ); - auto upperBoundExplanation = new double [1]; - upperBoundExplanation[0] = 1; - - auto lowerBoundExplanation = new double [1]; - lowerBoundExplanation[0] = -1; - - auto *contradiction = new Contradiction { 0, upperBoundExplanation, lowerBoundExplanation }; - root.setContradiction( contradiction ); - TS_ASSERT_EQUALS( root.getContradiction(), contradiction ); - } - - /* - Tests changes in PLC Explanations list - */ - void testPLCExplChanges() - { - Vector> initialTableau = { Vector( 1,1 ) }; - Vector groundUpperBounds( 1, 1 ); - Vector groundLowerBounds( 1, 0 ); - - CertificateNode root = CertificateNode( &initialTableau, groundUpperBounds, groundLowerBounds ); - - auto *explanation1 = new PLCExplanation { 1, 1, 0, true, true, NULL, RELU, 0 }; - auto *explanation2 = new PLCExplanation {1, 1, -1, true, true, NULL, RELU, 1 }; - auto *explanation3 = new PLCExplanation { 1, 1, -4, true, true, NULL, RELU, 2 }; - - TS_ASSERT( root.getPLCExplanations().empty() ); - - root.addPLCExplanation( explanation1 ); - root.addPLCExplanation( explanation2 ); - root.addPLCExplanation( explanation3 ); - TS_ASSERT_EQUALS( root.getPLCExplanations().size(), ( unsigned ) 3 ); - - root.removePLCExplanationsBelowDecisionLevel( 0 ); - TS_ASSERT_EQUALS( root.getPLCExplanations().size(), ( unsigned ) 2 ); - TS_ASSERT_EQUALS( root.getPLCExplanations().front(), explanation2 ); - TS_ASSERT_EQUALS( root.getPLCExplanations().back(), explanation3 ); - - root.resizePLCExplanationsList( 1 ); - TS_ASSERT_EQUALS( root.getPLCExplanations().size(), ( unsigned ) 1 ); - TS_ASSERT_EQUALS( root.getPLCExplanations().back(), explanation2 ); - - root.deletePLCExplanations(); - TS_ASSERT( root.getPLCExplanations().empty() ); - - // removePLCExplanationsBelowDecisionLevel doesn't delete by itself - delete explanation1; - } - - /* - Tests certification methods - */ - void testCertification() - { - Vector row1 = { 1, 0, -1, 0, 1, 0, 0 }; // Row of ReLU1 - Vector row2 = { 0, 1, 0, -1, 0, 1, 0 }; // Row of ReLU2 - Vector row3 = { 0.5, 0, -1, 0, 0, 0, 1 }; - Vector> initialTableau = { row1, row2, row3 }; - - Vector groundUpperBounds( row1.size(), 1 ); - Vector groundLowerBounds( row1.size(), 0 ); - groundUpperBounds[6] = 2; - - // Set a complete tree of depth 3, using 2 ReLUs - auto *root = new CertificateNode( &initialTableau, groundUpperBounds, groundLowerBounds ); - - ReluConstraint relu1 = ReluConstraint( 0, 2 ); // aux var is 4 - ReluConstraint relu2 = ReluConstraint( 1, 3) ; // aux var is 5 - - root->addProblemConstraint( RELU, { 0, 2, 4 }, PHASE_NOT_FIXED ); - root->addProblemConstraint( RELU, { 1, 3, 5 }, PHASE_NOT_FIXED ); - - auto splits1 = relu1.getCaseSplits(); - auto splits2 = relu2.getCaseSplits(); - TS_ASSERT_EQUALS( splits1.size(), ( unsigned ) 2 ); - TS_ASSERT_EQUALS( splits2.size(), ( unsigned ) 2 ); - - PiecewiseLinearCaseSplit split1_1 = splits1.back(); - PiecewiseLinearCaseSplit split1_2 = splits1.front(); - - PiecewiseLinearCaseSplit split2_1 = splits2.back(); - PiecewiseLinearCaseSplit split2_2 = splits2.front(); - - TS_ASSERT_EQUALS( split1_2.getBoundTightenings().size(), ( unsigned ) 2 ); - - auto *child1 = new CertificateNode( root, split1_1 ); // Child with missing aux tightening - auto *child2 = new CertificateNode( root, split1_2 ); - - auto *child2_1 = new CertificateNode( child2, split2_1 ); - auto *child2_2 = new CertificateNode( child2, split2_2 ); - - root->wasVisited(); - child2->wasVisited(); - child1->wasVisited(); - child2_1->wasVisited(); - - // Visited leaves have no contradiction, so certification will fail - TS_ASSERT( !root->certify() ); - - // Mark visited leaves with flags that immediately certify them - child1->hasSATSolution(); - child2_1->shouldDelegate( 0, DelegationStatus::DELEGATE_DONT_SAVE ); - TS_ASSERT( root->certify() ); - - // Visited leaf should be checked as well - // Certification should fail since child2_2 has no contradiction - child2_2->wasVisited(); - TS_ASSERT(!root->certify() ); - - delete root; - } -}; -// -// Local Variables: -// compile-command: "make -C ../../.. " -// tags-file-name: "../../../TAGS" -// c-basic-offset: 4 -// End: - From 719bcdf688545d60aa87b5dfea72e6cbdc847c92 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 6 Mar 2022 11:33:50 +0200 Subject: [PATCH 036/165] Create CMakeLists.txt --- proof_production/CMakeLists.txt | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 proof_production/CMakeLists.txt diff --git a/proof_production/CMakeLists.txt b/proof_production/CMakeLists.txt new file mode 100644 index 0000000000..390179f030 --- /dev/null +++ b/proof_production/CMakeLists.txt @@ -0,0 +1,24 @@ +file(GLOB SRCS "*.cpp") +file(GLOB HEADERS "*.h") + +target_sources(${MARABOU_LIB} PRIVATE ${SRCS}) +target_include_directories(${MARABOU_LIB} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") + +target_sources(${MARABOU_TEST_LIB} PRIVATE ${SRCS}) +target_include_directories(${MARABOU_TEST_LIB} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") + +set (PROOF_PRODUCTION_TESTS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/tests") +macro(proof_production_add_unit_test name) + set(USE_MOCK_COMMON TRUE) + set(USE_MOCK_ENGINE TRUE) + marabou_add_test(${PROOF_PRODUCTION_TESTS_DIR}/Test_${name} proof_production USE_MOCK_COMMON USE_MOCK_ENGINE "unit") +endmacro() + +proof_production_add_unit_test(BoundExplainer) +proof_production_add_unit_test(SmtLibWriter) +proof_production_add_unit_test(UnsatCertificateNode) +proof_production_add_unit_test(UnsatCertificateUtils) + +if (${BUILD_PYTHON}) + target_include_directories(${MARABOU_PY} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") +endif() From 6846a5c0b012e344562d7644552d633d44821de4 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 6 Mar 2022 11:34:08 +0200 Subject: [PATCH 037/165] Delete CMakeLists.txt --- proof_production/CMakeLists.txt | 24 ------------------------ 1 file changed, 24 deletions(-) delete mode 100644 proof_production/CMakeLists.txt diff --git a/proof_production/CMakeLists.txt b/proof_production/CMakeLists.txt deleted file mode 100644 index 390179f030..0000000000 --- a/proof_production/CMakeLists.txt +++ /dev/null @@ -1,24 +0,0 @@ -file(GLOB SRCS "*.cpp") -file(GLOB HEADERS "*.h") - -target_sources(${MARABOU_LIB} PRIVATE ${SRCS}) -target_include_directories(${MARABOU_LIB} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") - -target_sources(${MARABOU_TEST_LIB} PRIVATE ${SRCS}) -target_include_directories(${MARABOU_TEST_LIB} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") - -set (PROOF_PRODUCTION_TESTS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/tests") -macro(proof_production_add_unit_test name) - set(USE_MOCK_COMMON TRUE) - set(USE_MOCK_ENGINE TRUE) - marabou_add_test(${PROOF_PRODUCTION_TESTS_DIR}/Test_${name} proof_production USE_MOCK_COMMON USE_MOCK_ENGINE "unit") -endmacro() - -proof_production_add_unit_test(BoundExplainer) -proof_production_add_unit_test(SmtLibWriter) -proof_production_add_unit_test(UnsatCertificateNode) -proof_production_add_unit_test(UnsatCertificateUtils) - -if (${BUILD_PYTHON}) - target_include_directories(${MARABOU_PY} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") -endif() From 38c93bef3cc01fb2baf1219c391aeba8217d9956 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 6 Mar 2022 11:34:37 +0200 Subject: [PATCH 038/165] Create CMakeLists.txt --- src/proof_production/CMakeLists.txt | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/proof_production/CMakeLists.txt diff --git a/src/proof_production/CMakeLists.txt b/src/proof_production/CMakeLists.txt new file mode 100644 index 0000000000..390179f030 --- /dev/null +++ b/src/proof_production/CMakeLists.txt @@ -0,0 +1,24 @@ +file(GLOB SRCS "*.cpp") +file(GLOB HEADERS "*.h") + +target_sources(${MARABOU_LIB} PRIVATE ${SRCS}) +target_include_directories(${MARABOU_LIB} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") + +target_sources(${MARABOU_TEST_LIB} PRIVATE ${SRCS}) +target_include_directories(${MARABOU_TEST_LIB} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") + +set (PROOF_PRODUCTION_TESTS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/tests") +macro(proof_production_add_unit_test name) + set(USE_MOCK_COMMON TRUE) + set(USE_MOCK_ENGINE TRUE) + marabou_add_test(${PROOF_PRODUCTION_TESTS_DIR}/Test_${name} proof_production USE_MOCK_COMMON USE_MOCK_ENGINE "unit") +endmacro() + +proof_production_add_unit_test(BoundExplainer) +proof_production_add_unit_test(SmtLibWriter) +proof_production_add_unit_test(UnsatCertificateNode) +proof_production_add_unit_test(UnsatCertificateUtils) + +if (${BUILD_PYTHON}) + target_include_directories(${MARABOU_PY} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") +endif() From 2068f41f96f5525fbf662782bacfa4f782cd5360 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 6 Mar 2022 11:35:12 +0200 Subject: [PATCH 039/165] Add files via upload --- src/proof_production/BoundExplainer.cpp | 237 +++++++++ src/proof_production/BoundExplainer.h | 102 ++++ src/proof_production/Contradiction.cpp | 38 ++ src/proof_production/Contradiction.h | 35 ++ src/proof_production/PlcExplanation.cpp | 41 ++ src/proof_production/PlcExplanation.h | 50 ++ src/proof_production/SmtLibWriter.cpp | 91 ++++ src/proof_production/SmtLibWriter.h | 73 +++ src/proof_production/UnsatCertificateNode.cpp | 498 ++++++++++++++++++ src/proof_production/UnsatCertificateNode.h | 204 +++++++ .../UnsatCertificateProblemConstraint.h | 37 ++ .../UnsatCertificateUtils.cpp | 84 +++ src/proof_production/UnsatCertificateUtils.h | 40 ++ 13 files changed, 1530 insertions(+) create mode 100644 src/proof_production/BoundExplainer.cpp create mode 100644 src/proof_production/BoundExplainer.h create mode 100644 src/proof_production/Contradiction.cpp create mode 100644 src/proof_production/Contradiction.h create mode 100644 src/proof_production/PlcExplanation.cpp create mode 100644 src/proof_production/PlcExplanation.h create mode 100644 src/proof_production/SmtLibWriter.cpp create mode 100644 src/proof_production/SmtLibWriter.h create mode 100644 src/proof_production/UnsatCertificateNode.cpp create mode 100644 src/proof_production/UnsatCertificateNode.h create mode 100644 src/proof_production/UnsatCertificateProblemConstraint.h create mode 100644 src/proof_production/UnsatCertificateUtils.cpp create mode 100644 src/proof_production/UnsatCertificateUtils.h diff --git a/src/proof_production/BoundExplainer.cpp b/src/proof_production/BoundExplainer.cpp new file mode 100644 index 0000000000..32bb216021 --- /dev/null +++ b/src/proof_production/BoundExplainer.cpp @@ -0,0 +1,237 @@ +/********************* */ +/*! \file BoundExplainer.cpp + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#include "BoundExplainer.h" + +BoundExplainer::BoundExplainer( unsigned numberOfVariables, unsigned numberOfRows ) + : _numberOfVariables( numberOfVariables ) + , _numberOfRows( numberOfRows ) + , _upperBoundExplanations( _numberOfVariables, Vector( 0 ) ) + , _lowerBoundExplanations( _numberOfVariables, Vector( 0 ) ) +{ +} + +unsigned BoundExplainer::getNumberOfRows() const +{ + return _numberOfRows; +} + +unsigned BoundExplainer::getNumberOfVariables() const +{ + return _numberOfVariables; +} + +const Vector &BoundExplainer::getExplanation( unsigned var, bool isUpper ) +{ + ASSERT ( var < _numberOfVariables ); + return isUpper ? _upperBoundExplanations[var] : _lowerBoundExplanations[var]; +} + +void BoundExplainer::updateBoundExplanation( const TableauRow &row, bool isUpper ) +{ + if ( row._size == 0 ) + return; + + updateBoundExplanation( row, isUpper, row._lhs ); +} + +void BoundExplainer::updateBoundExplanation( const TableauRow &row, bool isUpper, unsigned var ) +{ + if ( row._size == 0 ) + return; + + ASSERT ( var < _numberOfVariables ); + double curCoefficient; + double ci = 0; + double realCoefficient; + bool tempUpper; + unsigned curVar; + + if ( var != row._lhs ) + { + for ( unsigned i = 0; i < row._size; ++i ) + { + if ( row._row[i]._var == var ) + { + ci = row._row[i]._coefficient; + break; + } + } + } + else + ci = -1; + + ASSERT( !FloatUtils::isZero( ci ) ); + Vector rowCoefficients = Vector( _numberOfRows, 0 ); + Vector sum = Vector( _numberOfRows, 0 ); + Vector tempBound; + + for ( unsigned i = 0; i < row._size; ++i ) + { + curVar = row._row[i]._var; + curCoefficient = row._row[i]._coefficient; + + // If the coefficient of the variable is zero then nothing to add to the sum, also skip var + if ( FloatUtils::isZero( curCoefficient ) || curVar == var ) + continue; + + realCoefficient = curCoefficient / -ci; + if ( FloatUtils::isZero( realCoefficient ) ) + continue; + + // If we're currently explaining an upper bound, we use upper bound explanation iff variable's coefficient is positive + // If we're currently explaining a lower bound, we use upper bound explanation iff variable's coefficient is negative + tempUpper = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ); + tempBound = tempUpper ? _upperBoundExplanations[curVar] : _lowerBoundExplanations[curVar]; + addVecTimesScalar( sum, tempBound, realCoefficient ); + } + + // Include lhs as well, if needed + if ( var != row._lhs ) + { + realCoefficient = 1 / ci; + if ( !FloatUtils::isZero( realCoefficient ) ) + { + tempUpper = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ); + tempBound = tempUpper ? _upperBoundExplanations[row._lhs] : _lowerBoundExplanations[row._lhs]; + addVecTimesScalar( sum, tempBound, realCoefficient ); + } + } + + // Update according to row coefficients + extractRowCoefficients( row, rowCoefficients, ci ); + addVecTimesScalar( sum, rowCoefficients, 1 ); + + injectExplanation( sum, var, isUpper ); +} + +void BoundExplainer::updateBoundExplanationSparse( const SparseUnsortedList &row, bool isUpper, unsigned var ) +{ + if ( row.empty() ) + return; + + ASSERT( var < _numberOfVariables ); + bool tempUpper; + double curCoefficient; + double ci = 0; + double realCoefficient; + + for ( const auto &entry : row ) + { + if ( entry._index == var ) + { + ci = entry._value; + break; + } + } + + ASSERT( !FloatUtils::isZero( ci ) ); + Vector rowCoefficients = Vector( _numberOfRows, 0 ); + Vector sum = Vector( _numberOfRows, 0 ); + Vector tempBound; + + for ( const auto &entry : row ) + { + curCoefficient = entry._value; + // If coefficient is zero then nothing to add to the sum, also skip var + if ( FloatUtils::isZero( curCoefficient ) || entry._index == var ) + continue; + + realCoefficient = curCoefficient / -ci; + if ( FloatUtils::isZero( realCoefficient ) ) + continue; + + // If we're currently explaining an upper bound, we use upper bound explanation iff variable's coefficient is positive + // If we're currently explaining a lower bound, we use upper bound explanation iff variable's coefficient is negative + tempUpper = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ); + tempBound = tempUpper ? _upperBoundExplanations[entry._index] : _lowerBoundExplanations[entry._index]; + addVecTimesScalar( sum, tempBound, realCoefficient ); + } + + // Update according to row coefficients + extractSparseRowCoefficients( row, rowCoefficients, ci ); + addVecTimesScalar( sum, rowCoefficients, 1 ); + + injectExplanation( sum, var, isUpper ); +} + +void BoundExplainer::addVecTimesScalar( Vector &sum, const Vector &input, double scalar ) const +{ + if ( input.empty() || FloatUtils::isZero( scalar ) ) + return; + + ASSERT( sum.size() == _numberOfRows && input.size() == _numberOfRows ); + + for (unsigned i = 0; i < _numberOfRows; ++i ) + sum[i] += scalar * input[i]; +} + +void BoundExplainer::extractRowCoefficients( const TableauRow &row, Vector &coefficients, double ci ) const +{ + ASSERT( coefficients.size() == _numberOfRows && row._size <= _numberOfVariables ); + + // The coefficients of the row m highest-indices vars are the coefficients of slack variables + for ( unsigned i = 0; i < row._size; ++i ) + { + if (row._row[i]._var >= _numberOfVariables - _numberOfRows && !FloatUtils::isZero(row._row[i]._coefficient ) ) + coefficients[row._row[i]._var - _numberOfVariables + _numberOfRows] = - row._row[i]._coefficient / ci; + } + + // If the lhs was part of original basis, its coefficient is 1 / ci + if (row._lhs >= _numberOfVariables - _numberOfRows ) + coefficients[row._lhs - _numberOfVariables + _numberOfRows] = 1 / ci; +} + + +void BoundExplainer::extractSparseRowCoefficients( const SparseUnsortedList &row, Vector &coefficients, double ci ) const +{ + ASSERT(coefficients.size() == _numberOfRows ); + + // The coefficients of the row m highest-indices vars are the coefficients of slack variables + for ( const auto &entry : row ) + { + if (entry._index >= _numberOfVariables - _numberOfRows && !FloatUtils::isZero( entry._value ) ) + coefficients[entry._index - _numberOfVariables + _numberOfRows] = - entry._value / ci; + } +} + +void BoundExplainer::addVariable() +{ + ++_numberOfRows; + ++_numberOfVariables; + _upperBoundExplanations.append( Vector( 0 ) ); + _lowerBoundExplanations.append( Vector( 0 ) ); + + for (unsigned i = 0; i < _numberOfVariables; ++i ) + { + if ( !_upperBoundExplanations[i].empty() ) + _upperBoundExplanations[i].append( 0 ); + + if ( !_lowerBoundExplanations[i].empty() ) + _lowerBoundExplanations[i].append( 0 ); + } +} + +void BoundExplainer::resetExplanation( unsigned var, bool isUpper ) +{ + ASSERT(var < _numberOfVariables ); + isUpper ? _upperBoundExplanations[var].clear() : _lowerBoundExplanations[var].clear(); +} + +void BoundExplainer::injectExplanation( const Vector &explanation, unsigned var, bool isUpper ) +{ + ASSERT(var < _numberOfVariables && (explanation.empty() || explanation.size() == _numberOfRows ) ); + Vector *temp = isUpper ? &_upperBoundExplanations[var] : &_lowerBoundExplanations[var]; + *temp = explanation; +} \ No newline at end of file diff --git a/src/proof_production/BoundExplainer.h b/src/proof_production/BoundExplainer.h new file mode 100644 index 0000000000..5739fc6e83 --- /dev/null +++ b/src/proof_production/BoundExplainer.h @@ -0,0 +1,102 @@ +/********************* */ +/*! \file BoundExplainer.h + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#ifndef __BoundsExplainer_h__ +#define __BoundsExplainer_h__ + +#include "SparseUnsortedList.h" +#include "TableauRow.h" +#include "Vector.h" + +/* + A class which encapsulates bounds explanations of all variables of a tableau +*/ +class BoundExplainer +{ +public: + BoundExplainer(unsigned numberOfVariables, unsigned numberOfRows ); + + /* + Returns the number of rows + */ + unsigned getNumberOfRows() const; + + /* + Returns the number of variables + */ + unsigned getNumberOfVariables() const; + + /* + Returns a bound explanation + */ + const Vector &getExplanation( unsigned var, bool isUpper ); + + /* + Given a row, updates the values of the bound explanations of its lhs according to the row + */ + void updateBoundExplanation( const TableauRow &row, bool isUpper ); + + /* + Given a row, updates the values of the bound explanations of a var according to the row + */ + void updateBoundExplanation( const TableauRow &row, bool isUpper, unsigned varIndex ); + + /* + Given a row as SparseUnsortedList, updates the values of the bound explanations of a var according to the row + */ + void updateBoundExplanationSparse( const SparseUnsortedList &row, bool isUpper, unsigned var ); + + /* + Adds a zero explanation at the end, and a zero entry to all explanations + */ + void addVariable(); + + /* + Resets an explanation (to be a zero vec, represented by an empty vec) + */ + void resetExplanation( unsigned var, bool isUpper ); + + /* + Updates an explanation, without necessarily using the recursive rule + */ + void injectExplanation( const Vector &explanation, unsigned var, bool isUpper ); + +private: + unsigned _numberOfVariables; + unsigned _numberOfRows; + Vector> _upperBoundExplanations; + Vector> _lowerBoundExplanations; + + /* + Adds a multiplication of an array by scalar to another array + */ + void addVecTimesScalar( Vector &sum, const Vector &input, double scalar ) const; + + /* + Upon receiving a row, extract coefficients of the original tableau's equations that create the row + Equivalently, extract the coefficients of the slack variables. + Assumption - the slack variables indices are always the last m. + All coefficients are divided by -ci, the coefficient of the explained var, for normalization. + */ + void extractRowCoefficients( const TableauRow &row, Vector &coefficients, double ci ) const; + + /* + Upon receiving a row given as a SparseUnsortedList, extract coefficients of the original tableau's equations that create the row + Equivalently, extract the coefficients of the slack variables. + Assumption - the slack variables indices are always the last m. + All coefficients are divided by -ci, the coefficient of the explained var, for normalization. + */ + void extractSparseRowCoefficients( const SparseUnsortedList &row, Vector &coefficients, double ci ) const; +}; +#endif // __BoundsExplainer_h__ \ No newline at end of file diff --git a/src/proof_production/Contradiction.cpp b/src/proof_production/Contradiction.cpp new file mode 100644 index 0000000000..af0cac2f62 --- /dev/null +++ b/src/proof_production/Contradiction.cpp @@ -0,0 +1,38 @@ +/********************* */ +/*! \file Contradiction.cpp + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#include +#include "Contradiction.h" + +Contradiction::Contradiction( unsigned var, double *upperBoundExplanation, double *lowerBoundExplanation ) + :_var( var ) + ,_upperBoundExplanation( upperBoundExplanation ) + ,_lowerBoundExplanation( lowerBoundExplanation ) +{ +} + +Contradiction::~Contradiction() +{ + if ( _upperBoundExplanation ) + { + delete [] _upperBoundExplanation; + _upperBoundExplanation = NULL; + } + + if ( _lowerBoundExplanation ) + { + delete [] _lowerBoundExplanation; + _lowerBoundExplanation = NULL; + } +} \ No newline at end of file diff --git a/src/proof_production/Contradiction.h b/src/proof_production/Contradiction.h new file mode 100644 index 0000000000..39146eaab4 --- /dev/null +++ b/src/proof_production/Contradiction.h @@ -0,0 +1,35 @@ +/********************* */ +/*! \file Contradiction.h + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#ifndef __Contradiction_h__ +#define __Contradiction_h__ + +/* + Contains all info relevant for a simple Marabou contradiction - i.e. explanations of contradicting bounds of a variable +*/ +class Contradiction +{ +public: + Contradiction( unsigned var, double *upperBoundExplanation, double *lowerBoundExplanation ); + ~Contradiction(); + +private: + unsigned _var; + double *_upperBoundExplanation; + double *_lowerBoundExplanation; + +friend class UnsatCertificateNode; +}; + +#endif //__Contradiction_h__ \ No newline at end of file diff --git a/src/proof_production/PlcExplanation.cpp b/src/proof_production/PlcExplanation.cpp new file mode 100644 index 0000000000..4f1ea2cae8 --- /dev/null +++ b/src/proof_production/PlcExplanation.cpp @@ -0,0 +1,41 @@ +/********************* */ +/*! \file PlcExplanation.cpp + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#include "PlcExplanation.h" + +PLCExplanation::PLCExplanation( unsigned causingVar, unsigned affectedVar, double bound, BoundType causingVarBound, BoundType affectedVarBound, double *explanation, PiecewiseLinearFunctionType constraintType, unsigned decisionLevel ) + :_causingVar( causingVar ) + ,_affectedVar( affectedVar ) + ,_bound( bound ) + ,_causingVarBound( causingVarBound ) + ,_affectedVarBound( affectedVarBound ) + ,_explanation( explanation ) + ,_constraintType( constraintType ) + ,_decisionLevel( decisionLevel ) +{ +} + +PLCExplanation::~PLCExplanation() +{ + if ( _explanation ) + { + delete [] _explanation; + _explanation = NULL; + } +} + +unsigned PLCExplanation::getDecisionLevel() +{ + return _decisionLevel; +} \ No newline at end of file diff --git a/src/proof_production/PlcExplanation.h b/src/proof_production/PlcExplanation.h new file mode 100644 index 0000000000..68876a3407 --- /dev/null +++ b/src/proof_production/PlcExplanation.h @@ -0,0 +1,50 @@ +/********************* */ +/*! \file PlcExplanation.h + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#ifndef __PlcExplanation_h__ +#define __PlcExplanation_h__ + +#include "PiecewiseLinearConstraint.h" + +enum BoundType : bool +{ + UPPER = true, + LOWER = false, +}; + +/* + Contains all necessary info of a ground bound update during a run (i.e from ReLU phase-fixing) +*/ +class PLCExplanation +{ +public: + PLCExplanation( unsigned causingVar, unsigned affectedVar, double bound, BoundType causingVarBound, BoundType affectedVarBound, double *explanation, PiecewiseLinearFunctionType constraintType, unsigned decisionLevel ); + ~PLCExplanation(); + + unsigned getDecisionLevel(); + +private: + unsigned _causingVar; + unsigned _affectedVar; + double _bound; + BoundType _causingVarBound; + BoundType _affectedVarBound; + double *_explanation; + PiecewiseLinearFunctionType _constraintType; + unsigned _decisionLevel; + +friend class UnsatCertificateNode; +}; + +#endif //__PlcExplanation_h__ \ No newline at end of file diff --git a/src/proof_production/SmtLibWriter.cpp b/src/proof_production/SmtLibWriter.cpp new file mode 100644 index 0000000000..b7a8580615 --- /dev/null +++ b/src/proof_production/SmtLibWriter.cpp @@ -0,0 +1,91 @@ +/********************* */ +/*! \file SmtLibWriter.cpp + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#include "SmtLibWriter.h" + +void SmtLibWriter::addHeader( unsigned numberOfVariables, List &instance ) +{ + instance.append( "( set-logic QF_LRA )\n" ); + for ( unsigned i = 0; i < numberOfVariables; ++i ) + instance.append( "( declare-fun x" + std::to_string( i ) + " () Real )\n" ); +} + +void SmtLibWriter::addFooter( List &instance ) +{ + instance.append( "( check-sat )\n" ); + instance.append( "( exit )\n" ); +} + +void SmtLibWriter::addReLUConstraint( unsigned b, unsigned f, const PhaseStatus status, List &instance ) +{ + if ( status == PHASE_NOT_FIXED ) + instance.append( "( assert ( = x" + std::to_string( f ) + " ( ite ( >= x" + std::to_string( b ) + " 0 ) x" + std::to_string( b )+ " 0 ) ) )\n" ); + else if ( status == RELU_PHASE_ACTIVE ) + instance.append( "( assert ( = x" + std::to_string( f ) + " x" + std::to_string( b ) + " ) )\n" ); + else if ( status == RELU_PHASE_INACTIVE ) + instance.append( "( assert ( = x" + std::to_string( f ) + " 0 ) )\n" ); +} + +void SmtLibWriter::addTableauRow( const Vector &row, List &instance ) +{ + unsigned size = row.size(); + unsigned counter = 0; + String assertRowLine = "( assert ( = 0"; + + for ( unsigned i = 0; i < size - 1; ++i ) + { + if ( FloatUtils::isZero( row[i] ) ) + continue; + + assertRowLine += String( " ( + ( * " ) + signedValue( row[i] ) + " x" + std::to_string( i ) + " )"; + ++counter; + } + + // Add last element + assertRowLine += String( " ( * " ) + signedValue( row[size - 1] ) + " x" + std::to_string( size - 1 ) + " )"; + + for ( unsigned i = 0; i < counter + 2 ; ++i ) + assertRowLine += String( " )" ); + + instance.append( assertRowLine + "\n" ); +} + +void SmtLibWriter::addGroundUpperBounds( Vector &bounds, List &instance ) +{ + unsigned n = bounds.size(); + for ( unsigned i = 0; i < n; ++i ) + instance.append( String( "( assert ( <= x" + std::to_string( i ) ) + String( " " ) + signedValue( bounds[i] ) + " ) )\n" ); +} + +void SmtLibWriter::addGroundLowerBounds( Vector &bounds, List &instance ) +{ + unsigned n = bounds.size(); + for ( unsigned i = 0; i < n; ++i ) + instance.append( String( "( assert ( >= x" + std::to_string( i ) ) + String( " " ) + signedValue( bounds[i] ) + " ) )\n" ); +} + +void SmtLibWriter::writeInstanceToFile( IFile &file, const List &instance ) +{ + file.open( File::MODE_WRITE_TRUNCATE ); + + for ( const String &s : instance ) + file.write( s ); + + file.close(); +} + +String SmtLibWriter::signedValue( double val ) +{ + return val > 0 ? std::to_string( val ) : "( - " + std::to_string( abs( val ) ) + " )"; +} \ No newline at end of file diff --git a/src/proof_production/SmtLibWriter.h b/src/proof_production/SmtLibWriter.h new file mode 100644 index 0000000000..da0321884a --- /dev/null +++ b/src/proof_production/SmtLibWriter.h @@ -0,0 +1,73 @@ +/********************* */ +/*! \file SmtLibWriter.h +** \verbatim +** Top contributors (to current version): +** Omri Isac, Guy Katz +** This file is part of the Marabou project. +** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS +** in the top-level source directory) and their institutional affiliations. +** All rights reserved. See the file COPYING in the top-level source +** directory for licensing information.\endverbatim +** +** [[ Add lengthier description here ]] +**/ + +#ifndef __SmtLibWriter_h__ +#define __SmtLibWriter_h__ + +#include "File.h" +#include "List.h" +#include "MString.h" +#include "PiecewiseLinearConstraint.h" +#include "SparseUnsortedList.h" +#include "Vector.h" + +/* +* A class responsible for writing instances of LP+PLC into SMTLIB format +*/ +class SmtLibWriter +{ +public: + /* + Adds a SMTLIB header to the SMTLIB instance with numberOfVariables variables + */ + static void addHeader( unsigned numberOfVariables, List &instance ); + + /* + Adds a SMTLIB footer to the SMTLIB instance + */ + static void addFooter( List &instance ); + + /* + Adds a line representing ReLU constraint, in SMTLIB format, to the SMTLIB instance + */ + static void addReLUConstraint( unsigned b, unsigned f, const PhaseStatus status, List &instance ); + + /* + Adds a line representing a Tableau Row, in SMTLIB format, to the SMTLIB instance + */ + static void addTableauRow( const Vector &row, List &instance ); + + /* + Adds lines representing the ground upper bounds, in SMTLIB format, to the SMTLIB instance + */ + static void addGroundUpperBounds( Vector &bounds, List &instance ); + + /* + Adds lines representing the ground lower bounds, in SMTLIB format, to the SMTLIB instance + */ + static void addGroundLowerBounds( Vector &bounds, List &instance ); + + /* + Writes an instances to a file + */ + static void writeInstanceToFile( IFile &file, const List &instance ); + +private: + /* + Returns a string representing the value of a double + */ + static String signedValue( double val ); +}; + +#endif //__SmtLibWriter_h__ \ No newline at end of file diff --git a/src/proof_production/UnsatCertificateNode.cpp b/src/proof_production/UnsatCertificateNode.cpp new file mode 100644 index 0000000000..127851324a --- /dev/null +++ b/src/proof_production/UnsatCertificateNode.cpp @@ -0,0 +1,498 @@ +/********************* */ +/*! \file UnsatCertificateNode.cpp + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#include +#include "UnsatCertificateNode.h" + + +UnsatCertificateNode::UnsatCertificateNode( Vector> *initialTableau, Vector &groundUpperBounds, Vector &groundLowerBounds ) + : _parent( NULL ) + , _contradiction( NULL ) + , _hasSATSolution( false ) + , _wasVisited( false ) + , _delegationStatus( DelegationStatus::DONT_DELEGATE ) + , _delegationNumber( 0 ) + , _initialTableau( initialTableau ) + , _groundUpperBounds( groundUpperBounds ) + , _groundLowerBounds( groundLowerBounds ) +{ +} + +UnsatCertificateNode::UnsatCertificateNode( UnsatCertificateNode *parent, PiecewiseLinearCaseSplit split ) + : _parent( parent ) + , _contradiction( NULL ) + , _headSplit( std::move( split ) ) + , _hasSATSolution( false ) + , _wasVisited( false ) + , _delegationStatus( DelegationStatus::DONT_DELEGATE ) + , _delegationNumber( 0 ) + , _initialTableau( NULL ) + , _groundUpperBounds( 0 ) + , _groundLowerBounds( 0 ) +{ + parent->_children.append( this ); +} + +UnsatCertificateNode::~UnsatCertificateNode() +{ + for ( auto *child : _children ) + { + if ( child ) + { + delete child; + child = NULL; + } + } + + _children.clear(); + deletePLCExplanations(); + + if ( _contradiction ) + { + delete _contradiction; + _contradiction = NULL; + } + + _parent = NULL; +} + +void UnsatCertificateNode::setContradiction( Contradiction *contradiction ) +{ + _contradiction = contradiction; +} + +Contradiction *UnsatCertificateNode::getContradiction() const +{ + return _contradiction; +} + +UnsatCertificateNode *UnsatCertificateNode::getParent() const +{ + return _parent; +} + +const PiecewiseLinearCaseSplit &UnsatCertificateNode::getSplit() const +{ + return _headSplit; +} + +const List> &UnsatCertificateNode::getPLCExplanations() const +{ + return _PLCExplanations; +} + +void UnsatCertificateNode::makeLeaf() +{ + for ( UnsatCertificateNode *child : _children ) + { + if ( child ) + { + // Clear reference to root tableau so it will not be deleted + child->_initialTableau = NULL; + delete child; + child = NULL; + } + } + + _children.clear(); +} + +void UnsatCertificateNode::passChangesToChildren( UnsatCertificateProblemConstraint *childrenSplitConstraint ) +{ + for ( auto *child : _children ) + { + child->copyGroundBounds( _groundUpperBounds, _groundLowerBounds ); + child->_initialTableau = _initialTableau; + + for ( auto &constraint : _problemConstraints ) + { + if ( &constraint != childrenSplitConstraint ) + child->addProblemConstraint( constraint._type, constraint._constraintVars, constraint._status ); + } + + // Add the constraint corresponding to head split with correct phase + if ( childrenSplitConstraint && childrenSplitConstraint->_type == PiecewiseLinearFunctionType::RELU ) + { + if ( child->_headSplit.getBoundTightenings().front()._type == Tightening::LB || child->_headSplit.getBoundTightenings().back()._type == Tightening::LB ) + child->addProblemConstraint( childrenSplitConstraint->_type, childrenSplitConstraint->_constraintVars, PhaseStatus::RELU_PHASE_ACTIVE ); + else + child->addProblemConstraint( childrenSplitConstraint->_type, childrenSplitConstraint->_constraintVars, PhaseStatus::RELU_PHASE_INACTIVE ); + } + } +} + +bool UnsatCertificateNode::certify() +{ + // Update ground bounds according to head split + for ( auto &tightening : _headSplit.getBoundTightenings() ) + { + auto &temp = tightening._type == Tightening::UB ? _groundUpperBounds : _groundLowerBounds; + temp[tightening._variable] = tightening._value; + } + + // Certify all PLC bound propagations + if ( !certifyAllPLCExplanations( UNSATCertificateUtils::CERTIFICATION_TOLERANCE ) ) + return false; + + // Save to file if marked + if ( _delegationStatus == DelegationStatus::DELEGATE_SAVE ) + writeLeafToFile(); + + // Skip if laf has the SAT solution, or if was marked to delegate + if ( _hasSATSolution || _delegationStatus != DelegationStatus::DONT_DELEGATE ) + return true; + + // Check if it is a leaf, and if so use contradiction to certify + // return true iff it is certified + if ( isValidLeaf() ) + return certifyContradiction(); + + // If not a valid leaf, skip only if it is leaf that was not visited + if ( !_wasVisited && !_contradiction && _children.empty() ) + return true; + + // Otherwise, should be a valid non-leaf node + if ( !isValidNonLeaf() ) + return false; + + // If so, certify all children and return true iff all children are certified + // Also make sure that they are split correctly (i.e by ReLU constraint or by a single var) + bool answer = true; + List childrenSplits; + + for ( auto &child : _children ) + childrenSplits.append( child->_headSplit ); + + auto *childrenSplitConstraint = getCorrespondingReLUConstraint( childrenSplits ); + if ( !certifySingleVarSplits( childrenSplits ) && !childrenSplitConstraint ) + return false; + + passChangesToChildren( childrenSplitConstraint ); + + for ( auto child : _children ) + if ( !child->certify() ) + answer = false; + + // After all subtree is checked, no use in these vectors. + _groundUpperBounds.clear(); + _groundLowerBounds.clear(); + return answer; +} + +bool UnsatCertificateNode::certifyContradiction() +{ + ASSERT( isValidLeaf() && !_hasSATSolution ); + unsigned var = _contradiction->_var; + unsigned length = _initialTableau->size(); + + auto upperBoundExplanation = Vector( 0, 0 ); + auto lowerBoundExplanation = Vector( 0, 0 ); + + if ( _contradiction->_upperBoundExplanation ) + { + upperBoundExplanation = Vector( length, 0 ); + std::copy( _contradiction->_upperBoundExplanation, _contradiction->_upperBoundExplanation + length, upperBoundExplanation.begin() ); + } + + if ( _contradiction->_lowerBoundExplanation ) + { + lowerBoundExplanation = Vector( length, 0 ); + std::copy( _contradiction->_lowerBoundExplanation, _contradiction->_lowerBoundExplanation + length, lowerBoundExplanation.begin() ); + } + + double computedUpper = explainBound( var, true, upperBoundExplanation ); + double computedLower = explainBound( var, false, lowerBoundExplanation ); + + return computedUpper < computedLower; +} + +double UnsatCertificateNode::explainBound( unsigned var, bool isUpper, Vector &explanation ) +{ + return UNSATCertificateUtils::computeBound( var, isUpper, explanation, *_initialTableau, _groundUpperBounds, _groundLowerBounds ); +} + +void UnsatCertificateNode::copyGroundBounds( Vector &groundUpperBounds, Vector &groundLowerBounds ) +{ + _groundUpperBounds = Vector( groundUpperBounds ); + _groundLowerBounds = Vector( groundLowerBounds ); +} + +bool UnsatCertificateNode::isValidLeaf() const +{ + return _contradiction && _children.empty(); +} + +bool UnsatCertificateNode::isValidNonLeaf() const +{ + return !_contradiction && !_children.empty(); +} + +void UnsatCertificateNode::addPLCExplanation( std::shared_ptr &explanation ) +{ + _PLCExplanations.append( explanation ); +} + +void UnsatCertificateNode::addProblemConstraint( PiecewiseLinearFunctionType type, List constraintVars, PhaseStatus status ) +{ + _problemConstraints.append( { type, constraintVars, status } ); +} + +UnsatCertificateProblemConstraint *UnsatCertificateNode::getCorrespondingReLUConstraint( const List &splits ) +{ + if ( splits.size() != 2 ) + return NULL; + + auto firstSplitTightenings = splits.front().getBoundTightenings(); + auto secondSplitTightenings = splits.back().getBoundTightenings(); + + // Find the LB tightening, its var is b + auto &activeSplit = firstSplitTightenings.front()._type == Tightening::LB ? firstSplitTightenings : secondSplitTightenings; + auto &inactiveSplit = firstSplitTightenings.front()._type == Tightening::LB ? secondSplitTightenings : firstSplitTightenings; + + unsigned b = activeSplit.front()._variable; + unsigned aux = activeSplit.back()._variable; + unsigned f = inactiveSplit.back()._variable; + + // Aux var may or may not be used + if ( ( activeSplit.size() != 2 && activeSplit.size() != 1 ) || inactiveSplit.size() != 2 ) + return NULL; + + if ( FloatUtils::areDisequal( inactiveSplit.back()._value, 0.0 ) || FloatUtils::areDisequal( inactiveSplit.front()._value, 0.0 ) || FloatUtils::areDisequal( activeSplit.back()._value, 0.0 ) || FloatUtils::areDisequal( activeSplit.front()._value, 0.0 ) ) + return NULL; + + // Certify that f = b + aux corresponds to a problem constraints + UnsatCertificateProblemConstraint *correspondingConstraint = NULL; + for ( UnsatCertificateProblemConstraint &constraint : _problemConstraints ) + { + if ( constraint._type == PiecewiseLinearFunctionType::RELU && constraint._constraintVars.front() == b && constraint._constraintVars.exists( f ) && ( activeSplit.size() == 1 || constraint._constraintVars.back() == aux ) ) + correspondingConstraint = &constraint; + } + + // Return the constraint for which f=relu(b) + return correspondingConstraint; +} + +bool UnsatCertificateNode::certifyAllPLCExplanations( double epsilon ) +{ + // Create copies of the gb, check for their validity, and pass these changes to all the children + // Assuming the splits of the children are ok. + // NOTE, this will change as PLCExplanation will + for ( const auto &explanation : _PLCExplanations ) + { + bool constraintMatched = false; + bool tighteningMatched = false; + unsigned length = _initialTableau->size(); + auto explanationVector = Vector( 0, 0 ); + + if ( explanation->_explanation ) + { + explanationVector = Vector( length, 0 ); + std::copy( explanation->_explanation, explanation->_explanation + length, explanationVector.begin() ); + } + + double explainedBound = UNSATCertificateUtils::computeBound( explanation->_causingVar, explanation->_causingVarBound == UPPER, explanationVector, *_initialTableau, _groundUpperBounds, _groundLowerBounds ); + unsigned b = 0; + unsigned f = 0; + unsigned aux = 0; + + // Make sure propagation was by a problem constraint + for ( UnsatCertificateProblemConstraint &constraint : _problemConstraints ) + { + if ( explanation->_constraintType == PiecewiseLinearFunctionType::RELU && constraint._constraintVars.exists(explanation->_affectedVar ) && constraint._constraintVars.exists(explanation->_causingVar ) ) + { + Vector conVec( constraint._constraintVars.begin(), constraint._constraintVars.end() ); + b = conVec[0]; + f = conVec[1]; + aux = conVec[2]; + constraintMatched = true; + + // If explanation is phase fixing, mark it + if ( ( explanation->_affectedVarBound == LOWER && explanation->_affectedVar == f && FloatUtils::isPositive(explanation->_bound ) ) || ( explanation->_affectedVarBound == UPPER && explanation->_affectedVar == aux && FloatUtils::isZero(explanation->_bound ) ) ) + constraint._status = PhaseStatus::RELU_PHASE_ACTIVE; + else if ( ( explanation->_affectedVarBound == LOWER && explanation->_affectedVar == aux && FloatUtils::isPositive(explanation->_bound ) ) || ( explanation->_affectedVarBound == UPPER && explanation->_affectedVar == f && FloatUtils::isZero(explanation->_bound ) ) ) + constraint._status = PhaseStatus::RELU_PHASE_INACTIVE; + } + } + + if ( !constraintMatched ) + return false; + + if ( explanation->_causingVar != b && explanation->_causingVar != f && explanation->_causingVar != aux ) + return false; + + // Make sure the explanation is explained using a ReLU bound tightening. Cases are matching each rule in ReluConstraint.cpp + // We allow explained bound to be tighter than the ones recorded (since an explanation can explain tighter bounds), and an epsilon sized error is tolerated. + + // If lb of b is non negative, then ub of aux is 0 + if ( explanation->_causingVar == b && explanation->_causingVarBound == LOWER && explanation->_affectedVar == aux && explanation->_affectedVarBound == UPPER && FloatUtils::isZero(explanation->_bound ) && !FloatUtils::isNegative(explainedBound + epsilon ) ) + tighteningMatched = true; + + // If lb of f is positive, then ub if aux is 0 + else if ( explanation->_causingVar == f && explanation->_causingVarBound == LOWER && explanation->_affectedVar == aux && explanation->_affectedVarBound == UPPER && FloatUtils::isZero(explanation->_bound ) && FloatUtils::isPositive(explainedBound + epsilon ) ) + tighteningMatched = true; + + // If lb of b is positive x, then lb of aux is -x + else if ( explanation->_causingVar == b && explanation->_causingVarBound == LOWER && explanation->_affectedVar == aux && explanation->_affectedVarBound == UPPER && FloatUtils::gte(explainedBound, - explanation->_bound - epsilon ) && explanation->_bound > 0 ) + tighteningMatched = true; + + // If lb of aux is positive, then ub of f is 0 + else if ( explanation->_causingVar == aux && explanation->_causingVarBound ==LOWER && explanation->_affectedVar == f && explanation->_affectedVarBound == UPPER && FloatUtils::isZero(explanation->_bound ) && FloatUtils::isPositive(explainedBound + epsilon ) ) + tighteningMatched = true; + + // If lb of f is negative, then it is 0 + else if ( explanation->_causingVar == f && explanation->_causingVarBound == LOWER && explanation->_affectedVar == f && explanation->_affectedVarBound == LOWER && FloatUtils::isZero(explanation->_bound ) && FloatUtils::isNegative(explainedBound - epsilon ) ) + tighteningMatched = true; + + // Propagate ub from f to b + else if ( explanation->_causingVar == f && explanation->_causingVarBound == UPPER && explanation->_affectedVar == b && explanation->_affectedVarBound == UPPER && FloatUtils::lte(explainedBound, explanation->_bound + epsilon ) ) + tighteningMatched = true; + + // If ub of b is non positive, then ub of f is 0 + else if ( explanation->_causingVar == b && explanation->_causingVarBound == UPPER && explanation->_affectedVar == f && explanation->_affectedVarBound == UPPER && FloatUtils::isZero(explanation->_bound ) && !FloatUtils::isPositive(explainedBound - epsilon ) ) + tighteningMatched = true; + + // If ub of b is non positive x, then lb of aux is -x + else if ( explanation->_causingVar == b && explanation->_causingVarBound == UPPER && explanation->_affectedVar == aux && explanation->_affectedVarBound == LOWER && explanation->_bound > 0 && !FloatUtils::isPositive(explainedBound - epsilon ) && FloatUtils::lte(explainedBound, -explanation->_bound + epsilon) ) + tighteningMatched = true; + + // If ub of b is positive, then propagate to f ( positivity of explained bound is not checked since negative explained ub can always explain positive bound ) + else if ( explanation->_causingVar == b && explanation->_causingVarBound == UPPER && explanation->_affectedVar == f && explanation->_affectedVarBound == UPPER && FloatUtils::isPositive(explanation->_bound ) && FloatUtils::lte(explainedBound, explanation->_bound + epsilon ) ) + tighteningMatched = true; + + // If ub of aux is x, then lb of b is -x + else if ( explanation->_causingVar == aux && explanation->_causingVarBound == UPPER && explanation->_affectedVar == b && explanation->_affectedVarBound == LOWER && FloatUtils::lte(explainedBound, -explanation->_bound + epsilon ) ) + tighteningMatched = true; + + if ( !tighteningMatched ) + return false; + + // If so, update the ground bounds and continue + Vector &temp = explanation->_affectedVarBound ? _groundUpperBounds : _groundLowerBounds; + bool isTighter = explanation->_affectedVarBound ? FloatUtils::lt( explanation->_bound, temp[explanation->_affectedVar] ) : FloatUtils::gt( explanation->_bound, temp[explanation->_affectedVar] ); + if ( isTighter ) + temp[explanation->_affectedVar] = explanation->_bound; + } + return true; +} + +/* + * Get a pointer to a child by a head split, or NULL if not found + */ +UnsatCertificateNode *UnsatCertificateNode::getChildBySplit( const PiecewiseLinearCaseSplit &split ) const +{ + for ( UnsatCertificateNode *child : _children ) + { + if ( child->_headSplit == split ) + return child; + } + + return NULL; +} + +void UnsatCertificateNode::setSATSolution() +{ + _hasSATSolution = true; +} + +void UnsatCertificateNode::setVisited() +{ + _wasVisited = true; +} + +void UnsatCertificateNode::shouldDelegate( unsigned delegationNumber, DelegationStatus delegationStatus ) +{ + ASSERT( delegationStatus != DelegationStatus::DONT_DELEGATE ); + _delegationStatus = delegationStatus; + _delegationNumber = delegationNumber; +} + +bool UnsatCertificateNode::certifySingleVarSplits( const List &splits ) const +{ + if ( splits.size() != 2 ) + return false; + + // These are singletons to tightenings + auto &frontSplitTightenings = splits.front().getBoundTightenings(); + auto &backSplitTightenings = splits.back().getBoundTightenings(); + + if ( frontSplitTightenings.size() != 1 || backSplitTightenings.size() != 1 ) + return false; + + // These are the elements in the singletons + auto &frontSplitOnlyTightening = frontSplitTightenings.front(); + auto &backSplitOnlyTightening = backSplitTightenings.front(); + + // Check that cases are of the same var and bound, where the for one the bound is UB, and for the other is LB + if ( frontSplitOnlyTightening._variable != backSplitOnlyTightening._variable ) + return false; + + if ( FloatUtils::areDisequal( frontSplitOnlyTightening._value, backSplitOnlyTightening._value ) ) + return false; + + if ( frontSplitOnlyTightening._type == backSplitOnlyTightening._type ) + return false; + + return true; +} + +void UnsatCertificateNode::deletePLCExplanations() +{ + _PLCExplanations.clear(); +} + +/* + * Removes all PLC explanations from a certain point + */ +void UnsatCertificateNode::setPLCExplanations( const List> &explanations ) +{ + _PLCExplanations.clear(); + _PLCExplanations = explanations; +} + +void UnsatCertificateNode::writeLeafToFile() +{ + ASSERT( _children.empty() && _delegationStatus == DelegationStatus::DELEGATE_SAVE ); + List leafInstance; + + // Write with SmtLibWriter + unsigned b, f; + unsigned m = _initialTableau->size(); + unsigned n = _groundUpperBounds.size(); + + SmtLibWriter::addHeader( n, leafInstance ); + SmtLibWriter::addGroundUpperBounds( _groundUpperBounds, leafInstance ); + SmtLibWriter::addGroundLowerBounds( _groundLowerBounds, leafInstance ); + + for ( unsigned i = 0; i < m; ++i ) + SmtLibWriter::addTableauRow( ( *_initialTableau )[i], leafInstance ); + + for ( auto &constraint : _problemConstraints ) + if ( constraint._type == PiecewiseLinearFunctionType::RELU ) + { + auto vars = constraint._constraintVars; + b = vars.front(); + vars.popBack(); + f = vars.back(); + SmtLibWriter::addReLUConstraint( b, f, constraint._status, leafInstance ); + } + + SmtLibWriter::addFooter( leafInstance ); + File file ( "delegated" + std::to_string( _delegationNumber ) + ".smtlib" ); + SmtLibWriter::writeInstanceToFile( file, leafInstance ); +} + +void UnsatCertificateNode::removePLCExplanationsBelowDecisionLevel( unsigned decisionLevel ) +{ + _PLCExplanations.removeIf( [decisionLevel] ( std::shared_ptr &explanation ){ return explanation->_decisionLevel <= decisionLevel; } ); +} \ No newline at end of file diff --git a/src/proof_production/UnsatCertificateNode.h b/src/proof_production/UnsatCertificateNode.h new file mode 100644 index 0000000000..28944c57c6 --- /dev/null +++ b/src/proof_production/UnsatCertificateNode.h @@ -0,0 +1,204 @@ +/********************* */ +/*! \file UnsatCertificateNode.h + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#ifndef __UnsatCertificateNode_h__ +#define __UnsatCertificateNode_h__ + +#include "BoundExplainer.h" +#include "Contradiction.h" +#include "UnsatCertificateProblemConstraint.h" +#include "SmtLibWriter.h" +#include "PiecewiseLinearFunctionType.h" +#include "PlcExplanation.h" +#include "ReluConstraint.h" +#include "UnsatCertificateUtils.h" + +enum DelegationStatus : unsigned +{ + DONT_DELEGATE = 0, + DELEGATE_DONT_SAVE = 1, + DELEGATE_SAVE = 2 +}; + +/* + A certificate node in the tree representing the UNSAT certificate +*/ +class UnsatCertificateNode +{ +public: + /* + Constructor for the root + */ + UnsatCertificateNode( Vector> *_initialTableau, Vector &groundUpperBounds, Vector &groundLowerBounds ); + + /* + Constructor for a regular node + */ + UnsatCertificateNode( UnsatCertificateNode *parent, PiecewiseLinearCaseSplit split ); + + ~UnsatCertificateNode(); + + /* + Certifies the tree is indeed a correct proof of unsatisfiability; + */ + bool certify(); + + /* + Sets the leaf contradiction certificate as input + */ + void setContradiction( Contradiction *certificate ); + + /* + Returns the leaf contradiction certificate of the node + */ + Contradiction *getContradiction() const; + + /* + Returns the parent of a node + */ + UnsatCertificateNode *getParent() const; + + /* + Returns the head split of a node + */ + const PiecewiseLinearCaseSplit &getSplit() const; + + /* + Returns the list of PLC explanations of the node + */ + const List> &getPLCExplanations() const; + + /* + Sets the list of PLC explanations of the node + */ + void setPLCExplanations( const List> &explanations ); + + /* + Adds an PLC explanation to the list + */ + void addPLCExplanation( std::shared_ptr &explanation ); + + /* + Adds an a problem constraint to the list + */ + void addProblemConstraint( PiecewiseLinearFunctionType type, List constraintVars, PhaseStatus status ); + + /* + Returns a pointer to a child by a head split, or NULL if not found + */ + UnsatCertificateNode *getChildBySplit( const PiecewiseLinearCaseSplit &split ) const; + + /* + Sets value of _hasSATSolution to be true + */ + void setSATSolution(); + + /* + Sets value of _wasVisited to be true + */ + void setVisited(); + + /* + Sets value of _shouldDelegate to be true + Saves delegation to file iff saveToFile is true + */ + void shouldDelegate( unsigned delegationNumber, DelegationStatus saveToFile ); + + /* + Removes all PLC explanations + */ + void deletePLCExplanations(); + + /* + Deletes all offsprings of the node and makes it a leaf + */ + void makeLeaf(); + + /* + Removes all PLCExplanations above a certain decision level WITHOUT deleting them + */ + void removePLCExplanationsBelowDecisionLevel( unsigned decisionLevel ); + +private: + List _children; + List _problemConstraints; + UnsatCertificateNode *_parent; + List> _PLCExplanations; + Contradiction *_contradiction; + PiecewiseLinearCaseSplit _headSplit; + + // Enables certifying correctness of UNSAT leaves in SAT queries + bool _hasSATSolution; + bool _wasVisited; + + DelegationStatus _delegationStatus; + unsigned _delegationNumber; + + Vector> *_initialTableau; + Vector _groundUpperBounds; + Vector _groundLowerBounds; + + /* + Copies initial tableau and ground bounds + */ + void copyGroundBounds( Vector &groundUpperBounds, Vector &groundLowerBounds ); + + /* + Inherits the initialTableau pointer, the ground bounds and the problem constraint from parent, if exists. + Fixes the phase of the constraint that corresponds to the head split + */ + void passChangesToChildren( UnsatCertificateProblemConstraint *childrenSplitConstraint ); + + /* + Checks if the node is a valid leaf + */ + bool isValidLeaf() const; + + /* + Checks if the node is a valid none-leaf + */ + bool isValidNonLeaf() const; + + /* + Write a leaf marked to delegate to a smtlib file format + */ + void writeLeafToFile(); + + /* + Return true iff a list of splits represents a splits over a single variable + */ + bool certifySingleVarSplits( const List &splits ) const; + + /* + Return true iff the changes in the ground bounds are certified, with tolerance to errors with at most size epsilon + */ + bool certifyAllPLCExplanations( double epsilon ); + + /* + Return a pointer to the problem constraint representing the split + */ + UnsatCertificateProblemConstraint *getCorrespondingReLUConstraint( const List &splits ); + + /* + Certifies a contradiction + */ + bool certifyContradiction(); + + /* + Computes a bound according to an explanation + */ + double explainBound( unsigned var, bool isUpper, Vector &explanation ); +}; + +#endif //__UnsatCertificateNode_h__ \ No newline at end of file diff --git a/src/proof_production/UnsatCertificateProblemConstraint.h b/src/proof_production/UnsatCertificateProblemConstraint.h new file mode 100644 index 0000000000..a131cd05b8 --- /dev/null +++ b/src/proof_production/UnsatCertificateProblemConstraint.h @@ -0,0 +1,37 @@ +/********************* */ +/*! \file UnsatCertificateProblemConstraint.h + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#ifndef __CertificateProblemConstraint_h__ +#define __CertificateProblemConstraint_h__ + +#include "PiecewiseLinearConstraint.h" + +/* + A representation of a problem constraint, smaller than a PiecewiseLinearConstraint instance +*/ +struct UnsatCertificateProblemConstraint +{ + PiecewiseLinearFunctionType _type; + List _constraintVars; + PhaseStatus _status; + + inline bool operator==( const UnsatCertificateProblemConstraint &other ) const + { + return _type == other._type && _constraintVars == other._constraintVars; + } + +friend class UnsatCertificateNode; +}; + +#endif //__CertificateProblemConstraint_h__ \ No newline at end of file diff --git a/src/proof_production/UnsatCertificateUtils.cpp b/src/proof_production/UnsatCertificateUtils.cpp new file mode 100644 index 0000000000..8c2bd637c3 --- /dev/null +++ b/src/proof_production/UnsatCertificateUtils.cpp @@ -0,0 +1,84 @@ +/********************* */ +/*! \file UnsatCertificateUtils.cpp + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#include "UnsatCertificateUtils.h" + +double UNSATCertificateUtils::computeBound( unsigned var, bool isUpper, const Vector &explanation, + const Vector> &initialTableau, const Vector &groundUpperBounds, const Vector &groundLowerBounds ) +{ + ASSERT( groundLowerBounds.size() == groundUpperBounds.size() ); + ASSERT( initialTableau.size() == explanation.size() || explanation.empty() ); + ASSERT( groundLowerBounds.size() == initialTableau[0].size() ); + ASSERT( groundLowerBounds.size() == initialTableau[initialTableau.size() - 1 ].size() ); + ASSERT( var < groundUpperBounds.size() ); + + double derivedBound = 0; + double temp; + unsigned n = groundUpperBounds.size(); + + if ( explanation.empty() ) + return isUpper ? groundUpperBounds[var] : groundLowerBounds[var]; + + // Create linear combination of original rows implied from explanation + Vector explanationRowsCombination; + UNSATCertificateUtils::getExplanationRowCombination( var, explanationRowsCombination, explanation, initialTableau ); + + // Set the bound derived from the linear combination, using original bounds. + for ( unsigned i = 0; i < n; ++i ) + { + temp = explanationRowsCombination[i]; + if ( !FloatUtils::isZero( temp ) ) + { + if ( isUpper ) + temp *= FloatUtils::isPositive( explanationRowsCombination[i] ) ? groundUpperBounds[i] : groundLowerBounds[i]; + else + temp *= FloatUtils::isPositive( explanationRowsCombination[i] ) ? groundLowerBounds[i] : groundUpperBounds[i]; + + if ( !FloatUtils::isZero( temp ) ) + derivedBound += temp; + } + } + + return derivedBound; +} + +void UNSATCertificateUtils::getExplanationRowCombination( unsigned var, Vector &explanationRowCombination, const Vector &explanation, + const Vector> &initialTableau ) +{ + ASSERT( explanation.size() == initialTableau.size() ); + + explanationRowCombination = Vector( initialTableau[0].size(), 0 ); + unsigned n = initialTableau[0].size(); + unsigned m = explanation.size(); + for ( unsigned i = 0; i < m; ++i ) + { + for ( unsigned j = 0; j < n; ++j ) + { + if ( !FloatUtils::isZero( initialTableau[i][j] ) && !FloatUtils::isZero( explanation[i] ) ) + explanationRowCombination[j] += initialTableau[i][j] * explanation[i]; + } + } + + for ( unsigned i = 0; i < n; ++i ) + { + if ( !FloatUtils::isZero( explanationRowCombination[i] ) ) + explanationRowCombination[i] *= -1; + else + explanationRowCombination[i] = 0; + } + + // Since: 0 = Sum (ci * xi) + c * var = Sum (ci * xi) + (c - 1) * var + var + // We have: var = - Sum (ci * xi) - (c - 1) * var + ++explanationRowCombination[var]; +} \ No newline at end of file diff --git a/src/proof_production/UnsatCertificateUtils.h b/src/proof_production/UnsatCertificateUtils.h new file mode 100644 index 0000000000..b4492028f1 --- /dev/null +++ b/src/proof_production/UnsatCertificateUtils.h @@ -0,0 +1,40 @@ +/********************* */ +/*! \file UnsatCertificateUtils.h + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#ifndef __UnsatCertificateUtils_h__ +#define __UnsatCertificateUtils_h__ + +#include "FloatUtils.h" +#include "Vector.h" + +class UNSATCertificateUtils +{ +public: + constexpr static const double CERTIFICATION_TOLERANCE = 0.0025; + + /* + Use explanation to compute a bound (aka explained bound) + Given a variable, an explanation, initial tableau and ground bounds. + */ + static double computeBound( unsigned var, bool isUpper, const Vector &explanation, + const Vector> &initialTableau, const Vector &groundUpperBounds, const Vector &groundLowerBounds ); + + /* + Given a var, a tableau and a column vector, create a linear combination used to explain a bound + */ + static void getExplanationRowCombination( unsigned var, Vector &explanationRowCombination, const Vector &explanation, + const Vector> &initialTableau ); +}; + +#endif //__UnsatCertificateUtils_h__ \ No newline at end of file From 5684771de795d4d20b83302e2831aa7c5c9a3923 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 6 Mar 2022 11:36:13 +0200 Subject: [PATCH 040/165] Create Test_BoundExplainer.h --- .../tests/Test_BoundExplainer.h | 156 ++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 src/proof_production/tests/Test_BoundExplainer.h diff --git a/src/proof_production/tests/Test_BoundExplainer.h b/src/proof_production/tests/Test_BoundExplainer.h new file mode 100644 index 0000000000..fa55556648 --- /dev/null +++ b/src/proof_production/tests/Test_BoundExplainer.h @@ -0,0 +1,156 @@ +/********************* */ +/*! \file Test_BoundExplainer.h + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#include "BoundExplainer.h" +#include "context/cdlist.h" +#include "context/context.h" +#include + +class BoundsExplainerTestSuite : public CxxTest::TestSuite +{ +public: + /* + Test initialization of BoundExplainer + */ + void testInitialization() + { + unsigned numberOfVariables = 3; + unsigned numberOfRows = 5; + BoundExplainer be( numberOfVariables, numberOfRows ); + + TS_ASSERT_EQUALS( be.getNumberOfRows(), numberOfRows ); + TS_ASSERT_EQUALS( be.getNumberOfVariables(), numberOfVariables ); + + for ( unsigned i = 0; i < numberOfVariables; ++i ) + { + TS_ASSERT( be.getExplanation( i, true ).empty() ); + TS_ASSERT( be.getExplanation( i, false ).empty() ); + } + } + + /* + Test explanation injection + */ + void testExplanationInjection() + { + unsigned numberOfVariables = 2; + unsigned numberOfRows = 2; + double value = -2.55; + BoundExplainer be( numberOfVariables, numberOfRows ); + + TS_ASSERT_THROWS_NOTHING( be.injectExplanation( Vector( numberOfVariables, value ), 0, true ) ); + auto explanation = be.getExplanation( 0, true ); + + for ( auto num : explanation ) + TS_ASSERT_EQUALS( num, value ); + } + + /* + Test addition of an explanation of the new variable, and correct updates of all previous explanations + */ + void testVariableAddition() + { + unsigned numberOfVariables = 2; + unsigned numberOfRows = 2; + BoundExplainer be( numberOfVariables, numberOfRows ); + + TS_ASSERT_THROWS_NOTHING( be.injectExplanation( Vector( numberOfVariables, 1 ), numberOfVariables - 1, true ) ); + TS_ASSERT_THROWS_NOTHING( be.injectExplanation( Vector( numberOfVariables, 5 ), numberOfVariables - 1, false ) ); + be.addVariable(); + + TS_ASSERT_EQUALS( be.getNumberOfRows(), numberOfRows + 1 ); + TS_ASSERT_EQUALS( be.getNumberOfVariables(), numberOfVariables + 1 ); + + for ( unsigned i = 0; i < numberOfVariables; ++ i ) + { + TS_ASSERT( be.getExplanation( i, true ).empty() || ( be.getExplanation( i, true ).last() == 0 && be.getExplanation( i, true ).size() == numberOfVariables + 1 ) ); + TS_ASSERT( be.getExplanation( i, false ).empty() || ( be.getExplanation( i, false ).last() == 0 && be.getExplanation( i, false ).size() == numberOfVariables + 1 ) ); + } + + TS_ASSERT( be.getExplanation( numberOfVariables, true ).empty() ); + TS_ASSERT( be.getExplanation( numberOfVariables, false ).empty() ) ; + } + + /* + Test explanation reset + */ + void testExplanationReset() + { + unsigned numberOfVariables = 1; + unsigned numberOfRows = 1; + BoundExplainer be( numberOfVariables, numberOfRows ); + + TS_ASSERT_THROWS_NOTHING( be.injectExplanation( Vector( numberOfRows, 1 ), 0, true ) ); + TS_ASSERT( !be.getExplanation( 0 , true ).empty() ); + + be.resetExplanation( 0, true ); + TS_ASSERT( be.getExplanation( 0 , true ).empty() ); + } + + /* + Test main functionality of BoundExplainer i.e. updating explanations according to tableau rows + */ + void testExplanationUpdates() + { + unsigned numberOfVariables = 6; + unsigned numberOfRows = 3; + BoundExplainer be( numberOfVariables, numberOfRows ); + Vector row1 { 1, 0, 0 }; + Vector row2 { 0, -1, 0 }; + Vector row3 { 0, 0, 2.5 }; + + TableauRow updateTableauRow( 6 ); + // row1 + row2 := x2 = x0 + 2 x1 - x3 + x4 + // Equivalently x3 = x0 + 2 x1 - x2 - x3 + x4 + // Equivalently x1 = -0.5 x0 + 0.5 x2 + 0.5 x3 - 0.5 x4 + // Rows coefficients are { -1, 1, 0 } + updateTableauRow._scalar = 0; + updateTableauRow._lhs = 2; + updateTableauRow._row[0] = TableauRow::Entry( 0, 1 ); + updateTableauRow._row[1] = TableauRow::Entry( 1, 2 ); + updateTableauRow._row[2] = TableauRow::Entry( 3, -1 ); + updateTableauRow._row[3] = TableauRow::Entry( 4, 1 ); + updateTableauRow._row[4] = TableauRow::Entry( 5, 0 ); + + TS_ASSERT_THROWS_NOTHING( be.injectExplanation( row1, 0, true ) ); + TS_ASSERT_THROWS_NOTHING( be.injectExplanation( row2, 1, true ) ); + TS_ASSERT_THROWS_NOTHING( be.injectExplanation( row3, 1, false ) ); // Will not be possible in an actual tableau + + be.updateBoundExplanation( updateTableauRow, true ); + // Result is { 1, 0, 0 } + 2 * { 0, -1, 0 } + { -1, 1, 0} + Vector res1 { 0, -1, 0 }; + TS_ASSERT_EQUALS( be.getExplanation( 2, true ), res1 ); + + be.updateBoundExplanation( updateTableauRow, false, 3 ); + // Result is 2 * { 0, 0, 2.5 } + { -1, 1, 0 } + Vector res2 { -1, 2, 5 }; + TS_ASSERT_EQUALS( be.getExplanation( 3, false ), res2 ); + + be.updateBoundExplanation( updateTableauRow, false, 1 ); + // Result is -0.5 * { 1, 0, 0 } + 0.5 * { -1, 2, 5 } - 0.5 * { -1, 1, 0 } + Vector res3 { -0.5, 0.5, 2.5 }; + TS_ASSERT_EQUALS( be.getExplanation( 1, false ), res3 ); + + // row3:= x1 = x5 + // Rows coefficients are { 0, 0, -2.5 } + SparseUnsortedList updateSparseRow( 0 ); + updateSparseRow.append( 1, -2.5 ); + updateSparseRow.append( 5, -2.5 ); + + be.updateBoundExplanationSparse( updateSparseRow, true, 5 ); + // Result is ( 1 / 2.5 ) * ( -2.5 ) * { -0.5, 0.5, 2.5 } + ( 1 / 2.5 ) * { 0, 0, -2.5 } + Vector res4 { 0.5, -0.5, -3.5 }; + TS_ASSERT_EQUALS( be.getExplanation( 5, true ), res4 ); + } +}; From 70066455392b67e2e8734d3a8ab841ee410a1fbc Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 6 Mar 2022 11:36:39 +0200 Subject: [PATCH 041/165] Add files via upload --- .../tests/Test_SmtLibWriter.h | 94 +++++++++ .../tests/Test_UnsatCertificateNode.h | 185 ++++++++++++++++++ .../tests/Test_UnsatCertificateUtils.h | 60 ++++++ 3 files changed, 339 insertions(+) create mode 100644 src/proof_production/tests/Test_SmtLibWriter.h create mode 100644 src/proof_production/tests/Test_UnsatCertificateNode.h create mode 100644 src/proof_production/tests/Test_UnsatCertificateUtils.h diff --git a/src/proof_production/tests/Test_SmtLibWriter.h b/src/proof_production/tests/Test_SmtLibWriter.h new file mode 100644 index 0000000000..686f3032c6 --- /dev/null +++ b/src/proof_production/tests/Test_SmtLibWriter.h @@ -0,0 +1,94 @@ +/********************* */ +/*! \file Test_SmtLibWriter.h + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#include "SmtLibWriter.h" +#include "context/cdlist.h" +#include "context/context.h" +#include +#include "MockFile.h" + +class SmtLibWriterTestSuite : public CxxTest::TestSuite +{ +public: + MockFile* file; + + /* + Tests the whole functionality of the SmtLibWriter module + */ + void testSmtLibWritting() + { + file = new MockFile(); + Vector row = { 1, 1 }; + Vector> initialTableau = { row }; + Vector groundUpperBounds = { 1, 1 }; + Vector groundLowerBounds = { 1 , -1 }; + List instance; + + SmtLibWriter::addHeader( 2, instance ); + SmtLibWriter::addGroundUpperBounds( groundUpperBounds, instance ); + SmtLibWriter::addGroundLowerBounds( groundLowerBounds, instance ); + SmtLibWriter::addTableauRow( initialTableau[0], instance ); + SmtLibWriter::addReLUConstraint( 0, 1, PHASE_NOT_FIXED, instance ); + SmtLibWriter::addFooter( instance ); + + SmtLibWriter::writeInstanceToFile( *file, instance ); + + String line; + String expectedLine; + + line = file->readLine( '\n' ); + expectedLine = "( set-logic QF_LRA )"; + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = "( declare-fun x0 () Real )"; + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = "( declare-fun x1 () Real )"; + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = "( assert ( <= x0 1.000000 ) )"; + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = "( assert ( <= x1 1.000000 ) )"; + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = "( assert ( >= x0 1.000000 ) )"; + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = "( assert ( >= x1 ( - 1.000000 ) ) )"; + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = "( assert ( = 0 ( + ( * 1.000000 x0 ) ( * 1.000000 x1 ))))"; + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = "( assert ( = x1 ( ite ( >= x0 0 ) x0 0 ) ) )"; + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = "( check-sat )"; + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = "( exit )"; + TS_ASSERT_EQUALS( line, expectedLine ); + } +}; \ No newline at end of file diff --git a/src/proof_production/tests/Test_UnsatCertificateNode.h b/src/proof_production/tests/Test_UnsatCertificateNode.h new file mode 100644 index 0000000000..25797c15c4 --- /dev/null +++ b/src/proof_production/tests/Test_UnsatCertificateNode.h @@ -0,0 +1,185 @@ +/********************* */ +/*! \file Test_UnsatCertificateNode.h + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#include "BoundExplainer.h" +#include "context/cdlist.h" +#include "context/context.h" +#include +#include "UnsatCertificateNode.h" + +class UnsatCertificateNodeTestSuite : public CxxTest::TestSuite +{ +public: + /* + Tests a simple tree construction + */ + void testTreeRelations() + { + Vector row1 = { 1, 0, -1, 1, 0, 0 }; + Vector row2 = { 0, -1, 2, 0, 1, 0 }; + Vector row3 = { 0.5, 0, -1, 0, 0, 1 }; + Vector> initialTableau = { row1, row2, row3 }; + + Vector groundUpperBounds( 6, 1 ); + Vector groundLowerBounds( 6, 0 ); + + auto *root = new UnsatCertificateNode(&initialTableau, groundUpperBounds, groundLowerBounds ); + + ReluConstraint relu = ReluConstraint( 1, 3 ); + auto splits = relu.getCaseSplits(); + TS_ASSERT_EQUALS( splits.size(), 2U ); + + PiecewiseLinearCaseSplit split1 = splits.back(); + PiecewiseLinearCaseSplit split2 = splits.front(); + + auto *child1 = new UnsatCertificateNode(root, split1 ); + auto *child2 = new UnsatCertificateNode(root, split2 ); + + TS_ASSERT_EQUALS( child1->getParent(), root ); + TS_ASSERT_EQUALS( child2->getParent(), root ); + + TS_ASSERT_EQUALS( root->getChildBySplit( split1 ), child1 ); + TS_ASSERT_EQUALS( root->getChildBySplit( split2 ), child2 ); + + TS_ASSERT_EQUALS( child1->getSplit(), split1 ); + TS_ASSERT_EQUALS( child2->getSplit(), split2 ); + + root->makeLeaf(); + + TS_ASSERT_EQUALS( root->getChildBySplit( split1 ), nullptr ); + TS_ASSERT_EQUALS( root->getChildBySplit( split2 ), nullptr ); + + delete root; + } + + /* + Tests methods that set and get the contradiction + */ + void testContradiction() + { + Vector> initialTableau = { Vector( 1,1 ) }; + Vector groundUpperBounds( 1, 1 ); + Vector groundLowerBounds( 1, 0 ); + + UnsatCertificateNode root = UnsatCertificateNode(&initialTableau, groundUpperBounds, groundLowerBounds ); + auto upperBoundExplanation = new double[1]; + upperBoundExplanation[0] = 1; + + auto lowerBoundExplanation = new double[1]; + lowerBoundExplanation[0] = -1; + + auto *contradiction = new Contradiction( 0, upperBoundExplanation, lowerBoundExplanation ); + root.setContradiction( contradiction ); + TS_ASSERT_EQUALS( root.getContradiction(), contradiction ); + } + + /* + Tests changes in PLC Explanations list + */ + void testPLCExplChanges() + { + Vector> initialTableau = { Vector( 1,1 ) }; + Vector groundUpperBounds( 1, 1 ); + Vector groundLowerBounds( 1, -1 ); + + UnsatCertificateNode root = UnsatCertificateNode(&initialTableau, groundUpperBounds, groundLowerBounds ); + + auto explanation1 = std::shared_ptr( new PLCExplanation( 1, 1, 0, UPPER, UPPER, NULL, RELU, 0 ) ); + auto explanation2 = std::shared_ptr( new PLCExplanation( 1, 1, -1, UPPER, UPPER, NULL, RELU, 1 ) ); + auto explanation3 = std::shared_ptr( new PLCExplanation( 1, 1, -4, UPPER, UPPER, NULL, RELU, 2 ) ); + + TS_ASSERT( root.getPLCExplanations().empty() ); + + root.addPLCExplanation( explanation1 ); + root.addPLCExplanation( explanation2 ); + root.addPLCExplanation( explanation3 ); + TS_ASSERT_EQUALS( root.getPLCExplanations().size(), 3U ); + + root.removePLCExplanationsBelowDecisionLevel( 0 ); + TS_ASSERT_EQUALS( root.getPLCExplanations().size(), 2U ); + TS_ASSERT_EQUALS( root.getPLCExplanations().front(), explanation2 ); + TS_ASSERT_EQUALS( root.getPLCExplanations().back(), explanation3 ); + + root.deletePLCExplanations(); + TS_ASSERT( root.getPLCExplanations().empty() ); + + List> list = { explanation1 }; + root.setPLCExplanations( list ); + TS_ASSERT_EQUALS( root.getPLCExplanations().size(), 1U ); + TS_ASSERT_EQUALS( root.getPLCExplanations().front(), explanation1 ); + } + + /* + Tests certification methods + */ + void testCertification() + { + Vector row1 = { 1, 0, -1, 0, 1, 0, 0 }; // Row of ReLU1 + Vector row2 = { 0, 1, 0, -1, 0, 1, 0 }; // Row of ReLU2 + Vector row3 = { 0.5, 0, -1, 0, 0, 0, 1 }; + Vector> initialTableau = { row1, row2, row3 }; + + Vector groundUpperBounds( row1.size(), 1 ); + Vector groundLowerBounds( row1.size(), 0 ); + groundUpperBounds[6] = 2; + + // Set a complete tree of depth 3, using 2 ReLUs + auto *root = new UnsatCertificateNode(&initialTableau, groundUpperBounds, groundLowerBounds ); + + ReluConstraint relu1 = ReluConstraint( 0, 2 ); // aux var is 4 + ReluConstraint relu2 = ReluConstraint( 1, 3 ) ; // aux var is 5 + + root->addProblemConstraint( RELU, { 0, 2, 4 }, PHASE_NOT_FIXED ); + root->addProblemConstraint( RELU, { 1, 3, 5 }, PHASE_NOT_FIXED ); + + auto splits1 = relu1.getCaseSplits(); + auto splits2 = relu2.getCaseSplits(); + TS_ASSERT_EQUALS( splits1.size(), 2U ); + TS_ASSERT_EQUALS( splits2.size(), 2U ); + + PiecewiseLinearCaseSplit split1_1 = splits1.back(); + PiecewiseLinearCaseSplit split1_2 = splits1.front(); + + PiecewiseLinearCaseSplit split2_1 = splits2.back(); + PiecewiseLinearCaseSplit split2_2 = splits2.front(); + + TS_ASSERT_EQUALS( split1_2.getBoundTightenings().size(), 2U ); + + auto *child1 = new UnsatCertificateNode(root, split1_1 ); // Child with missing aux tightening + auto *child2 = new UnsatCertificateNode(root, split1_2 ); + + auto *child2_1 = new UnsatCertificateNode(child2, split2_1 ); + auto *child2_2 = new UnsatCertificateNode(child2, split2_2 ); + + root->setVisited(); + child2->setVisited(); + child1->setVisited(); + child2_1->setVisited(); + + // Visited leaves have no contradiction, so certification will fail + TS_ASSERT( !root->certify() ); + + // Mark visited leaves with flags that immediately certify them + child1->setSATSolution(); + child2_1->shouldDelegate( 0, DelegationStatus::DELEGATE_DONT_SAVE ); + TS_ASSERT( root->certify() ); + + // Visited leaf should be checked as well + // Certification should fail since child2_2 has no contradiction + child2_2->setVisited(); + TS_ASSERT( !root->certify() ); + + delete root; + } +}; \ No newline at end of file diff --git a/src/proof_production/tests/Test_UnsatCertificateUtils.h b/src/proof_production/tests/Test_UnsatCertificateUtils.h new file mode 100644 index 0000000000..e02524b917 --- /dev/null +++ b/src/proof_production/tests/Test_UnsatCertificateUtils.h @@ -0,0 +1,60 @@ +/********************* */ +/*! \file Test_UnsatCertificateUtils.h + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#include "context/cdlist.h" +#include "context/context.h" +#include +#include "UnsatCertificateUtils.h" + +class UnsatCertificateUtilsTestSuite : public CxxTest::TestSuite +{ +public: + void test_bound_computation() + { + Vector row1 = { 1, 0, -1, 1, 0, 0 }; + Vector row2 = { 0, -1, 2, 0, 1, 0 }; + Vector row3 = { 0.5, 0, -1, 0, 0, 1 }; + Vector> initialTableau = { row1, row2, row3 }; + + Vector groundUpperBounds = { 1, 1 ,1 ,1 ,1 ,1 }; + Vector groundLowerBounds = { 0, 0, 0, 0, 0, 0 }; + + Vector explanation = { 1, 1, 0 }; + // Linear combination is x0 = x1 - x2 - x3 - x4, thus explanation combination is only lhs + Vector rowCombination; + + unsigned var = 0; + + UNSATCertificateUtils::getExplanationRowCombination( var, rowCombination, explanation, initialTableau ); + + auto it = rowCombination.begin(); + TS_ASSERT_EQUALS( *it, 0 ); + ++it; + TS_ASSERT_EQUALS( *it, 1 ); + ++it; + TS_ASSERT_EQUALS( *it, -1 ); + ++it; + TS_ASSERT_EQUALS( *it, -1 ); + ++it; + TS_ASSERT_EQUALS( *it, -1 ); + ++it; + TS_ASSERT_EQUALS( *it, 0 ); + ++it; + TS_ASSERT_EQUALS( it, rowCombination.end() ); + + double explainedBound = UNSATCertificateUtils::computeBound( var, true, explanation, initialTableau, groundUpperBounds, groundLowerBounds ); + + TS_ASSERT_EQUALS( explainedBound, 1 ); + } +}; \ No newline at end of file From 2b98cd2ce65588da85673691291d68b77172e204 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 6 Mar 2022 11:37:45 +0200 Subject: [PATCH 042/165] Update CMakeLists.txt --- src/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9c42c68be0..58e9cdbf80 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -52,4 +52,5 @@ add_subdirectory(common) add_subdirectory(system_tests) add_subdirectory(${INPUT_PARSERS_DIR}) add_subdirectory(query_loader) -add_subdirectory(nlr) \ No newline at end of file +add_subdirectory(nlr) +add_subdirectory(proof_production) From 6f65a1910e96adb2eba4983dcac8f83fe6fd3977 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 6 Mar 2022 11:59:16 +0200 Subject: [PATCH 043/165] Update Test_SmtLibWriter.h --- src/proof_production/tests/Test_SmtLibWriter.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/proof_production/tests/Test_SmtLibWriter.h b/src/proof_production/tests/Test_SmtLibWriter.h index 686f3032c6..cd13b1a2db 100644 --- a/src/proof_production/tests/Test_SmtLibWriter.h +++ b/src/proof_production/tests/Test_SmtLibWriter.h @@ -76,7 +76,7 @@ class SmtLibWriterTestSuite : public CxxTest::TestSuite TS_ASSERT_EQUALS( line, expectedLine ); line = file->readLine( '\n' ); - expectedLine = "( assert ( = 0 ( + ( * 1.000000 x0 ) ( * 1.000000 x1 ))))"; + expectedLine = "( assert ( = 0 ( + ( * 1.000000 x0 ) ( * 1.000000 x1 ) ) ) )"; TS_ASSERT_EQUALS( line, expectedLine ); line = file->readLine( '\n' ); @@ -91,4 +91,4 @@ class SmtLibWriterTestSuite : public CxxTest::TestSuite expectedLine = "( exit )"; TS_ASSERT_EQUALS( line, expectedLine ); } -}; \ No newline at end of file +}; From 0e66fbbd9a53f3741ec9b5dca609fe9e7595ea14 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Thu, 10 Mar 2022 10:13:42 +0200 Subject: [PATCH 044/165] Update Test_Vector.h Correct file --- src/common/tests/Test_Vector.h | 575 +++++++++++++++++++++++---------- 1 file changed, 400 insertions(+), 175 deletions(-) diff --git a/src/common/tests/Test_Vector.h b/src/common/tests/Test_Vector.h index 4719d139a1..7bab889822 100644 --- a/src/common/tests/Test_Vector.h +++ b/src/common/tests/Test_Vector.h @@ -1,5 +1,5 @@ /********************* */ -/*! \file Vector.h +/*! \file Test_Vector.h ** \verbatim ** Top contributors (to current version): ** Guy Katz @@ -9,288 +9,513 @@ ** All rights reserved. See the file COPYING in the top-level source ** directory for licensing information.\endverbatim ** + ** \brief [[ Add one-line brief description here ]] + ** ** [[ Add lengthier description here ]] - **/ -#ifndef __Vector_h__ -#define __Vector_h__ +#include -#include -#include +#include "MString.h" +#include "MockErrno.h" +#include "Vector.h" -#include "CommonError.h" -#include - -template -class Vector +class VectorTestSuite : public CxxTest::TestSuite { - typedef std::vector Super; public: - typedef typename Super::iterator iterator; - typedef typename Super::const_iterator const_iterator; + MockErrno *mockErrno; - Vector() + void setUp() { + TS_ASSERT( mockErrno = new MockErrno ); } - Vector( const Vector &rhs) = default; - - Vector( const std::initializer_list &initializerList ) : _container( initializerList ) + void tearDown() { + TS_ASSERT_THROWS_NOTHING( delete mockErrno ); } - Vector( unsigned size ) : _container( size ) + void test_constructor_size() { - } + unsigned size = 3; - Vector( unsigned size, T value ) : _container( size, value ) - { - } + Vector vector( size ); - template - Vector( InputIt begin, InputIt end) : _container( begin, end ) - { + TS_ASSERT_EQUALS( vector.size(), 3u ); } - virtual void assign ( unsigned size, T value ) + void test_constructor_value() { - _container.assign( size, value ); - } + unsigned size = 3; + double value = 10.0; - virtual void append( T value ) - { - _container.push_back( value ); - } + Vector vector( size, value ); - virtual void insertHead( T value ) - { - _container.insert( _container.begin(), value ); + TS_ASSERT_EQUALS( vector.size(), 3u ); + TS_ASSERT_EQUALS( vector[0], value ); + TS_ASSERT_EQUALS( vector[1], value ); + TS_ASSERT_EQUALS( vector[2], value ); } - virtual ~Vector() + void test_brackets() { - } + Vector vector; - T *data() - { - return _container.data(); - } + vector.append( "Apple" ); + vector.append( "Red" ); + vector.append( "Tasty" ); - T get( int index ) const - { - return _container.at( index ); + TS_ASSERT_EQUALS( vector[0], "Apple" ); + TS_ASSERT_EQUALS( vector[1], "Red" ); + TS_ASSERT_EQUALS( vector[2], "Tasty" ); } - T &operator[]( int index ) + void test_size_and_exists() { - return _container[index]; - } + Vector vector; - const T &operator[]( int index ) const - { - return _container[index]; - } + TS_ASSERT_EQUALS( vector.size(), 0u ); + TS_ASSERT( vector.empty() ); - bool empty() const - { - return size() == 0; - } + vector.append( "Apple" ); + TS_ASSERT_EQUALS( vector.size(), 1u ); + TS_ASSERT( vector.exists( "Apple" ) ); + TS_ASSERT( !vector.exists( "Red" ) ); - unsigned size() const - { - return _container.size(); - } + TS_ASSERT( !vector.empty() ); - bool exists( const T &value ) const - { - for ( unsigned i = 0; i < size(); ++i ) - { - if ( get( i ) == value ) - return true; - } + vector.append( "Red" ); + TS_ASSERT_EQUALS( vector.size(), 2u ); + TS_ASSERT( vector.exists( "Apple" ) ); + TS_ASSERT( vector.exists( "Red" ) ); - return false; + vector.append( "Tasty" ); + TS_ASSERT_EQUALS( vector.size(), 3u ); + TS_ASSERT( vector.exists( "Apple" ) ); + TS_ASSERT( vector.exists( "Red" ) ); + TS_ASSERT( vector.exists( "Tasty" ) ); } - void erase( const T &value ) + void test_erase() { - for ( iterator it = _container.begin(); it != _container.end(); ++it ) - { - if ( (*it) == value ) - { - _container.erase( it ); - return; - } - } - - throw CommonError( CommonError::VALUE_DOESNT_EXIST_IN_VECTOR ); - } + Vector vector; - void eraseByValue( T value ) - { - for ( iterator it = _container.begin(); it != _container.end(); ++it ) - { - if ( (*it) == value ) - { - _container.erase( it ); - return; - } - } - - throw CommonError( CommonError::VALUE_DOESNT_EXIST_IN_VECTOR ); - } + vector.append( "Apple" ); + TS_ASSERT( vector.exists( "Apple" ) ); + TS_ASSERT_THROWS_NOTHING( vector.erase( "Apple" ) ); + TS_ASSERT( !vector.exists( "Apple" ) ); + TS_ASSERT_EQUALS( vector.size(), 0U ); - iterator begin() - { - return _container.begin(); - } + vector.append( "Red" ); + vector.append( "Tasty" ); + TS_ASSERT( !vector.exists( "Apple" ) ); + TS_ASSERT( vector.exists( "Red" ) ); + TS_ASSERT( vector.exists( "Tasty" ) ); - iterator end() - { - return _container.end(); + TS_ASSERT_THROWS_NOTHING( vector.erase( "Tasty" ) ); + TS_ASSERT( !vector.exists( "Apple" ) ); + TS_ASSERT( vector.exists( "Red" ) ); + TS_ASSERT( !vector.exists( "Tasty" ) ); + + TS_ASSERT_THROWS_EQUALS( vector.erase( "Bla" ), + const CommonError &e, + e.getCode(), + CommonError::VALUE_DOESNT_EXIST_IN_VECTOR ); + + Vector anotherVector; + anotherVector.append( "1" ); + + String toDelete = anotherVector[0]; + + TS_ASSERT_THROWS_NOTHING( anotherVector.erase( toDelete ) ); + TS_ASSERT_EQUALS( anotherVector.size(), 0u ); } - const_iterator begin() const + void test_eraseByValue() { - return _container.begin(); + Vector vector; + + vector.append( "Apple" ); + TS_ASSERT( vector.exists( "Apple" ) ); + TS_ASSERT_THROWS_NOTHING( vector.eraseByValue( "Apple" ) ); + TS_ASSERT( !vector.exists( "Apple" ) ); + TS_ASSERT_EQUALS( vector.size(), 0U ); + + vector.append( "Red" ); + vector.append( "Tasty" ); + TS_ASSERT( !vector.exists( "Apple" ) ); + TS_ASSERT( vector.exists( "Red" ) ); + TS_ASSERT( vector.exists( "Tasty" ) ); + + TS_ASSERT_THROWS_NOTHING( vector.eraseByValue( "Tasty" ) ); + TS_ASSERT( !vector.exists( "Apple" ) ); + TS_ASSERT( vector.exists( "Red" ) ); + TS_ASSERT( !vector.exists( "Tasty" ) ); + + TS_ASSERT_THROWS_EQUALS( vector.eraseByValue( "Bla" ), + const CommonError &e, + e.getCode(), + CommonError::VALUE_DOESNT_EXIST_IN_VECTOR ); + + Vector anotherVector; + anotherVector.append( "1" ); + + String toDelete = anotherVector[0]; + + TS_ASSERT_THROWS_NOTHING( anotherVector.eraseByValue( toDelete ) ); + TS_ASSERT_EQUALS( anotherVector.size(), 0u ); } - const_iterator end() const + void test_erase_at() { - return _container.cend(); + Vector vector; + + vector.append( 2 ); + vector.append( 4 ); + vector.append( 6 ); + vector.append( 8 ); + + vector.eraseAt( 0 ); + + TS_ASSERT_EQUALS( vector[0], 4 ); + TS_ASSERT_EQUALS( vector[1], 6 ); + TS_ASSERT_EQUALS( vector[2], 8 ); + + vector.eraseAt( 1 ); + + TS_ASSERT_EQUALS( vector[0], 4 ); + TS_ASSERT_EQUALS( vector[1], 8 ); + + TS_ASSERT_THROWS_EQUALS( vector.eraseAt( 17 ), + const CommonError &e, + e.getCode(), + CommonError::VECTOR_OUT_OF_BOUNDS ); } - void erase( iterator &it ) + void test_clear() { - _container.erase( it ); + Vector vector; + + vector.append( 5 ); + vector.append( 10 ); + + TS_ASSERT_EQUALS( vector.size(), 2U ); + + TS_ASSERT_THROWS_NOTHING( vector.clear() ); + + TS_ASSERT_EQUALS( vector.size(), 0U ); + + TS_ASSERT( !vector.exists( 5 ) ); + TS_ASSERT( !vector.exists( 10 ) ); + + vector.append( 10 ); + + TS_ASSERT_EQUALS( vector.size(), 1U ); + TS_ASSERT( vector.exists( 10 ) ); } - void eraseAt( unsigned index ) + void test_concatenation() { - if ( index >= size() ) - throw CommonError( CommonError::VECTOR_OUT_OF_BOUNDS ); + Vector one; + Vector two; + Vector output; + + one.append( 1 ); + one.append( 15 ); + + two.append( 27 ); + two.append( 13 ); + + output = one + two; + + TS_ASSERT_EQUALS( output.size(), 4U ); + + TS_ASSERT_EQUALS( output[0], 1U ); + TS_ASSERT_EQUALS( output[1], 15U ); + TS_ASSERT_EQUALS( output[2], 27U ); + TS_ASSERT_EQUALS( output[3], 13U ); + + TS_ASSERT_EQUALS( one.size(), 2U ); - iterator it = _container.begin(); + one += two; - while ( index > 0 ) - { - ++it; - --index; - } + TS_ASSERT_EQUALS( one.size(), 4U ); - _container.erase( it ); + TS_ASSERT_EQUALS( one[0], 1U ); + TS_ASSERT_EQUALS( one[1], 15U ); + TS_ASSERT_EQUALS( one[2], 27U ); + TS_ASSERT_EQUALS( one[3], 13U ); } - void clear() + void test_pop_first() { - _container.clear(); + Vector vector; + + vector.append( 1 ); + vector.append( 2 ); + vector.append( 3 ); + + TS_ASSERT_EQUALS( vector.popFirst(), 1 ); + TS_ASSERT_EQUALS( vector.size(), 2U ); + + TS_ASSERT_EQUALS( vector.popFirst(), 2 ); + TS_ASSERT_EQUALS( vector.size(), 1U ); + + TS_ASSERT_EQUALS( vector.popFirst(), 3 ); + TS_ASSERT_EQUALS( vector.size(), 0U ); + + TS_ASSERT_THROWS_EQUALS( vector.popFirst(), + const CommonError &e, + e.getCode(), + CommonError::POPPING_FROM_EMPTY_VECTOR ); } - Vector operator+( const Vector &other ) + void test_pop() { - Vector output; + Vector vector; + + vector.append( 1 ); + vector.append( 2 ); + vector.append( 3 ); - for ( unsigned i = 0; i < this->size(); ++i ) - output.append( ( *this )[i] ); + TS_ASSERT_EQUALS( vector.pop(), 3 ); + TS_ASSERT_EQUALS( vector.size(), 2U ); - for ( unsigned i = 0; i < other.size(); ++i ) - output.append( other.get( i ) ); + TS_ASSERT_EQUALS( vector.pop(), 2 ); + TS_ASSERT_EQUALS( vector.size(), 1U ); - return output; + TS_ASSERT_EQUALS( vector.pop(), 1 ); + TS_ASSERT_EQUALS( vector.size(), 0U ); + + TS_ASSERT_THROWS_EQUALS( vector.pop(), + const CommonError &e, + e.getCode(), + CommonError::POPPING_FROM_EMPTY_VECTOR ); } - Vector &operator+=( const Vector &other ) + void test_first() { - (*this) = (*this) + other; - return *this; + Vector vector; + + TS_ASSERT_THROWS_EQUALS( vector.first(), + const CommonError &e, + e.getCode(), + CommonError::VECTOR_OUT_OF_BOUNDS ); + + vector.append( 1 ); + TS_ASSERT_EQUALS( vector.first(), 1 ); + + vector.append( 2 ); + TS_ASSERT_EQUALS( vector.first(), 1 ); + + vector.append( 3 ); + TS_ASSERT_EQUALS( vector.first(), 1 ); + + vector.erase( 1 ); + TS_ASSERT_EQUALS( vector.first(), 2 ); } - T popFirst() + void test_last() { - if ( size() == 0 ) - throw CommonError( CommonError::POPPING_FROM_EMPTY_VECTOR ); + Vector vector; + + TS_ASSERT_THROWS_EQUALS( vector.last(), + const CommonError &e, + e.getCode(), + CommonError::VECTOR_OUT_OF_BOUNDS ); + + vector.append( 1 ); + TS_ASSERT_EQUALS( vector.last(), 1 ); + + vector.append( 2 ); + TS_ASSERT_EQUALS( vector.last(), 2 ); - T value = _container[0]; - eraseAt( 0 ); - return value; + vector.append( 3 ); + TS_ASSERT_EQUALS( vector.last(), 3 ); } - T first() const + void test_insert_head() { - if ( empty() ) - throw CommonError( CommonError::VECTOR_OUT_OF_BOUNDS ); + Vector vector; - return get( 0 ); + vector.append( 1 ); + vector.append( 2 ); + + vector.insertHead( 3 ); + + TS_ASSERT_EQUALS( vector.size(), 3U ); + TS_ASSERT_EQUALS( vector[0], 3 ); + TS_ASSERT_EQUALS( vector[1], 1 ); + TS_ASSERT_EQUALS( vector[2], 2 ); + + vector.insertHead( 4 ); + + TS_ASSERT_EQUALS( vector.size(), 4U ); + TS_ASSERT_EQUALS( vector[0], 4 ); + TS_ASSERT_EQUALS( vector[1], 3 ); + TS_ASSERT_EQUALS( vector[2], 1 ); + TS_ASSERT_EQUALS( vector[3], 2 ); } - T last() const + void test_equality() { - if ( empty() ) - throw CommonError( CommonError::VECTOR_OUT_OF_BOUNDS ); + Vector a; + Vector b; + + TS_ASSERT( a == b ); + TS_ASSERT( a == a ); + TS_ASSERT( b == b ); + + b.append( 1 ); + + TS_ASSERT( a != b ); + + a.append( 1 ); - return get( size() - 1 ); + TS_ASSERT( a == b ); + + a.append( 3 ); + a.append( 2 ); + + b.append( 2 ); + + TS_ASSERT( a != b ); + + b.append( 3 ); + + TS_ASSERT( a == b ); } - T pop() + void test_equality_complex() { - if ( size() == 0 ) - throw CommonError( CommonError::POPPING_FROM_EMPTY_VECTOR ); + Vector a, b; + + a.append( 1 ); + a.append( 2 ); + a.append( 1 ); + + b.append( 1 ); + b.append( 2 ); + b.append( 2 ); - T value = last(); - eraseAt( size() - 1 ); - return value; + TS_ASSERT( !( a == b ) ); } - bool operator==( const Vector &other ) const + void test_sort() { - if ( size() != other.size() ) - return false; + Vector a; - Vector copyOfOther = other; + a.append( 2 ); + a.append( 3 ); + a.append( 1 ); - for ( unsigned i = 0; i < size(); ++i ) - { - if ( !copyOfOther.exists( get( i ) ) ) - return false; + TS_ASSERT_EQUALS( a[0], 2 ); - copyOfOther.erase( get( i ) ); - } + TS_ASSERT_THROWS_NOTHING( a.sort() ); - return true; + TS_ASSERT_EQUALS( a[0], 1 ); + TS_ASSERT_EQUALS( a[1], 2 ); + TS_ASSERT_EQUALS( a[2], 3 ); + + Vector b; + + b.append( "egg" ); + b.append( "dog" ); + b.append( "cat" ); + + TS_ASSERT_EQUALS( b[0], "egg" ); + + TS_ASSERT_THROWS_NOTHING( b.sort() ); + + TS_ASSERT_EQUALS( b[0], "cat" ); + TS_ASSERT_EQUALS( b[1], "dog" ); + TS_ASSERT_EQUALS( b[2], "egg" ); } - bool operator!=( const Vector &other ) const + void test_erase_by_iterator() { - return !( *this == other ); + Vector a; + + a.append( 1 ); + a.append( 2 ); + a.append( 3 ); + a.append( 4 ); + + Vector::iterator it = a.begin(); + + TS_ASSERT_EQUALS( *it, 1 ); + + TS_ASSERT_THROWS_NOTHING( a.erase( it ) ); + + TS_ASSERT_EQUALS( *it, 2 ); + + TS_ASSERT_EQUALS( a.size(), 3U ); + + ++it; + + TS_ASSERT_EQUALS( *it, 3 ); + TS_ASSERT_THROWS_NOTHING( a.erase( it ) ); + TS_ASSERT_EQUALS( *it, 4 ); + + ++it; + + TS_ASSERT_EQUALS( it, a.end() ); + + TS_ASSERT_EQUALS( a.size(), 2U ); } - Vector &operator=( const Vector &other ) + void test_assignemnt() { - _container = other._container; - return *this; + Vector a,b; + + a.append( 1 ); + a.append( 2 ); + + TS_ASSERT_EQUALS( a.size(), 2U ); + TS_ASSERT_EQUALS( b.size(), 0U ); + + b = a; + + TS_ASSERT_EQUALS( a.size(), 2U ); + TS_ASSERT_EQUALS( b.size(), 2U ); + + TS_ASSERT_EQUALS( b[0], 1 ); + TS_ASSERT_EQUALS( b[1], 2 ); + + a.erase( 1 ); + TS_ASSERT_EQUALS( b.size(), 2U ); } - void sort() + void test_get() { - std::sort( _container.begin(), _container.end() ); + Vector a; + + a.append( 1 ); + a.append( 2 ); + + TS_ASSERT_EQUALS( a.get( 0 ), a[0] ); + TS_ASSERT_EQUALS( a.get( 1 ), a[1] ); + + a[0] = 13; + + TS_ASSERT_EQUALS( a.get( 0 ), 13 ); + TS_ASSERT_EQUALS( a.get( 0 ), a[0] ); } - Super getContainer() const + void test_const_random_access() { - return _container; - } + const Vector a = { 1, 2, 3 }; -protected: - Super _container; + TS_ASSERT_EQUALS( a[0], 1 ); + TS_ASSERT_EQUALS( a[1], 2 ); + TS_ASSERT_EQUALS( a[2], 3 ); + } }; -#endif // __Vector_h__ - // // Local Variables: -// compile-command: "make -C ../.. " -// tags-file-name: "../../TAGS" +// compile-command: "make -C ../../.. " +// tags-file-name: "../../../TAGS" // c-basic-offset: 4 // End: // From 2ed2afabfb4aaec9bef35db86fd46d0918eb72c3 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Thu, 10 Mar 2022 10:45:47 +0200 Subject: [PATCH 045/165] Update List.h Added appendHead function that enables adding another list. --- src/common/List.h | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/common/List.h b/src/common/List.h index 0d742bc995..0598c6402f 100644 --- a/src/common/List.h +++ b/src/common/List.h @@ -65,6 +65,11 @@ class List _container.push_front( value ); } + void appendHead( const List &other ) + { + _container.insert( begin(), other.begin(), other.end() ); + } + iterator begin() { return _container.begin(); @@ -175,13 +180,13 @@ class List _container.pop_back(); } - - template + + template void removeIf( Predicate p ) - { - _container.remove_if( p ); - } - + { + _container.remove_if( p ); + } + bool operator==( const List &other ) const { return _container == other._container; From c6b7156a495a7962b39135bb474d657a00565daf Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Tue, 15 Mar 2022 11:03:20 +0200 Subject: [PATCH 046/165] Added const access to data --- src/common/Vector.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/common/Vector.h b/src/common/Vector.h index 4719d139a1..9db9dd2144 100644 --- a/src/common/Vector.h +++ b/src/common/Vector.h @@ -77,6 +77,11 @@ class Vector return _container.data(); } + const T *data() const + { + return _container.data(); + } + T get( int index ) const { return _container.at( index ); From c52eb43180ba18d4409a65948dfec8335ca5b405 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Tue, 15 Mar 2022 11:04:10 +0200 Subject: [PATCH 047/165] Added tests to data() functions --- src/common/tests/Test_Vector.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/common/tests/Test_Vector.h b/src/common/tests/Test_Vector.h index 7bab889822..d1118106b6 100644 --- a/src/common/tests/Test_Vector.h +++ b/src/common/tests/Test_Vector.h @@ -510,6 +510,21 @@ class VectorTestSuite : public CxxTest::TestSuite TS_ASSERT_EQUALS( a[1], 2 ); TS_ASSERT_EQUALS( a[2], 3 ); } + + void test_data_access() + { + Vector a = { 1, 2, 3 }; + const int *constData = a.data(); + int *data = a.data(); + + TS_ASSERT_EQUALS( data[0], 1 ); + TS_ASSERT_EQUALS( data[1], 2 ); + TS_ASSERT_EQUALS( data[2], 3 ); + + TS_ASSERT_EQUALS( constData[0], 1 ); + TS_ASSERT_EQUALS( constData[1], 2 ); + TS_ASSERT_EQUALS( constData[2], 3 ); + } }; // From f7a3e2e469bb604439d2382f7a10a84c111b42e8 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Tue, 15 Mar 2022 11:04:38 +0200 Subject: [PATCH 048/165] Delete UnsatCertificateProblemConstraint.h --- .../UnsatCertificateProblemConstraint.h | 37 ------------------- 1 file changed, 37 deletions(-) delete mode 100644 src/proof_production/UnsatCertificateProblemConstraint.h diff --git a/src/proof_production/UnsatCertificateProblemConstraint.h b/src/proof_production/UnsatCertificateProblemConstraint.h deleted file mode 100644 index a131cd05b8..0000000000 --- a/src/proof_production/UnsatCertificateProblemConstraint.h +++ /dev/null @@ -1,37 +0,0 @@ -/********************* */ -/*! \file UnsatCertificateProblemConstraint.h - ** \verbatim - ** Top contributors (to current version): - ** Omri Isac, Guy Katz - ** This file is part of the Marabou project. - ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS - ** in the top-level source directory) and their institutional affiliations. - ** All rights reserved. See the file COPYING in the top-level source - ** directory for licensing information.\endverbatim - ** - ** [[ Add lengthier description here ]] - **/ - -#ifndef __CertificateProblemConstraint_h__ -#define __CertificateProblemConstraint_h__ - -#include "PiecewiseLinearConstraint.h" - -/* - A representation of a problem constraint, smaller than a PiecewiseLinearConstraint instance -*/ -struct UnsatCertificateProblemConstraint -{ - PiecewiseLinearFunctionType _type; - List _constraintVars; - PhaseStatus _status; - - inline bool operator==( const UnsatCertificateProblemConstraint &other ) const - { - return _type == other._type && _constraintVars == other._constraintVars; - } - -friend class UnsatCertificateNode; -}; - -#endif //__CertificateProblemConstraint_h__ \ No newline at end of file From 33c9b6ada29c62762dce7ecd4d26037bc50affd2 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Tue, 15 Mar 2022 11:16:22 +0200 Subject: [PATCH 049/165] Update Test_List.h --- src/common/tests/Test_List.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/common/tests/Test_List.h b/src/common/tests/Test_List.h index 09e03b8426..ac35e9c282 100644 --- a/src/common/tests/Test_List.h +++ b/src/common/tests/Test_List.h @@ -299,7 +299,6 @@ class ListTestSuite : public CxxTest::TestSuite a.append( 1 ); a.append( -2 ); - a.removeIf( [] ( int number ) { return number < 0; } ); auto it = a.begin(); From df5a4c30e82f300bafa3829500e61b2a890e2c28 Mon Sep 17 00:00:00 2001 From: omriisack Date: Tue, 15 Mar 2022 16:46:38 +0200 Subject: [PATCH 050/165] Changed folder name --- src/CMakeLists.txt | 2 +- .../BoundExplainer.cpp | 0 src/{proof_production => proofs}/BoundExplainer.h | 0 src/{proof_production => proofs}/CMakeLists.txt | 14 +++++++------- src/{proof_production => proofs}/Contradiction.cpp | 0 src/{proof_production => proofs}/Contradiction.h | 0 .../PlcExplanation.cpp | 0 src/{proof_production => proofs}/PlcExplanation.h | 0 src/{proof_production => proofs}/SmtLibWriter.cpp | 0 src/{proof_production => proofs}/SmtLibWriter.h | 0 .../UnsatCertificateNode.cpp | 0 .../UnsatCertificateNode.h | 0 .../UnsatCertificateUtils.cpp | 0 .../UnsatCertificateUtils.h | 0 .../tests/Test_BoundExplainer.h | 0 .../tests/Test_SmtLibWriter.h | 0 .../tests/Test_UnsatCertificateNode.h | 0 .../tests/Test_UnsatCertificateUtils.h | 0 18 files changed, 8 insertions(+), 8 deletions(-) rename src/{proof_production => proofs}/BoundExplainer.cpp (100%) rename src/{proof_production => proofs}/BoundExplainer.h (100%) rename src/{proof_production => proofs}/CMakeLists.txt (53%) rename src/{proof_production => proofs}/Contradiction.cpp (100%) rename src/{proof_production => proofs}/Contradiction.h (100%) rename src/{proof_production => proofs}/PlcExplanation.cpp (100%) rename src/{proof_production => proofs}/PlcExplanation.h (100%) rename src/{proof_production => proofs}/SmtLibWriter.cpp (100%) rename src/{proof_production => proofs}/SmtLibWriter.h (100%) rename src/{proof_production => proofs}/UnsatCertificateNode.cpp (100%) rename src/{proof_production => proofs}/UnsatCertificateNode.h (100%) rename src/{proof_production => proofs}/UnsatCertificateUtils.cpp (100%) rename src/{proof_production => proofs}/UnsatCertificateUtils.h (100%) rename src/{proof_production => proofs}/tests/Test_BoundExplainer.h (100%) rename src/{proof_production => proofs}/tests/Test_SmtLibWriter.h (100%) rename src/{proof_production => proofs}/tests/Test_UnsatCertificateNode.h (100%) rename src/{proof_production => proofs}/tests/Test_UnsatCertificateUtils.h (100%) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 58e9cdbf80..6e0c589d02 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -53,4 +53,4 @@ add_subdirectory(system_tests) add_subdirectory(${INPUT_PARSERS_DIR}) add_subdirectory(query_loader) add_subdirectory(nlr) -add_subdirectory(proof_production) +add_subdirectory(proofs) diff --git a/src/proof_production/BoundExplainer.cpp b/src/proofs/BoundExplainer.cpp similarity index 100% rename from src/proof_production/BoundExplainer.cpp rename to src/proofs/BoundExplainer.cpp diff --git a/src/proof_production/BoundExplainer.h b/src/proofs/BoundExplainer.h similarity index 100% rename from src/proof_production/BoundExplainer.h rename to src/proofs/BoundExplainer.h diff --git a/src/proof_production/CMakeLists.txt b/src/proofs/CMakeLists.txt similarity index 53% rename from src/proof_production/CMakeLists.txt rename to src/proofs/CMakeLists.txt index 390179f030..7f2c8a5167 100644 --- a/src/proof_production/CMakeLists.txt +++ b/src/proofs/CMakeLists.txt @@ -7,17 +7,17 @@ target_include_directories(${MARABOU_LIB} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") target_sources(${MARABOU_TEST_LIB} PRIVATE ${SRCS}) target_include_directories(${MARABOU_TEST_LIB} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") -set (PROOF_PRODUCTION_TESTS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/tests") -macro(proof_production_add_unit_test name) +set (PROOFS_TESTS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/tests") +macro(proofs_add_unit_test name) set(USE_MOCK_COMMON TRUE) set(USE_MOCK_ENGINE TRUE) - marabou_add_test(${PROOF_PRODUCTION_TESTS_DIR}/Test_${name} proof_production USE_MOCK_COMMON USE_MOCK_ENGINE "unit") + marabou_add_test(${PROOFS_TESTS_DIR}/Test_${name} proofs USE_MOCK_COMMON USE_MOCK_ENGINE "unit") endmacro() -proof_production_add_unit_test(BoundExplainer) -proof_production_add_unit_test(SmtLibWriter) -proof_production_add_unit_test(UnsatCertificateNode) -proof_production_add_unit_test(UnsatCertificateUtils) +proofs_add_unit_test(BoundExplainer) +proofs_add_unit_test(SmtLibWriter) +proofs_add_unit_test(UnsatCertificateNode) +proofs_add_unit_test(UnsatCertificateUtils) if (${BUILD_PYTHON}) target_include_directories(${MARABOU_PY} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/src/proof_production/Contradiction.cpp b/src/proofs/Contradiction.cpp similarity index 100% rename from src/proof_production/Contradiction.cpp rename to src/proofs/Contradiction.cpp diff --git a/src/proof_production/Contradiction.h b/src/proofs/Contradiction.h similarity index 100% rename from src/proof_production/Contradiction.h rename to src/proofs/Contradiction.h diff --git a/src/proof_production/PlcExplanation.cpp b/src/proofs/PlcExplanation.cpp similarity index 100% rename from src/proof_production/PlcExplanation.cpp rename to src/proofs/PlcExplanation.cpp diff --git a/src/proof_production/PlcExplanation.h b/src/proofs/PlcExplanation.h similarity index 100% rename from src/proof_production/PlcExplanation.h rename to src/proofs/PlcExplanation.h diff --git a/src/proof_production/SmtLibWriter.cpp b/src/proofs/SmtLibWriter.cpp similarity index 100% rename from src/proof_production/SmtLibWriter.cpp rename to src/proofs/SmtLibWriter.cpp diff --git a/src/proof_production/SmtLibWriter.h b/src/proofs/SmtLibWriter.h similarity index 100% rename from src/proof_production/SmtLibWriter.h rename to src/proofs/SmtLibWriter.h diff --git a/src/proof_production/UnsatCertificateNode.cpp b/src/proofs/UnsatCertificateNode.cpp similarity index 100% rename from src/proof_production/UnsatCertificateNode.cpp rename to src/proofs/UnsatCertificateNode.cpp diff --git a/src/proof_production/UnsatCertificateNode.h b/src/proofs/UnsatCertificateNode.h similarity index 100% rename from src/proof_production/UnsatCertificateNode.h rename to src/proofs/UnsatCertificateNode.h diff --git a/src/proof_production/UnsatCertificateUtils.cpp b/src/proofs/UnsatCertificateUtils.cpp similarity index 100% rename from src/proof_production/UnsatCertificateUtils.cpp rename to src/proofs/UnsatCertificateUtils.cpp diff --git a/src/proof_production/UnsatCertificateUtils.h b/src/proofs/UnsatCertificateUtils.h similarity index 100% rename from src/proof_production/UnsatCertificateUtils.h rename to src/proofs/UnsatCertificateUtils.h diff --git a/src/proof_production/tests/Test_BoundExplainer.h b/src/proofs/tests/Test_BoundExplainer.h similarity index 100% rename from src/proof_production/tests/Test_BoundExplainer.h rename to src/proofs/tests/Test_BoundExplainer.h diff --git a/src/proof_production/tests/Test_SmtLibWriter.h b/src/proofs/tests/Test_SmtLibWriter.h similarity index 100% rename from src/proof_production/tests/Test_SmtLibWriter.h rename to src/proofs/tests/Test_SmtLibWriter.h diff --git a/src/proof_production/tests/Test_UnsatCertificateNode.h b/src/proofs/tests/Test_UnsatCertificateNode.h similarity index 100% rename from src/proof_production/tests/Test_UnsatCertificateNode.h rename to src/proofs/tests/Test_UnsatCertificateNode.h diff --git a/src/proof_production/tests/Test_UnsatCertificateUtils.h b/src/proofs/tests/Test_UnsatCertificateUtils.h similarity index 100% rename from src/proof_production/tests/Test_UnsatCertificateUtils.h rename to src/proofs/tests/Test_UnsatCertificateUtils.h From 42ecf37e2d060beca3ff484cf7e97521dc65c73b Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Tue, 15 Mar 2022 17:25:35 +0200 Subject: [PATCH 051/165] Update BoundExplainer.cpp Row coefficients vector is added with coefficient 1. Minor modifications. --- src/proofs/BoundExplainer.cpp | 41 ++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/src/proofs/BoundExplainer.cpp b/src/proofs/BoundExplainer.cpp index 32bb216021..62bac4e993 100644 --- a/src/proofs/BoundExplainer.cpp +++ b/src/proofs/BoundExplainer.cpp @@ -92,7 +92,7 @@ void BoundExplainer::updateBoundExplanation( const TableauRow &row, bool isUpper // If we're currently explaining an upper bound, we use upper bound explanation iff variable's coefficient is positive // If we're currently explaining a lower bound, we use upper bound explanation iff variable's coefficient is negative - tempUpper = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ); + tempUpper = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ); tempBound = tempUpper ? _upperBoundExplanations[curVar] : _lowerBoundExplanations[curVar]; addVecTimesScalar( sum, tempBound, realCoefficient ); } @@ -103,7 +103,7 @@ void BoundExplainer::updateBoundExplanation( const TableauRow &row, bool isUpper realCoefficient = 1 / ci; if ( !FloatUtils::isZero( realCoefficient ) ) { - tempUpper = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ); + tempUpper = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ); tempBound = tempUpper ? _upperBoundExplanations[row._lhs] : _lowerBoundExplanations[row._lhs]; addVecTimesScalar( sum, tempBound, realCoefficient ); } @@ -113,7 +113,7 @@ void BoundExplainer::updateBoundExplanation( const TableauRow &row, bool isUpper extractRowCoefficients( row, rowCoefficients, ci ); addVecTimesScalar( sum, rowCoefficients, 1 ); - injectExplanation( sum, var, isUpper ); + setExplanation( sum, var, isUpper ); } void BoundExplainer::updateBoundExplanationSparse( const SparseUnsortedList &row, bool isUpper, unsigned var ) @@ -154,7 +154,7 @@ void BoundExplainer::updateBoundExplanationSparse( const SparseUnsortedList &row // If we're currently explaining an upper bound, we use upper bound explanation iff variable's coefficient is positive // If we're currently explaining a lower bound, we use upper bound explanation iff variable's coefficient is negative - tempUpper = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ); + tempUpper = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ); tempBound = tempUpper ? _upperBoundExplanations[entry._index] : _lowerBoundExplanations[entry._index]; addVecTimesScalar( sum, tempBound, realCoefficient ); } @@ -163,7 +163,7 @@ void BoundExplainer::updateBoundExplanationSparse( const SparseUnsortedList &row extractSparseRowCoefficients( row, rowCoefficients, ci ); addVecTimesScalar( sum, rowCoefficients, 1 ); - injectExplanation( sum, var, isUpper ); + setExplanation( sum, var, isUpper ); } void BoundExplainer::addVecTimesScalar( Vector &sum, const Vector &input, double scalar ) const @@ -173,36 +173,37 @@ void BoundExplainer::addVecTimesScalar( Vector &sum, const Vector &coefficients, double ci ) const { ASSERT( coefficients.size() == _numberOfRows && row._size <= _numberOfVariables ); + ASSERT( !FloatUtils::isZero( ci ) ); // The coefficients of the row m highest-indices vars are the coefficients of slack variables for ( unsigned i = 0; i < row._size; ++i ) { - if (row._row[i]._var >= _numberOfVariables - _numberOfRows && !FloatUtils::isZero(row._row[i]._coefficient ) ) - coefficients[row._row[i]._var - _numberOfVariables + _numberOfRows] = - row._row[i]._coefficient / ci; + if ( row._row[i]._var >= _numberOfVariables - _numberOfRows && !FloatUtils::isZero( row._row[i]._coefficient ) ) + coefficients[row._row[i]._var - _numberOfVariables + _numberOfRows] = row._row[i]._coefficient / ci; } - // If the lhs was part of original basis, its coefficient is 1 / ci - if (row._lhs >= _numberOfVariables - _numberOfRows ) - coefficients[row._lhs - _numberOfVariables + _numberOfRows] = 1 / ci; + // If the lhs was part of original basis, its coefficient is -1 / ci + if ( row._lhs >= _numberOfVariables - _numberOfRows ) + coefficients[row._lhs - _numberOfVariables + _numberOfRows] = -1 / ci; } - void BoundExplainer::extractSparseRowCoefficients( const SparseUnsortedList &row, Vector &coefficients, double ci ) const { - ASSERT(coefficients.size() == _numberOfRows ); + ASSERT( coefficients.size() == _numberOfRows ); + ASSERT( !FloatUtils::isZero( ci ) ); // The coefficients of the row m highest-indices vars are the coefficients of slack variables for ( const auto &entry : row ) { - if (entry._index >= _numberOfVariables - _numberOfRows && !FloatUtils::isZero( entry._value ) ) - coefficients[entry._index - _numberOfVariables + _numberOfRows] = - entry._value / ci; + if ( entry._index >= _numberOfVariables - _numberOfRows && !FloatUtils::isZero( entry._value ) ) + coefficients[entry._index - _numberOfVariables + _numberOfRows] = entry._value / ci; } } @@ -213,7 +214,7 @@ void BoundExplainer::addVariable() _upperBoundExplanations.append( Vector( 0 ) ); _lowerBoundExplanations.append( Vector( 0 ) ); - for (unsigned i = 0; i < _numberOfVariables; ++i ) + for ( unsigned i = 0; i < _numberOfVariables; ++i ) { if ( !_upperBoundExplanations[i].empty() ) _upperBoundExplanations[i].append( 0 ); @@ -225,13 +226,13 @@ void BoundExplainer::addVariable() void BoundExplainer::resetExplanation( unsigned var, bool isUpper ) { - ASSERT(var < _numberOfVariables ); + ASSERT( var < _numberOfVariables ); isUpper ? _upperBoundExplanations[var].clear() : _lowerBoundExplanations[var].clear(); } -void BoundExplainer::injectExplanation( const Vector &explanation, unsigned var, bool isUpper ) +void BoundExplainer::setExplanation( const Vector &explanation, unsigned var, bool isUpper ) { - ASSERT(var < _numberOfVariables && (explanation.empty() || explanation.size() == _numberOfRows ) ); + ASSERT( var < _numberOfVariables && (explanation.empty() || explanation.size() == _numberOfRows ) ); Vector *temp = isUpper ? &_upperBoundExplanations[var] : &_lowerBoundExplanations[var]; *temp = explanation; -} \ No newline at end of file +} From f3df97064659571ef83321a94dff7223612f5781 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Tue, 15 Mar 2022 17:26:10 +0200 Subject: [PATCH 052/165] Update BoundExplainer.h --- src/proofs/BoundExplainer.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/proofs/BoundExplainer.h b/src/proofs/BoundExplainer.h index 5739fc6e83..8767a5f488 100644 --- a/src/proofs/BoundExplainer.h +++ b/src/proofs/BoundExplainer.h @@ -25,7 +25,7 @@ class BoundExplainer { public: - BoundExplainer(unsigned numberOfVariables, unsigned numberOfRows ); + BoundExplainer( unsigned numberOfVariables, unsigned numberOfRows ); /* Returns the number of rows @@ -70,7 +70,7 @@ class BoundExplainer /* Updates an explanation, without necessarily using the recursive rule */ - void injectExplanation( const Vector &explanation, unsigned var, bool isUpper ); + void setExplanation( const Vector &explanation, unsigned var, bool isUpper ); private: unsigned _numberOfVariables; @@ -87,7 +87,7 @@ class BoundExplainer Upon receiving a row, extract coefficients of the original tableau's equations that create the row Equivalently, extract the coefficients of the slack variables. Assumption - the slack variables indices are always the last m. - All coefficients are divided by -ci, the coefficient of the explained var, for normalization. + All coefficients are divided by ci, the coefficient of the explained var, for normalization. */ void extractRowCoefficients( const TableauRow &row, Vector &coefficients, double ci ) const; @@ -95,8 +95,8 @@ class BoundExplainer Upon receiving a row given as a SparseUnsortedList, extract coefficients of the original tableau's equations that create the row Equivalently, extract the coefficients of the slack variables. Assumption - the slack variables indices are always the last m. - All coefficients are divided by -ci, the coefficient of the explained var, for normalization. + All coefficients are divided by ci, the coefficient of the explained var, for normalization. */ void extractSparseRowCoefficients( const SparseUnsortedList &row, Vector &coefficients, double ci ) const; }; -#endif // __BoundsExplainer_h__ \ No newline at end of file +#endif // __BoundsExplainer_h__ From e6ac2bc52340b94b63a37e91ec81698cb919511c Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Tue, 15 Mar 2022 17:26:41 +0200 Subject: [PATCH 053/165] Update CMakeLists.txt --- src/proofs/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/proofs/CMakeLists.txt b/src/proofs/CMakeLists.txt index 7f2c8a5167..ad7aca42d1 100644 --- a/src/proofs/CMakeLists.txt +++ b/src/proofs/CMakeLists.txt @@ -15,6 +15,7 @@ macro(proofs_add_unit_test name) endmacro() proofs_add_unit_test(BoundExplainer) +proofs_add_unit_test(Checker) proofs_add_unit_test(SmtLibWriter) proofs_add_unit_test(UnsatCertificateNode) proofs_add_unit_test(UnsatCertificateUtils) From 98a3dd8041bc4aeecfeeb231fc7664d3d7d37214 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Tue, 15 Mar 2022 17:27:28 +0200 Subject: [PATCH 054/165] Update Test_BoundExplainer.h Test match changes in BoundExplainer --- src/proofs/tests/Test_BoundExplainer.h | 37 +++++++++++++------------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/src/proofs/tests/Test_BoundExplainer.h b/src/proofs/tests/Test_BoundExplainer.h index fa55556648..e731630c2d 100644 --- a/src/proofs/tests/Test_BoundExplainer.h +++ b/src/proofs/tests/Test_BoundExplainer.h @@ -21,7 +21,7 @@ class BoundsExplainerTestSuite : public CxxTest::TestSuite { public: /* - Test initialization of BoundExplainer + Test initialization of BoundExplainer */ void testInitialization() { @@ -40,16 +40,16 @@ class BoundsExplainerTestSuite : public CxxTest::TestSuite } /* - Test explanation injection + Test setExplanation */ - void testExplanationInjection() + void testSetExplanation() { unsigned numberOfVariables = 2; unsigned numberOfRows = 2; double value = -2.55; BoundExplainer be( numberOfVariables, numberOfRows ); - TS_ASSERT_THROWS_NOTHING( be.injectExplanation( Vector( numberOfVariables, value ), 0, true ) ); + TS_ASSERT_THROWS_NOTHING( be.setExplanation( Vector( numberOfVariables, value ), 0, true ) ); auto explanation = be.getExplanation( 0, true ); for ( auto num : explanation ) @@ -65,8 +65,8 @@ class BoundsExplainerTestSuite : public CxxTest::TestSuite unsigned numberOfRows = 2; BoundExplainer be( numberOfVariables, numberOfRows ); - TS_ASSERT_THROWS_NOTHING( be.injectExplanation( Vector( numberOfVariables, 1 ), numberOfVariables - 1, true ) ); - TS_ASSERT_THROWS_NOTHING( be.injectExplanation( Vector( numberOfVariables, 5 ), numberOfVariables - 1, false ) ); + TS_ASSERT_THROWS_NOTHING( be.setExplanation( Vector( numberOfVariables, 1 ), numberOfVariables - 1, true ) ); + TS_ASSERT_THROWS_NOTHING( be.setExplanation( Vector( numberOfVariables, 5 ), numberOfVariables - 1, false ) ); be.addVariable(); TS_ASSERT_EQUALS( be.getNumberOfRows(), numberOfRows + 1 ); @@ -91,7 +91,7 @@ class BoundsExplainerTestSuite : public CxxTest::TestSuite unsigned numberOfRows = 1; BoundExplainer be( numberOfVariables, numberOfRows ); - TS_ASSERT_THROWS_NOTHING( be.injectExplanation( Vector( numberOfRows, 1 ), 0, true ) ); + TS_ASSERT_THROWS_NOTHING( be.setExplanation( Vector( numberOfRows, 1 ), 0, true ) ); TS_ASSERT( !be.getExplanation( 0 , true ).empty() ); be.resetExplanation( 0, true ); @@ -113,8 +113,9 @@ class BoundsExplainerTestSuite : public CxxTest::TestSuite TableauRow updateTableauRow( 6 ); // row1 + row2 := x2 = x0 + 2 x1 - x3 + x4 // Equivalently x3 = x0 + 2 x1 - x2 - x3 + x4 + // Row coefficients are { -1, 1, 0 } // Equivalently x1 = -0.5 x0 + 0.5 x2 + 0.5 x3 - 0.5 x4 - // Rows coefficients are { -1, 1, 0 } + // Row coefficients are { 1, -1, 0 } updateTableauRow._scalar = 0; updateTableauRow._lhs = 2; updateTableauRow._row[0] = TableauRow::Entry( 0, 1 ); @@ -123,13 +124,13 @@ class BoundsExplainerTestSuite : public CxxTest::TestSuite updateTableauRow._row[3] = TableauRow::Entry( 4, 1 ); updateTableauRow._row[4] = TableauRow::Entry( 5, 0 ); - TS_ASSERT_THROWS_NOTHING( be.injectExplanation( row1, 0, true ) ); - TS_ASSERT_THROWS_NOTHING( be.injectExplanation( row2, 1, true ) ); - TS_ASSERT_THROWS_NOTHING( be.injectExplanation( row3, 1, false ) ); // Will not be possible in an actual tableau + TS_ASSERT_THROWS_NOTHING( be.setExplanation( row1, 0, true ) ); + TS_ASSERT_THROWS_NOTHING( be.setExplanation( row2, 1, true ) ); + TS_ASSERT_THROWS_NOTHING( be.setExplanation( row3, 1, false ) ); // Will not be possible in an actual tableau be.updateBoundExplanation( updateTableauRow, true ); - // Result is { 1, 0, 0 } + 2 * { 0, -1, 0 } + { -1, 1, 0} - Vector res1 { 0, -1, 0 }; + // Result is { 1, 0, 0 } + 2 * { 0, -1, 0 } + { 1, -1, 0} + Vector res1 { 2, -3, 0 }; TS_ASSERT_EQUALS( be.getExplanation( 2, true ), res1 ); be.updateBoundExplanation( updateTableauRow, false, 3 ); @@ -138,19 +139,19 @@ class BoundsExplainerTestSuite : public CxxTest::TestSuite TS_ASSERT_EQUALS( be.getExplanation( 3, false ), res2 ); be.updateBoundExplanation( updateTableauRow, false, 1 ); - // Result is -0.5 * { 1, 0, 0 } + 0.5 * { -1, 2, 5 } - 0.5 * { -1, 1, 0 } - Vector res3 { -0.5, 0.5, 2.5 }; + // Result is -0.5 * { 1, 0, 0 } + 0.5 * { -1, 2, 5 } - 0.5 * { 1, -1, 0 } + Vector res3 { -1.5, 1.5, 2.5 }; TS_ASSERT_EQUALS( be.getExplanation( 1, false ), res3 ); // row3:= x1 = x5 - // Rows coefficients are { 0, 0, -2.5 } + // Row coefficients are { 0, 0, 2.5 } SparseUnsortedList updateSparseRow( 0 ); updateSparseRow.append( 1, -2.5 ); updateSparseRow.append( 5, -2.5 ); be.updateBoundExplanationSparse( updateSparseRow, true, 5 ); - // Result is ( 1 / 2.5 ) * ( -2.5 ) * { -0.5, 0.5, 2.5 } + ( 1 / 2.5 ) * { 0, 0, -2.5 } - Vector res4 { 0.5, -0.5, -3.5 }; + // Result is ( 1 / 2.5 ) * ( -2.5 ) * { -1.5, 1.5, 2.5 } + ( 1 / 2.5 ) * { 0, 0, 2.5 } + Vector res4 { 1.5, -1.5, -1.5 }; TS_ASSERT_EQUALS( be.getExplanation( 5, true ), res4 ); } }; From c7abff0926b275576d4db76707fc3d8fc8237014 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Tue, 15 Mar 2022 17:28:46 +0200 Subject: [PATCH 055/165] Update Test_UnsatCertificateNode.h Match changes in UnsatCertificateNode --- src/proofs/tests/Test_UnsatCertificateNode.h | 88 +++----------------- 1 file changed, 12 insertions(+), 76 deletions(-) diff --git a/src/proofs/tests/Test_UnsatCertificateNode.h b/src/proofs/tests/Test_UnsatCertificateNode.h index 25797c15c4..0171fd16d1 100644 --- a/src/proofs/tests/Test_UnsatCertificateNode.h +++ b/src/proofs/tests/Test_UnsatCertificateNode.h @@ -34,7 +34,7 @@ class UnsatCertificateNodeTestSuite : public CxxTest::TestSuite Vector groundUpperBounds( 6, 1 ); Vector groundLowerBounds( 6, 0 ); - auto *root = new UnsatCertificateNode(&initialTableau, groundUpperBounds, groundLowerBounds ); + auto *root = new UnsatCertificateNode( NULL, PiecewiseLinearCaseSplit() ); ReluConstraint relu = ReluConstraint( 1, 3 ); auto splits = relu.getCaseSplits(); @@ -43,8 +43,8 @@ class UnsatCertificateNodeTestSuite : public CxxTest::TestSuite PiecewiseLinearCaseSplit split1 = splits.back(); PiecewiseLinearCaseSplit split2 = splits.front(); - auto *child1 = new UnsatCertificateNode(root, split1 ); - auto *child2 = new UnsatCertificateNode(root, split2 ); + auto *child1 = new UnsatCertificateNode( root, split1 ); + auto *child2 = new UnsatCertificateNode( root, split2 ); TS_ASSERT_EQUALS( child1->getParent(), root ); TS_ASSERT_EQUALS( child2->getParent(), root ); @@ -72,12 +72,10 @@ class UnsatCertificateNodeTestSuite : public CxxTest::TestSuite Vector groundUpperBounds( 1, 1 ); Vector groundLowerBounds( 1, 0 ); - UnsatCertificateNode root = UnsatCertificateNode(&initialTableau, groundUpperBounds, groundLowerBounds ); - auto upperBoundExplanation = new double[1]; - upperBoundExplanation[0] = 1; + UnsatCertificateNode root = UnsatCertificateNode( NULL, PiecewiseLinearCaseSplit() ); + auto upperBoundExplanation = Vector(1, 1); - auto lowerBoundExplanation = new double[1]; - lowerBoundExplanation[0] = -1; + auto lowerBoundExplanation = Vector(1, 1); auto *contradiction = new Contradiction( 0, upperBoundExplanation, lowerBoundExplanation ); root.setContradiction( contradiction ); @@ -93,11 +91,12 @@ class UnsatCertificateNodeTestSuite : public CxxTest::TestSuite Vector groundUpperBounds( 1, 1 ); Vector groundLowerBounds( 1, -1 ); - UnsatCertificateNode root = UnsatCertificateNode(&initialTableau, groundUpperBounds, groundLowerBounds ); + UnsatCertificateNode root = UnsatCertificateNode( NULL, PiecewiseLinearCaseSplit() ); + Vector emptyVec; - auto explanation1 = std::shared_ptr( new PLCExplanation( 1, 1, 0, UPPER, UPPER, NULL, RELU, 0 ) ); - auto explanation2 = std::shared_ptr( new PLCExplanation( 1, 1, -1, UPPER, UPPER, NULL, RELU, 1 ) ); - auto explanation3 = std::shared_ptr( new PLCExplanation( 1, 1, -4, UPPER, UPPER, NULL, RELU, 2 ) ); + auto explanation1 = std::shared_ptr( new PLCExplanation( 1, 1, 0, UPPER, UPPER, emptyVec, RELU, 0 ) ); + auto explanation2 = std::shared_ptr( new PLCExplanation( 1, 1, -1, UPPER, UPPER, emptyVec, RELU, 1 ) ); + auto explanation3 = std::shared_ptr( new PLCExplanation( 1, 1, -4, UPPER, UPPER, emptyVec, RELU, 2 ) ); TS_ASSERT( root.getPLCExplanations().empty() ); @@ -119,67 +118,4 @@ class UnsatCertificateNodeTestSuite : public CxxTest::TestSuite TS_ASSERT_EQUALS( root.getPLCExplanations().size(), 1U ); TS_ASSERT_EQUALS( root.getPLCExplanations().front(), explanation1 ); } - - /* - Tests certification methods - */ - void testCertification() - { - Vector row1 = { 1, 0, -1, 0, 1, 0, 0 }; // Row of ReLU1 - Vector row2 = { 0, 1, 0, -1, 0, 1, 0 }; // Row of ReLU2 - Vector row3 = { 0.5, 0, -1, 0, 0, 0, 1 }; - Vector> initialTableau = { row1, row2, row3 }; - - Vector groundUpperBounds( row1.size(), 1 ); - Vector groundLowerBounds( row1.size(), 0 ); - groundUpperBounds[6] = 2; - - // Set a complete tree of depth 3, using 2 ReLUs - auto *root = new UnsatCertificateNode(&initialTableau, groundUpperBounds, groundLowerBounds ); - - ReluConstraint relu1 = ReluConstraint( 0, 2 ); // aux var is 4 - ReluConstraint relu2 = ReluConstraint( 1, 3 ) ; // aux var is 5 - - root->addProblemConstraint( RELU, { 0, 2, 4 }, PHASE_NOT_FIXED ); - root->addProblemConstraint( RELU, { 1, 3, 5 }, PHASE_NOT_FIXED ); - - auto splits1 = relu1.getCaseSplits(); - auto splits2 = relu2.getCaseSplits(); - TS_ASSERT_EQUALS( splits1.size(), 2U ); - TS_ASSERT_EQUALS( splits2.size(), 2U ); - - PiecewiseLinearCaseSplit split1_1 = splits1.back(); - PiecewiseLinearCaseSplit split1_2 = splits1.front(); - - PiecewiseLinearCaseSplit split2_1 = splits2.back(); - PiecewiseLinearCaseSplit split2_2 = splits2.front(); - - TS_ASSERT_EQUALS( split1_2.getBoundTightenings().size(), 2U ); - - auto *child1 = new UnsatCertificateNode(root, split1_1 ); // Child with missing aux tightening - auto *child2 = new UnsatCertificateNode(root, split1_2 ); - - auto *child2_1 = new UnsatCertificateNode(child2, split2_1 ); - auto *child2_2 = new UnsatCertificateNode(child2, split2_2 ); - - root->setVisited(); - child2->setVisited(); - child1->setVisited(); - child2_1->setVisited(); - - // Visited leaves have no contradiction, so certification will fail - TS_ASSERT( !root->certify() ); - - // Mark visited leaves with flags that immediately certify them - child1->setSATSolution(); - child2_1->shouldDelegate( 0, DelegationStatus::DELEGATE_DONT_SAVE ); - TS_ASSERT( root->certify() ); - - // Visited leaf should be checked as well - // Certification should fail since child2_2 has no contradiction - child2_2->setVisited(); - TS_ASSERT( !root->certify() ); - - delete root; - } -}; \ No newline at end of file +}; From ccf10776b3790e24252f69d230e0fe9cb2923f18 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Tue, 15 Mar 2022 17:30:05 +0200 Subject: [PATCH 056/165] Update Test_UnsatCertificateUtils.h --- src/proofs/tests/Test_UnsatCertificateUtils.h | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/proofs/tests/Test_UnsatCertificateUtils.h b/src/proofs/tests/Test_UnsatCertificateUtils.h index e02524b917..e31daebade 100644 --- a/src/proofs/tests/Test_UnsatCertificateUtils.h +++ b/src/proofs/tests/Test_UnsatCertificateUtils.h @@ -29,25 +29,26 @@ class UnsatCertificateUtilsTestSuite : public CxxTest::TestSuite Vector groundUpperBounds = { 1, 1 ,1 ,1 ,1 ,1 }; Vector groundLowerBounds = { 0, 0, 0, 0, 0, 0 }; - - Vector explanation = { 1, 1, 0 }; - // Linear combination is x0 = x1 - x2 - x3 - x4, thus explanation combination is only lhs Vector rowCombination; + double explanation[3] = { 1, 1, 0 }; + // Linear combination is x0 = 2x0 - x1 + x2 + x3 + x4, thus explanation combination is only lhs + // Checks computation method only, since no actual bound will be explained this way + unsigned var = 0; UNSATCertificateUtils::getExplanationRowCombination( var, rowCombination, explanation, initialTableau ); auto it = rowCombination.begin(); - TS_ASSERT_EQUALS( *it, 0 ); - ++it; - TS_ASSERT_EQUALS( *it, 1 ); + TS_ASSERT_EQUALS( *it, 2 ); ++it; TS_ASSERT_EQUALS( *it, -1 ); ++it; - TS_ASSERT_EQUALS( *it, -1 ); + TS_ASSERT_EQUALS( *it, 1 ); ++it; - TS_ASSERT_EQUALS( *it, -1 ); + TS_ASSERT_EQUALS( *it, 1 ); + ++it; + TS_ASSERT_EQUALS( *it, 1 ); ++it; TS_ASSERT_EQUALS( *it, 0 ); ++it; @@ -55,6 +56,6 @@ class UnsatCertificateUtilsTestSuite : public CxxTest::TestSuite double explainedBound = UNSATCertificateUtils::computeBound( var, true, explanation, initialTableau, groundUpperBounds, groundLowerBounds ); - TS_ASSERT_EQUALS( explainedBound, 1 ); + TS_ASSERT_EQUALS( explainedBound, 5 ); } -}; \ No newline at end of file +}; From 6f9c5110327e59a67486cabc41058da3e932a514 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Tue, 15 Mar 2022 17:30:46 +0200 Subject: [PATCH 057/165] Add files via upload --- src/proofs/tests/Test_Checker.h | 86 +++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 src/proofs/tests/Test_Checker.h diff --git a/src/proofs/tests/Test_Checker.h b/src/proofs/tests/Test_Checker.h new file mode 100644 index 0000000000..bb04748377 --- /dev/null +++ b/src/proofs/tests/Test_Checker.h @@ -0,0 +1,86 @@ +/********************* */ +/*! \file Test_Checker.h + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#include "Checker.h" +#include "context/cdlist.h" +#include "context/context.h" +#include + +class CheckerTestSuite : public CxxTest::TestSuite +{ +public: + /* + Tests certification methods + */ + void testCertification() + { + Vector row1 = { 1, 0, -1, 0, 1, 0, 0 }; // Row of ReLU1 + Vector row2 = { 0, 1, 0, -1, 0, 1, 0 }; // Row of ReLU2 + Vector row3 = { 0.5, 0, -1, 0, 0, 0, 1 }; + Vector> initialTableau = { row1, row2, row3 }; + + Vector groundUpperBounds( row1.size(), 1 ); + Vector groundLowerBounds( row1.size(), 0 ); + groundUpperBounds[6] = 2; + + ReluConstraint relu1 = ReluConstraint( 0, 2 ); // aux var is 4 + ReluConstraint relu2 = ReluConstraint( 1, 3 ) ; // aux var is 5 + List constraintsList = { &relu1, &relu2 }; + + // Set a complete tree of depth 3, using 2 ReLUs + auto *root = new UnsatCertificateNode( NULL, PiecewiseLinearCaseSplit() ); + + Checker checker( root, initialTableau, groundUpperBounds, groundLowerBounds, constraintsList ); + + auto splits1 = relu1.getCaseSplits(); + auto splits2 = relu2.getCaseSplits(); + TS_ASSERT_EQUALS( splits1.size(), 2U ); + TS_ASSERT_EQUALS( splits2.size(), 2U ); + + PiecewiseLinearCaseSplit split1_1 = splits1.back(); + PiecewiseLinearCaseSplit split1_2 = splits1.front(); + + PiecewiseLinearCaseSplit split2_1 = splits2.back(); + PiecewiseLinearCaseSplit split2_2 = splits2.front(); + + TS_ASSERT_EQUALS( split1_2.getBoundTightenings().size(), 2U ); + + // Child with missing aux tightening + auto *child1 = new UnsatCertificateNode( root, split1_1 ); + auto *child2 = new UnsatCertificateNode( root, split1_2 ); + + auto *child2_1 = new UnsatCertificateNode( child2, split2_1 ); + auto *child2_2 = new UnsatCertificateNode( child2, split2_2 ); + + root->setVisited(); + child2->setVisited(); + child1->setVisited(); + child2_1->setVisited(); + + // Visited leaves have no contradiction, so certification will fail + TS_ASSERT( !checker.check() ); + + // Mark visited leaves with flags that immediately certify them, for debugging purpose only + child1->setSATSolutionFlag(); + child2_1->setDelegationStatus( DelegationStatus::DELEGATE_DONT_SAVE ); + TS_ASSERT( checker.check() ); + + // Visited leaf should be checked as well + // Certification should fail since child2_2 has no contradiction + child2_2->setVisited(); + TS_ASSERT( !checker.check() ); + + delete root; + } +}; From 512f34ddc0baf27270af4e8395c41701439715a6 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Tue, 15 Mar 2022 17:35:18 +0200 Subject: [PATCH 058/165] Add files via upload --- src/proofs/Checker.cpp | 350 +++++++++++++++++++++++++++++++++++++++++ src/proofs/Checker.h | 95 +++++++++++ 2 files changed, 445 insertions(+) create mode 100644 src/proofs/Checker.cpp create mode 100644 src/proofs/Checker.h diff --git a/src/proofs/Checker.cpp b/src/proofs/Checker.cpp new file mode 100644 index 0000000000..4681971988 --- /dev/null +++ b/src/proofs/Checker.cpp @@ -0,0 +1,350 @@ +/********************* */ +/*! \file Checker.cpp + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#include "Checker.h" + +Checker::Checker( const UnsatCertificateNode *root, + const Vector> &initialTableau, + const Vector &groundUpperBounds, + const Vector &groundLowerBounds, + const List &problemConstraints ) + : _root( root ) + , _initialTableau( initialTableau ) + , _groundUpperBounds( groundUpperBounds ) + , _groundLowerBounds( groundLowerBounds ) + , _problemConstraints( problemConstraints ) + , _delegationCounter( 0 ) +{ + for ( auto constraint : problemConstraints ) + constraint->setPhaseStatus( PHASE_NOT_FIXED ); +} + +bool Checker::check() +{ + return checkNode( _root ); +} + +bool Checker::checkNode( const UnsatCertificateNode *node ) +{ + Vector groundUpperBoundsBackup( _groundUpperBounds ); + Vector groundLowerBoundsBackup( _groundLowerBounds ); + + _upperBoundChanges.push( {} ); + _lowerBoundChanges.push( {} ); + + // Update ground bounds according to head split + for ( const auto &tightening : node->getSplit().getBoundTightenings() ) + { + auto &temp = tightening._type == Tightening::UB ? _groundUpperBounds : _groundLowerBounds; + temp[tightening._variable] = tightening._value; + + tightening._type == Tightening::UB ? _upperBoundChanges.top().insert( tightening._variable ) : _lowerBoundChanges.top().insert( tightening._variable ); + } + + // Check all PLC bound propagations + if ( !checkAllPLCExplanations( node, UNSATCertificateUtils::CERTIFICATION_TOLERANCE ) ) + return false; + + // Save to file if marked + if ( node->getDelegationStatus() == DelegationStatus::DELEGATE_SAVE ) + writeToFile(); + + // Skip if leaf has the SAT solution, or if was marked to delegate + if ( node->getSATSolutionFlag() || node->getDelegationStatus() != DelegationStatus::DONT_DELEGATE ) + return true; + + // Check if it is a leaf, and if so use contradiction to check + // return true iff it is certified + if ( node->isValidLeaf() ) + return checkContradiction( node ); + + // If not a valid leaf, skip only if it is leaf that was not visited + if ( !node->getVisited() && !node->getContradiction() && node->getChildren().empty() ) + return true; + + // Otherwise, should be a valid non-leaf node + if ( !node->isValidNonLeaf() ) + return false; + + // If so, check all children and return true iff all children are certified + // Also make sure that they are split correctly (i.e by ReLU constraint or by a single var) + bool answer = true; + List childrenSplits; + + for ( const auto &child : node->getChildren() ) + childrenSplits.append( child->getSplit() ); + + auto *childrenSplitConstraint = getCorrespondingReLUConstraint( childrenSplits ); + + ASSERT( !childrenSplitConstraint || childrenSplitConstraint->getType() == RELU ); + + if ( !checkSingleVarSplits( childrenSplits ) && !childrenSplitConstraint ) + return false; + + for ( const auto &child : node->getChildren() ) + { + // Fix the phase of the constraint corresponding to the children + if ( childrenSplitConstraint && childrenSplitConstraint->getType() == PiecewiseLinearFunctionType::RELU ) + { + auto tightenings = child->getSplit().getBoundTightenings(); + if ( tightenings.front()._type == Tightening::LB || tightenings.back()._type == Tightening::LB ) + childrenSplitConstraint->setPhaseStatus( RELU_PHASE_ACTIVE ); + else + childrenSplitConstraint->setPhaseStatus( RELU_PHASE_INACTIVE ); + } + + if ( !checkNode( child ) ) + answer = false; + } + + // Revert all changes + if ( childrenSplitConstraint ) + childrenSplitConstraint->setPhaseStatus( PHASE_NOT_FIXED ); + + // Revert only bounds that where changed during checking the current node + for ( unsigned i : _upperBoundChanges.top() ) + _groundUpperBounds[i] = groundUpperBoundsBackup[i]; + + for ( unsigned i : _lowerBoundChanges.top() ) + _groundLowerBounds[i] = groundLowerBoundsBackup[i]; + + _upperBoundChanges.pop(); + _lowerBoundChanges.pop(); + + return answer; +} + +bool Checker::checkContradiction( const UnsatCertificateNode *node ) const +{ + ASSERT( node->isValidLeaf() && !node->getSATSolutionFlag() ); + unsigned var = node->getContradiction()->getVar(); + + double computedUpper = explainBound( var, true, node->getContradiction()->getUpperBoundExplanation() ); + double computedLower = explainBound( var, false, node->getContradiction()->getLowerBoundExplanation() ); + + return computedUpper < computedLower; +} + +bool Checker::checkAllPLCExplanations( const UnsatCertificateNode *node, double epsilon ) +{ + // Create copies of the gb, check for their validity, and pass these changes to all the children + // Assuming the splits of the children are ok. + // NOTE, this will change as PLCExplanation will + for ( const auto &plcExplanation : node->getPLCExplanations() ) + { + bool constraintMatched = false; + bool tighteningMatched = false; + auto explanationVector = Vector( 0, 0 ); + List constraintVars; + + unsigned causingVar = plcExplanation->getCausingVar(); + unsigned affectedVar = plcExplanation->getAffectedVar(); + double bound = plcExplanation->getBound(); + double *explanation = plcExplanation->getExplanation(); + BoundType causingVarBound = plcExplanation->getCausingVarBound(); + BoundType affectedVarBound = plcExplanation->getAffectedVarBound(); + PiecewiseLinearFunctionType constraintType = plcExplanation->getConstraintType(); + + double explainedBound = UNSATCertificateUtils::computeBound( causingVar, causingVarBound == UPPER, explanation, _initialTableau, _groundUpperBounds, _groundLowerBounds ); + unsigned b = 0; + unsigned f = 0; + unsigned aux = 0; + + // Make sure propagation was made by a problem constraint + for ( auto &constraint : _problemConstraints ) + { + constraintVars = constraint->getParticipatingVariables(); + if ( constraintType == PiecewiseLinearFunctionType::RELU && constraintVars.exists( affectedVar ) && constraintVars.exists( causingVar ) ) + { + Vector conVec( constraintVars.begin(), constraintVars.end() ); + b = conVec[0]; + f = conVec[1]; + aux = conVec[2]; + constraintMatched = true; + + // If explanation is phase fixing, mark it + if ( ( affectedVarBound == LOWER && affectedVar == f && FloatUtils::isPositive( bound ) ) || ( affectedVarBound == UPPER && affectedVar == aux && FloatUtils::isZero( bound ) ) ) + constraint->setPhaseStatus( RELU_PHASE_ACTIVE ); + else if ( ( affectedVarBound == LOWER && affectedVar == aux && FloatUtils::isPositive( bound ) ) || ( affectedVarBound == UPPER && affectedVar == f && FloatUtils::isZero( bound ) ) ) + constraint->setPhaseStatus( RELU_PHASE_INACTIVE ); + } + } + + if ( !constraintMatched ) + return false; + + if ( causingVar != b && causingVar != f && causingVar != aux ) + return false; + + // Make sure the explanation is explained using a ReLU bound tightening. Cases are matching each rule in ReluConstraint.cpp + // We allow explained bound to be tighter than the ones recorded (since an explanation can explain tighter bounds), and an epsilon sized error is tolerated. + + // If lb of b is non negative, then ub of aux is 0 + if ( causingVar == b && causingVarBound == LOWER && affectedVar == aux && affectedVarBound == UPPER && FloatUtils::isZero( bound ) && !FloatUtils::isNegative( explainedBound + epsilon ) ) + tighteningMatched = true; + + // If lb of f is positive, then ub if aux is 0 + else if ( causingVar == f && causingVarBound == LOWER && affectedVar == aux && affectedVarBound == UPPER && FloatUtils::isZero( bound ) && FloatUtils::isPositive( explainedBound + epsilon ) ) + tighteningMatched = true; + + // If lb of b is positive x, then lb of aux is -x + else if ( causingVar == b && causingVarBound == LOWER && affectedVar == aux &&affectedVarBound == UPPER && FloatUtils::gte(explainedBound, - bound - epsilon ) && bound > 0 ) + tighteningMatched = true; + + // If lb of aux is positive, then ub of f is 0 + else if ( causingVar == aux && causingVarBound ==LOWER && affectedVar == f && affectedVarBound == UPPER && FloatUtils::isZero( bound ) && FloatUtils::isPositive( explainedBound + epsilon ) ) + tighteningMatched = true; + + // If lb of f is negative, then it is 0 + else if ( causingVar == f && causingVarBound == LOWER && affectedVar == f && affectedVarBound == LOWER && FloatUtils::isZero( bound ) && FloatUtils::isNegative( explainedBound - epsilon ) ) + tighteningMatched = true; + + // Propagate ub from f to b + else if ( causingVar == f && causingVarBound == UPPER && affectedVar == b && affectedVarBound == UPPER && FloatUtils::lte( explainedBound, bound + epsilon ) ) + tighteningMatched = true; + + // If ub of b is non positive, then ub of f is 0 + else if ( causingVar == b && causingVarBound == UPPER && affectedVar == f && affectedVarBound == UPPER && FloatUtils::isZero( bound ) && !FloatUtils::isPositive( explainedBound - epsilon ) ) + tighteningMatched = true; + + // If ub of b is non positive x, then lb of aux is -x + else if ( causingVar == b && causingVarBound == UPPER && affectedVar == aux && affectedVarBound == LOWER && bound > 0 && !FloatUtils::isPositive( explainedBound - epsilon ) && FloatUtils::lte( explainedBound, -bound + epsilon) ) + tighteningMatched = true; + + // If ub of b is positive, then propagate to f ( positivity of explained bound is not checked since negative explained ub can always explain positive bound ) + else if ( causingVar == b && causingVarBound == UPPER && affectedVar == f && affectedVarBound == UPPER && FloatUtils::isPositive( bound ) && FloatUtils::lte( explainedBound, bound + epsilon ) ) + tighteningMatched = true; + + // If ub of aux is x, then lb of b is -x + else if ( causingVar == aux && causingVarBound == UPPER && affectedVar == b && affectedVarBound == LOWER && FloatUtils::lte( explainedBound, -bound + epsilon ) ) + tighteningMatched = true; + + if ( !tighteningMatched ) + return false; + + // If so, update the ground bounds and continue + Vector &temp = affectedVarBound ? _groundUpperBounds : _groundLowerBounds; + bool isTighter = affectedVarBound ? FloatUtils::lt( bound, temp[affectedVar] ) : FloatUtils::gt( bound, temp[affectedVar] ); + if ( isTighter ) + { + temp[affectedVar] = bound; + ASSERT( !_upperBoundChanges.empty() && !_lowerBoundChanges.empty() ); + affectedVarBound == UPPER ? _upperBoundChanges.top().insert( affectedVar ) : _lowerBoundChanges.top().insert( affectedVar ); + } + } + return true; +} + +double Checker::explainBound( unsigned var, bool isUpper, const double *explanation ) const +{ + return UNSATCertificateUtils::computeBound( var, isUpper, explanation, _initialTableau, _groundUpperBounds, _groundLowerBounds ); +} + +PiecewiseLinearConstraint *Checker::getCorrespondingReLUConstraint( const List &splits ) +{ + if ( splits.size() != 2 ) + return NULL; + + auto firstSplitTightenings = splits.front().getBoundTightenings(); + auto secondSplitTightenings = splits.back().getBoundTightenings(); + + // Find the LB tightening, its var is b + auto &activeSplit = firstSplitTightenings.front()._type == Tightening::LB ? firstSplitTightenings : secondSplitTightenings; + auto &inactiveSplit = firstSplitTightenings.front()._type == Tightening::LB ? secondSplitTightenings : firstSplitTightenings; + + unsigned b = activeSplit.front()._variable; + unsigned aux = activeSplit.back()._variable; + unsigned f = inactiveSplit.back()._variable; + + // Aux var may or may not be used + if ( ( activeSplit.size() != 2 && activeSplit.size() != 1 ) || inactiveSplit.size() != 2 ) + return NULL; + + if ( FloatUtils::areDisequal( inactiveSplit.back()._value, 0.0 ) || FloatUtils::areDisequal( inactiveSplit.front()._value, 0.0 ) || FloatUtils::areDisequal( activeSplit.back()._value, 0.0 ) || FloatUtils::areDisequal( activeSplit.front()._value, 0.0 ) ) + return NULL; + + // Check that f = b + aux corresponds to a problem constraints + PiecewiseLinearConstraint *correspondingConstraint = NULL; + for ( auto &constraint : _problemConstraints ) + { + auto constraintVars = constraint->getParticipatingVariables(); + if ( constraint->getType() == PiecewiseLinearFunctionType::RELU && constraintVars.front() == b && constraintVars.exists( f ) && ( activeSplit.size() == 1 || constraintVars.back() == aux ) ) + correspondingConstraint = constraint; + } + + // Return the constraint for which f=relu(b) + return correspondingConstraint; +} + +void Checker::writeToFile() +{ + List leafInstance; + + // Write with SmtLibWriter + unsigned b, f; + unsigned m = _initialTableau.size(); + unsigned n = _groundUpperBounds.size(); + + SmtLibWriter::addHeader( n, leafInstance ); + SmtLibWriter::addGroundUpperBounds( _groundUpperBounds, leafInstance ); + SmtLibWriter::addGroundLowerBounds( _groundLowerBounds, leafInstance ); + + for ( unsigned i = 0; i < m; ++i ) + SmtLibWriter::addTableauRow( ( _initialTableau )[i], leafInstance ); + + for ( auto &constraint : _problemConstraints ) + if ( constraint->getType() == PiecewiseLinearFunctionType::RELU ) + { + auto vars = constraint->getParticipatingVariables(); + b = vars.front(); + vars.popBack(); + f = vars.back(); + SmtLibWriter::addReLUConstraint( b, f, constraint->getPhaseStatus(), leafInstance ); + } + + SmtLibWriter::addFooter( leafInstance ); + File file ( "delegated" + std::to_string( _delegationCounter ) + ".smtlib" ); + SmtLibWriter::writeInstanceToFile( file, leafInstance ); + + ++_delegationCounter; +} + +bool Checker::checkSingleVarSplits( const List &splits ) +{ + if ( splits.size() != 2 ) + return false; + + // These are singletons to tightenings + auto &frontSplitTightenings = splits.front().getBoundTightenings(); + auto &backSplitTightenings = splits.back().getBoundTightenings(); + + if ( frontSplitTightenings.size() != 1 || backSplitTightenings.size() != 1 ) + return false; + + // These are the elements in the singletons + auto &frontSplitOnlyTightening = frontSplitTightenings.front(); + auto &backSplitOnlyTightening = backSplitTightenings.front(); + + // Check that cases are of the same var and bound, where the for one the bound is UB, and for the other is LB + if ( frontSplitOnlyTightening._variable != backSplitOnlyTightening._variable ) + return false; + + if ( FloatUtils::areDisequal( frontSplitOnlyTightening._value, backSplitOnlyTightening._value ) ) + return false; + + if ( frontSplitOnlyTightening._type == backSplitOnlyTightening._type ) + return false; + + return true; +} diff --git a/src/proofs/Checker.h b/src/proofs/Checker.h new file mode 100644 index 0000000000..9436c5a951 --- /dev/null +++ b/src/proofs/Checker.h @@ -0,0 +1,95 @@ +/********************* */ +/*! \file Checker.h + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#ifndef __Checker_h__ +#define __Checker_h__ + +#include "UnsatCertificateNode.h" +#include "Set.h" +#include "Stack.h" + +/* + A class responsible to certify the UnsatCertificate +*/ +class Checker +{ +public: + Checker( const UnsatCertificateNode *root, + const Vector> &initialTableau, + const Vector &groundUpperBounds, + const Vector &groundLowerBounds, + const List &_problemConstraints ); + + /* + Checks if the tree is indeed a correct proof of unsatisfiability. + If called from a certificate of a satisfiable query, checks that all proofs for bound propagations and unsatisfiable leaves are correct + */ + bool check(); + +private: + // The root of the tree to check + const UnsatCertificateNode *_root; + + // Additional context data + const Vector> &_initialTableau; + + Vector _groundUpperBounds; + Vector _groundLowerBounds; + + List _problemConstraints; + + unsigned _delegationCounter; + + // Keeps track of bounds changes, so only stored bounds will be reverted when traveling the tree + Stack> _upperBoundChanges; + Stack> _lowerBoundChanges; + + + /* + Checks a node in the certificate tree + */ + bool checkNode( const UnsatCertificateNode *node ); + + /* + Return true iff the changes in the ground bounds are certified, with tolerance to errors with at most size epsilon + */ + bool checkAllPLCExplanations( const UnsatCertificateNode *node, double epsilon ); + + /* + Checks a contradiction + */ + bool checkContradiction( const UnsatCertificateNode *node ) const; + + /* + Computes a bound according to an explanation + */ + double explainBound( unsigned var, bool isUpper, const double *explanation ) const; + + /* + Write the data marked to delegate to a smtlib file format + */ + void writeToFile(); + + /* + Return a pointer to the problem constraint representing the split + */ + PiecewiseLinearConstraint *getCorrespondingReLUConstraint( const List &splits ); + + /* + Return true iff a list of splits represents a splits over a single variable + */ + bool checkSingleVarSplits( const List &splits ); +}; + +#endif //__Checker_h__ \ No newline at end of file From 1c511a759f493c20d686b48f4d060ee549c6787b Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Tue, 15 Mar 2022 17:42:50 +0200 Subject: [PATCH 059/165] Update Checker.cpp Added a couple of consts --- src/proofs/Checker.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/proofs/Checker.cpp b/src/proofs/Checker.cpp index 4681971988..d918c4b15f 100644 --- a/src/proofs/Checker.cpp +++ b/src/proofs/Checker.cpp @@ -151,7 +151,7 @@ bool Checker::checkAllPLCExplanations( const UnsatCertificateNode *node, double unsigned causingVar = plcExplanation->getCausingVar(); unsigned affectedVar = plcExplanation->getAffectedVar(); double bound = plcExplanation->getBound(); - double *explanation = plcExplanation->getExplanation(); + const double *explanation = plcExplanation->getExplanation(); BoundType causingVarBound = plcExplanation->getCausingVarBound(); BoundType affectedVarBound = plcExplanation->getAffectedVarBound(); PiecewiseLinearFunctionType constraintType = plcExplanation->getConstraintType(); @@ -162,7 +162,7 @@ bool Checker::checkAllPLCExplanations( const UnsatCertificateNode *node, double unsigned aux = 0; // Make sure propagation was made by a problem constraint - for ( auto &constraint : _problemConstraints ) + for ( const auto &constraint : _problemConstraints ) { constraintVars = constraint->getParticipatingVariables(); if ( constraintType == PiecewiseLinearFunctionType::RELU && constraintVars.exists( affectedVar ) && constraintVars.exists( causingVar ) ) From 9178576008b5435e440df8cc259f1128d3c5b6bf Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Tue, 15 Mar 2022 17:44:31 +0200 Subject: [PATCH 060/165] Update Contradiction.cpp Class is responsible for memory allocation. Added getters. --- src/proofs/Contradiction.cpp | 39 ++++++++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/src/proofs/Contradiction.cpp b/src/proofs/Contradiction.cpp index af0cac2f62..76ecb41fc8 100644 --- a/src/proofs/Contradiction.cpp +++ b/src/proofs/Contradiction.cpp @@ -12,14 +12,26 @@ ** [[ Add lengthier description here ]] **/ -#include #include "Contradiction.h" -Contradiction::Contradiction( unsigned var, double *upperBoundExplanation, double *lowerBoundExplanation ) - :_var( var ) - ,_upperBoundExplanation( upperBoundExplanation ) - ,_lowerBoundExplanation( lowerBoundExplanation ) +Contradiction::Contradiction( unsigned var, const Vector &upperBoundExplanation, const Vector &lowerBoundExplanation ) + : _var( var ) { + if ( upperBoundExplanation.empty() ) + _upperBoundExplanation = NULL; + else + { + _upperBoundExplanation = new double[upperBoundExplanation.size()]; + std::copy( upperBoundExplanation.begin(), upperBoundExplanation.end(), _upperBoundExplanation ); + } + + if ( lowerBoundExplanation.empty() ) + _lowerBoundExplanation = NULL; + else + { + _lowerBoundExplanation = new double[lowerBoundExplanation.size()]; + std::copy( lowerBoundExplanation.begin(), lowerBoundExplanation.end(), _lowerBoundExplanation ); + } } Contradiction::~Contradiction() @@ -35,4 +47,19 @@ Contradiction::~Contradiction() delete [] _lowerBoundExplanation; _lowerBoundExplanation = NULL; } -} \ No newline at end of file +} + +unsigned Contradiction::getVar() const +{ + return _var; +} + +const double *Contradiction::getUpperBoundExplanation() const +{ + return _upperBoundExplanation; +} + +const double *Contradiction::getLowerBoundExplanation() const +{ + return _lowerBoundExplanation; +} From 7397b55f7bdb275466e3e9d9f8a06ec7c5e93b40 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Tue, 15 Mar 2022 17:45:18 +0200 Subject: [PATCH 061/165] Update Contradiction.h Class is responsible for memory allocation. Added getters. --- src/proofs/Contradiction.h | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/proofs/Contradiction.h b/src/proofs/Contradiction.h index 39146eaab4..c686ed3d12 100644 --- a/src/proofs/Contradiction.h +++ b/src/proofs/Contradiction.h @@ -15,21 +15,28 @@ #ifndef __Contradiction_h__ #define __Contradiction_h__ +#include "Vector.h" + /* Contains all info relevant for a simple Marabou contradiction - i.e. explanations of contradicting bounds of a variable */ class Contradiction { public: - Contradiction( unsigned var, double *upperBoundExplanation, double *lowerBoundExplanation ); + Contradiction( unsigned var, const Vector &upperBoundExplanation, const Vector &lowerBoundExplanation ); ~Contradiction(); + /* + Getters for all fields + */ + unsigned getVar() const; + const double *getUpperBoundExplanation() const; + const double *getLowerBoundExplanation() const; + private: unsigned _var; double *_upperBoundExplanation; double *_lowerBoundExplanation; - -friend class UnsatCertificateNode; }; -#endif //__Contradiction_h__ \ No newline at end of file +#endif //__Contradiction_h__ From 84087409c6fb5ab3019b12ce215057efa4c087e8 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Tue, 15 Mar 2022 17:46:14 +0200 Subject: [PATCH 062/165] Update PlcExplanation.cpp Class is responsible for memory allocation. Added getters. --- src/proofs/PlcExplanation.cpp | 70 +++++++++++++++++++++++++++++------ 1 file changed, 59 insertions(+), 11 deletions(-) diff --git a/src/proofs/PlcExplanation.cpp b/src/proofs/PlcExplanation.cpp index 4f1ea2cae8..75297df225 100644 --- a/src/proofs/PlcExplanation.cpp +++ b/src/proofs/PlcExplanation.cpp @@ -14,16 +14,29 @@ #include "PlcExplanation.h" -PLCExplanation::PLCExplanation( unsigned causingVar, unsigned affectedVar, double bound, BoundType causingVarBound, BoundType affectedVarBound, double *explanation, PiecewiseLinearFunctionType constraintType, unsigned decisionLevel ) - :_causingVar( causingVar ) - ,_affectedVar( affectedVar ) - ,_bound( bound ) - ,_causingVarBound( causingVarBound ) - ,_affectedVarBound( affectedVarBound ) - ,_explanation( explanation ) - ,_constraintType( constraintType ) - ,_decisionLevel( decisionLevel ) +PLCExplanation::PLCExplanation( unsigned causingVar, + unsigned affectedVar, + double bound, + BoundType causingVarBound, + BoundType affectedVarBound, + const Vector &explanation, + PiecewiseLinearFunctionType constraintType, + unsigned decisionLevel ) + : _causingVar( causingVar ) + , _affectedVar( affectedVar ) + , _bound( bound ) + , _causingVarBound( causingVarBound ) + , _affectedVarBound( affectedVarBound ) + , _constraintType( constraintType ) + , _decisionLevel( decisionLevel ) { + if ( explanation.empty() ) + _explanation = NULL; + else + { + _explanation = new double[explanation.size()]; + std::copy( explanation.begin(), explanation.end(), _explanation ); + } } PLCExplanation::~PLCExplanation() @@ -35,7 +48,42 @@ PLCExplanation::~PLCExplanation() } } -unsigned PLCExplanation::getDecisionLevel() +unsigned PLCExplanation::getCausingVar() const +{ + return _causingVar; +} + +unsigned PLCExplanation::getAffectedVar() const +{ + return _affectedVar; +} + +double PLCExplanation::getBound() const +{ + return _bound; +} + +BoundType PLCExplanation::getCausingVarBound() const +{ + return _causingVarBound; +} + +BoundType PLCExplanation::getAffectedVarBound() const +{ + return _affectedVarBound; +} + +const double *PLCExplanation::getExplanation() const +{ + return _explanation; +} + +PiecewiseLinearFunctionType PLCExplanation::getConstraintType() const +{ + return _constraintType; +} + +unsigned PLCExplanation::getDecisionLevel() const { return _decisionLevel; -} \ No newline at end of file +} From 052860375ca3064fc25da0fc548c44a2b5f046f5 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Tue, 15 Mar 2022 17:48:29 +0200 Subject: [PATCH 063/165] Update PlcExplanation.h Class is responsible for memory allocation. Added getters. --- src/proofs/PlcExplanation.h | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/src/proofs/PlcExplanation.h b/src/proofs/PlcExplanation.h index 68876a3407..7e02a09695 100644 --- a/src/proofs/PlcExplanation.h +++ b/src/proofs/PlcExplanation.h @@ -16,11 +16,12 @@ #define __PlcExplanation_h__ #include "PiecewiseLinearConstraint.h" +#include "Vector.h" -enum BoundType : bool +enum BoundType : unsigned { - UPPER = true, - LOWER = false, + UPPER = 1, + LOWER = 0, }; /* @@ -29,10 +30,29 @@ enum BoundType : bool class PLCExplanation { public: - PLCExplanation( unsigned causingVar, unsigned affectedVar, double bound, BoundType causingVarBound, BoundType affectedVarBound, double *explanation, PiecewiseLinearFunctionType constraintType, unsigned decisionLevel ); + PLCExplanation( unsigned causingVar, + unsigned affectedVar, + double bound, + BoundType causingVarBound, + BoundType affectedVarBound, + const Vector &explanation, + PiecewiseLinearFunctionType constraintType, + unsigned decisionLevel ); + ~PLCExplanation(); - unsigned getDecisionLevel(); + + /* + Getters for all fields + */ + unsigned getCausingVar() const; + unsigned getAffectedVar() const; + double getBound() const; + BoundType getCausingVarBound() const; + BoundType getAffectedVarBound() const; + const double *getExplanation() const; + PiecewiseLinearFunctionType getConstraintType() const; + unsigned getDecisionLevel() const; private: unsigned _causingVar; @@ -43,8 +63,6 @@ class PLCExplanation double *_explanation; PiecewiseLinearFunctionType _constraintType; unsigned _decisionLevel; - -friend class UnsatCertificateNode; }; -#endif //__PlcExplanation_h__ \ No newline at end of file +#endif //__PlcExplanation_h__ From 452427c3a6ec3d10f744b910d57941a6883f433c Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Tue, 15 Mar 2022 17:48:58 +0200 Subject: [PATCH 064/165] Update Checker.cpp --- src/proofs/Checker.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/proofs/Checker.cpp b/src/proofs/Checker.cpp index d918c4b15f..61f32cbadd 100644 --- a/src/proofs/Checker.cpp +++ b/src/proofs/Checker.cpp @@ -234,7 +234,7 @@ bool Checker::checkAllPLCExplanations( const UnsatCertificateNode *node, double return false; // If so, update the ground bounds and continue - Vector &temp = affectedVarBound ? _groundUpperBounds : _groundLowerBounds; + Vector &temp = affectedVarBound == UPPER ? _groundUpperBounds : _groundLowerBounds; bool isTighter = affectedVarBound ? FloatUtils::lt( bound, temp[affectedVar] ) : FloatUtils::gt( bound, temp[affectedVar] ); if ( isTighter ) { From 3447bb4f3a98c7714d3108ab9c7b4cebc5624d81 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Tue, 15 Mar 2022 17:53:08 +0200 Subject: [PATCH 065/165] Update UnsatCertificateNode.cpp Moved certification methods to Checker class --- src/proofs/UnsatCertificateNode.cpp | 417 +++------------------------- 1 file changed, 43 insertions(+), 374 deletions(-) diff --git a/src/proofs/UnsatCertificateNode.cpp b/src/proofs/UnsatCertificateNode.cpp index 127851324a..bf6b4a74d3 100644 --- a/src/proofs/UnsatCertificateNode.cpp +++ b/src/proofs/UnsatCertificateNode.cpp @@ -15,20 +15,6 @@ #include #include "UnsatCertificateNode.h" - -UnsatCertificateNode::UnsatCertificateNode( Vector> *initialTableau, Vector &groundUpperBounds, Vector &groundLowerBounds ) - : _parent( NULL ) - , _contradiction( NULL ) - , _hasSATSolution( false ) - , _wasVisited( false ) - , _delegationStatus( DelegationStatus::DONT_DELEGATE ) - , _delegationNumber( 0 ) - , _initialTableau( initialTableau ) - , _groundUpperBounds( groundUpperBounds ) - , _groundLowerBounds( groundLowerBounds ) -{ -} - UnsatCertificateNode::UnsatCertificateNode( UnsatCertificateNode *parent, PiecewiseLinearCaseSplit split ) : _parent( parent ) , _contradiction( NULL ) @@ -36,12 +22,9 @@ UnsatCertificateNode::UnsatCertificateNode( UnsatCertificateNode *parent, Piecew , _hasSATSolution( false ) , _wasVisited( false ) , _delegationStatus( DelegationStatus::DONT_DELEGATE ) - , _delegationNumber( 0 ) - , _initialTableau( NULL ) - , _groundUpperBounds( 0 ) - , _groundLowerBounds( 0 ) { - parent->_children.append( this ); + if ( parent ) + parent->_children.append( this ); } UnsatCertificateNode::~UnsatCertificateNode() @@ -72,7 +55,7 @@ void UnsatCertificateNode::setContradiction( Contradiction *contradiction ) _contradiction = contradiction; } -Contradiction *UnsatCertificateNode::getContradiction() const +const Contradiction *UnsatCertificateNode::getContradiction() const { return _contradiction; } @@ -87,412 +70,98 @@ const PiecewiseLinearCaseSplit &UnsatCertificateNode::getSplit() const return _headSplit; } -const List> &UnsatCertificateNode::getPLCExplanations() const +const List &UnsatCertificateNode::getChildren() const { - return _PLCExplanations; + return _children; } -void UnsatCertificateNode::makeLeaf() +const List> &UnsatCertificateNode::getPLCExplanations() const { - for ( UnsatCertificateNode *child : _children ) - { - if ( child ) - { - // Clear reference to root tableau so it will not be deleted - child->_initialTableau = NULL; - delete child; - child = NULL; - } - } - - _children.clear(); + return _PLCExplanations; } -void UnsatCertificateNode::passChangesToChildren( UnsatCertificateProblemConstraint *childrenSplitConstraint ) +void UnsatCertificateNode::addPLCExplanation( std::shared_ptr &explanation ) { - for ( auto *child : _children ) - { - child->copyGroundBounds( _groundUpperBounds, _groundLowerBounds ); - child->_initialTableau = _initialTableau; - - for ( auto &constraint : _problemConstraints ) - { - if ( &constraint != childrenSplitConstraint ) - child->addProblemConstraint( constraint._type, constraint._constraintVars, constraint._status ); - } - - // Add the constraint corresponding to head split with correct phase - if ( childrenSplitConstraint && childrenSplitConstraint->_type == PiecewiseLinearFunctionType::RELU ) - { - if ( child->_headSplit.getBoundTightenings().front()._type == Tightening::LB || child->_headSplit.getBoundTightenings().back()._type == Tightening::LB ) - child->addProblemConstraint( childrenSplitConstraint->_type, childrenSplitConstraint->_constraintVars, PhaseStatus::RELU_PHASE_ACTIVE ); - else - child->addProblemConstraint( childrenSplitConstraint->_type, childrenSplitConstraint->_constraintVars, PhaseStatus::RELU_PHASE_INACTIVE ); - } - } + _PLCExplanations.append( explanation ); } -bool UnsatCertificateNode::certify() +void UnsatCertificateNode::setPLCExplanations( const List> &explanations ) { - // Update ground bounds according to head split - for ( auto &tightening : _headSplit.getBoundTightenings() ) - { - auto &temp = tightening._type == Tightening::UB ? _groundUpperBounds : _groundLowerBounds; - temp[tightening._variable] = tightening._value; - } - - // Certify all PLC bound propagations - if ( !certifyAllPLCExplanations( UNSATCertificateUtils::CERTIFICATION_TOLERANCE ) ) - return false; - - // Save to file if marked - if ( _delegationStatus == DelegationStatus::DELEGATE_SAVE ) - writeLeafToFile(); - - // Skip if laf has the SAT solution, or if was marked to delegate - if ( _hasSATSolution || _delegationStatus != DelegationStatus::DONT_DELEGATE ) - return true; - - // Check if it is a leaf, and if so use contradiction to certify - // return true iff it is certified - if ( isValidLeaf() ) - return certifyContradiction(); - - // If not a valid leaf, skip only if it is leaf that was not visited - if ( !_wasVisited && !_contradiction && _children.empty() ) - return true; - - // Otherwise, should be a valid non-leaf node - if ( !isValidNonLeaf() ) - return false; - - // If so, certify all children and return true iff all children are certified - // Also make sure that they are split correctly (i.e by ReLU constraint or by a single var) - bool answer = true; - List childrenSplits; - - for ( auto &child : _children ) - childrenSplits.append( child->_headSplit ); - - auto *childrenSplitConstraint = getCorrespondingReLUConstraint( childrenSplits ); - if ( !certifySingleVarSplits( childrenSplits ) && !childrenSplitConstraint ) - return false; - - passChangesToChildren( childrenSplitConstraint ); - - for ( auto child : _children ) - if ( !child->certify() ) - answer = false; - - // After all subtree is checked, no use in these vectors. - _groundUpperBounds.clear(); - _groundLowerBounds.clear(); - return answer; + _PLCExplanations.clear(); + _PLCExplanations = explanations; } -bool UnsatCertificateNode::certifyContradiction() +UnsatCertificateNode *UnsatCertificateNode::getChildBySplit( const PiecewiseLinearCaseSplit &split ) const { - ASSERT( isValidLeaf() && !_hasSATSolution ); - unsigned var = _contradiction->_var; - unsigned length = _initialTableau->size(); - - auto upperBoundExplanation = Vector( 0, 0 ); - auto lowerBoundExplanation = Vector( 0, 0 ); - - if ( _contradiction->_upperBoundExplanation ) - { - upperBoundExplanation = Vector( length, 0 ); - std::copy( _contradiction->_upperBoundExplanation, _contradiction->_upperBoundExplanation + length, upperBoundExplanation.begin() ); - } - - if ( _contradiction->_lowerBoundExplanation ) + for ( UnsatCertificateNode *child : _children ) { - lowerBoundExplanation = Vector( length, 0 ); - std::copy( _contradiction->_lowerBoundExplanation, _contradiction->_lowerBoundExplanation + length, lowerBoundExplanation.begin() ); + if ( child->_headSplit == split ) + return child; } - double computedUpper = explainBound( var, true, upperBoundExplanation ); - double computedLower = explainBound( var, false, lowerBoundExplanation ); - - return computedUpper < computedLower; + return NULL; } -double UnsatCertificateNode::explainBound( unsigned var, bool isUpper, Vector &explanation ) +bool UnsatCertificateNode::getSATSolutionFlag() const { - return UNSATCertificateUtils::computeBound( var, isUpper, explanation, *_initialTableau, _groundUpperBounds, _groundLowerBounds ); + return _hasSATSolution; } -void UnsatCertificateNode::copyGroundBounds( Vector &groundUpperBounds, Vector &groundLowerBounds ) +void UnsatCertificateNode::setSATSolutionFlag() { - _groundUpperBounds = Vector( groundUpperBounds ); - _groundLowerBounds = Vector( groundLowerBounds ); + _hasSATSolution = true; } -bool UnsatCertificateNode::isValidLeaf() const +bool UnsatCertificateNode::getVisited() const { - return _contradiction && _children.empty(); + return _wasVisited; } -bool UnsatCertificateNode::isValidNonLeaf() const +void UnsatCertificateNode::setVisited() { - return !_contradiction && !_children.empty(); + _wasVisited = true; } -void UnsatCertificateNode::addPLCExplanation( std::shared_ptr &explanation ) +DelegationStatus UnsatCertificateNode::getDelegationStatus() const { - _PLCExplanations.append( explanation ); + return _delegationStatus; } -void UnsatCertificateNode::addProblemConstraint( PiecewiseLinearFunctionType type, List constraintVars, PhaseStatus status ) +void UnsatCertificateNode::setDelegationStatus( DelegationStatus delegationStatus ) { - _problemConstraints.append( { type, constraintVars, status } ); + _delegationStatus = delegationStatus; } -UnsatCertificateProblemConstraint *UnsatCertificateNode::getCorrespondingReLUConstraint( const List &splits ) +void UnsatCertificateNode::deletePLCExplanations() { - if ( splits.size() != 2 ) - return NULL; - - auto firstSplitTightenings = splits.front().getBoundTightenings(); - auto secondSplitTightenings = splits.back().getBoundTightenings(); - - // Find the LB tightening, its var is b - auto &activeSplit = firstSplitTightenings.front()._type == Tightening::LB ? firstSplitTightenings : secondSplitTightenings; - auto &inactiveSplit = firstSplitTightenings.front()._type == Tightening::LB ? secondSplitTightenings : firstSplitTightenings; - - unsigned b = activeSplit.front()._variable; - unsigned aux = activeSplit.back()._variable; - unsigned f = inactiveSplit.back()._variable; - - // Aux var may or may not be used - if ( ( activeSplit.size() != 2 && activeSplit.size() != 1 ) || inactiveSplit.size() != 2 ) - return NULL; - - if ( FloatUtils::areDisequal( inactiveSplit.back()._value, 0.0 ) || FloatUtils::areDisequal( inactiveSplit.front()._value, 0.0 ) || FloatUtils::areDisequal( activeSplit.back()._value, 0.0 ) || FloatUtils::areDisequal( activeSplit.front()._value, 0.0 ) ) - return NULL; - - // Certify that f = b + aux corresponds to a problem constraints - UnsatCertificateProblemConstraint *correspondingConstraint = NULL; - for ( UnsatCertificateProblemConstraint &constraint : _problemConstraints ) - { - if ( constraint._type == PiecewiseLinearFunctionType::RELU && constraint._constraintVars.front() == b && constraint._constraintVars.exists( f ) && ( activeSplit.size() == 1 || constraint._constraintVars.back() == aux ) ) - correspondingConstraint = &constraint; - } - - // Return the constraint for which f=relu(b) - return correspondingConstraint; + _PLCExplanations.clear(); } -bool UnsatCertificateNode::certifyAllPLCExplanations( double epsilon ) +void UnsatCertificateNode::makeLeaf() { - // Create copies of the gb, check for their validity, and pass these changes to all the children - // Assuming the splits of the children are ok. - // NOTE, this will change as PLCExplanation will - for ( const auto &explanation : _PLCExplanations ) + for ( UnsatCertificateNode *child : _children ) { - bool constraintMatched = false; - bool tighteningMatched = false; - unsigned length = _initialTableau->size(); - auto explanationVector = Vector( 0, 0 ); - - if ( explanation->_explanation ) - { - explanationVector = Vector( length, 0 ); - std::copy( explanation->_explanation, explanation->_explanation + length, explanationVector.begin() ); - } - - double explainedBound = UNSATCertificateUtils::computeBound( explanation->_causingVar, explanation->_causingVarBound == UPPER, explanationVector, *_initialTableau, _groundUpperBounds, _groundLowerBounds ); - unsigned b = 0; - unsigned f = 0; - unsigned aux = 0; - - // Make sure propagation was by a problem constraint - for ( UnsatCertificateProblemConstraint &constraint : _problemConstraints ) + if ( child ) { - if ( explanation->_constraintType == PiecewiseLinearFunctionType::RELU && constraint._constraintVars.exists(explanation->_affectedVar ) && constraint._constraintVars.exists(explanation->_causingVar ) ) - { - Vector conVec( constraint._constraintVars.begin(), constraint._constraintVars.end() ); - b = conVec[0]; - f = conVec[1]; - aux = conVec[2]; - constraintMatched = true; - - // If explanation is phase fixing, mark it - if ( ( explanation->_affectedVarBound == LOWER && explanation->_affectedVar == f && FloatUtils::isPositive(explanation->_bound ) ) || ( explanation->_affectedVarBound == UPPER && explanation->_affectedVar == aux && FloatUtils::isZero(explanation->_bound ) ) ) - constraint._status = PhaseStatus::RELU_PHASE_ACTIVE; - else if ( ( explanation->_affectedVarBound == LOWER && explanation->_affectedVar == aux && FloatUtils::isPositive(explanation->_bound ) ) || ( explanation->_affectedVarBound == UPPER && explanation->_affectedVar == f && FloatUtils::isZero(explanation->_bound ) ) ) - constraint._status = PhaseStatus::RELU_PHASE_INACTIVE; - } + delete child; + child = NULL; } - - if ( !constraintMatched ) - return false; - - if ( explanation->_causingVar != b && explanation->_causingVar != f && explanation->_causingVar != aux ) - return false; - - // Make sure the explanation is explained using a ReLU bound tightening. Cases are matching each rule in ReluConstraint.cpp - // We allow explained bound to be tighter than the ones recorded (since an explanation can explain tighter bounds), and an epsilon sized error is tolerated. - - // If lb of b is non negative, then ub of aux is 0 - if ( explanation->_causingVar == b && explanation->_causingVarBound == LOWER && explanation->_affectedVar == aux && explanation->_affectedVarBound == UPPER && FloatUtils::isZero(explanation->_bound ) && !FloatUtils::isNegative(explainedBound + epsilon ) ) - tighteningMatched = true; - - // If lb of f is positive, then ub if aux is 0 - else if ( explanation->_causingVar == f && explanation->_causingVarBound == LOWER && explanation->_affectedVar == aux && explanation->_affectedVarBound == UPPER && FloatUtils::isZero(explanation->_bound ) && FloatUtils::isPositive(explainedBound + epsilon ) ) - tighteningMatched = true; - - // If lb of b is positive x, then lb of aux is -x - else if ( explanation->_causingVar == b && explanation->_causingVarBound == LOWER && explanation->_affectedVar == aux && explanation->_affectedVarBound == UPPER && FloatUtils::gte(explainedBound, - explanation->_bound - epsilon ) && explanation->_bound > 0 ) - tighteningMatched = true; - - // If lb of aux is positive, then ub of f is 0 - else if ( explanation->_causingVar == aux && explanation->_causingVarBound ==LOWER && explanation->_affectedVar == f && explanation->_affectedVarBound == UPPER && FloatUtils::isZero(explanation->_bound ) && FloatUtils::isPositive(explainedBound + epsilon ) ) - tighteningMatched = true; - - // If lb of f is negative, then it is 0 - else if ( explanation->_causingVar == f && explanation->_causingVarBound == LOWER && explanation->_affectedVar == f && explanation->_affectedVarBound == LOWER && FloatUtils::isZero(explanation->_bound ) && FloatUtils::isNegative(explainedBound - epsilon ) ) - tighteningMatched = true; - - // Propagate ub from f to b - else if ( explanation->_causingVar == f && explanation->_causingVarBound == UPPER && explanation->_affectedVar == b && explanation->_affectedVarBound == UPPER && FloatUtils::lte(explainedBound, explanation->_bound + epsilon ) ) - tighteningMatched = true; - - // If ub of b is non positive, then ub of f is 0 - else if ( explanation->_causingVar == b && explanation->_causingVarBound == UPPER && explanation->_affectedVar == f && explanation->_affectedVarBound == UPPER && FloatUtils::isZero(explanation->_bound ) && !FloatUtils::isPositive(explainedBound - epsilon ) ) - tighteningMatched = true; - - // If ub of b is non positive x, then lb of aux is -x - else if ( explanation->_causingVar == b && explanation->_causingVarBound == UPPER && explanation->_affectedVar == aux && explanation->_affectedVarBound == LOWER && explanation->_bound > 0 && !FloatUtils::isPositive(explainedBound - epsilon ) && FloatUtils::lte(explainedBound, -explanation->_bound + epsilon) ) - tighteningMatched = true; - - // If ub of b is positive, then propagate to f ( positivity of explained bound is not checked since negative explained ub can always explain positive bound ) - else if ( explanation->_causingVar == b && explanation->_causingVarBound == UPPER && explanation->_affectedVar == f && explanation->_affectedVarBound == UPPER && FloatUtils::isPositive(explanation->_bound ) && FloatUtils::lte(explainedBound, explanation->_bound + epsilon ) ) - tighteningMatched = true; - - // If ub of aux is x, then lb of b is -x - else if ( explanation->_causingVar == aux && explanation->_causingVarBound == UPPER && explanation->_affectedVar == b && explanation->_affectedVarBound == LOWER && FloatUtils::lte(explainedBound, -explanation->_bound + epsilon ) ) - tighteningMatched = true; - - if ( !tighteningMatched ) - return false; - - // If so, update the ground bounds and continue - Vector &temp = explanation->_affectedVarBound ? _groundUpperBounds : _groundLowerBounds; - bool isTighter = explanation->_affectedVarBound ? FloatUtils::lt( explanation->_bound, temp[explanation->_affectedVar] ) : FloatUtils::gt( explanation->_bound, temp[explanation->_affectedVar] ); - if ( isTighter ) - temp[explanation->_affectedVar] = explanation->_bound; - } - return true; -} - -/* - * Get a pointer to a child by a head split, or NULL if not found - */ -UnsatCertificateNode *UnsatCertificateNode::getChildBySplit( const PiecewiseLinearCaseSplit &split ) const -{ - for ( UnsatCertificateNode *child : _children ) - { - if ( child->_headSplit == split ) - return child; } - return NULL; -} - -void UnsatCertificateNode::setSATSolution() -{ - _hasSATSolution = true; -} - -void UnsatCertificateNode::setVisited() -{ - _wasVisited = true; -} - -void UnsatCertificateNode::shouldDelegate( unsigned delegationNumber, DelegationStatus delegationStatus ) -{ - ASSERT( delegationStatus != DelegationStatus::DONT_DELEGATE ); - _delegationStatus = delegationStatus; - _delegationNumber = delegationNumber; -} - -bool UnsatCertificateNode::certifySingleVarSplits( const List &splits ) const -{ - if ( splits.size() != 2 ) - return false; - - // These are singletons to tightenings - auto &frontSplitTightenings = splits.front().getBoundTightenings(); - auto &backSplitTightenings = splits.back().getBoundTightenings(); - - if ( frontSplitTightenings.size() != 1 || backSplitTightenings.size() != 1 ) - return false; - - // These are the elements in the singletons - auto &frontSplitOnlyTightening = frontSplitTightenings.front(); - auto &backSplitOnlyTightening = backSplitTightenings.front(); - - // Check that cases are of the same var and bound, where the for one the bound is UB, and for the other is LB - if ( frontSplitOnlyTightening._variable != backSplitOnlyTightening._variable ) - return false; - - if ( FloatUtils::areDisequal( frontSplitOnlyTightening._value, backSplitOnlyTightening._value ) ) - return false; - - if ( frontSplitOnlyTightening._type == backSplitOnlyTightening._type ) - return false; - - return true; + _children.clear(); } -void UnsatCertificateNode::deletePLCExplanations() +void UnsatCertificateNode::removePLCExplanationsBelowDecisionLevel( unsigned decisionLevel ) { - _PLCExplanations.clear(); + _PLCExplanations.removeIf( [decisionLevel] ( std::shared_ptr &explanation ){ return explanation->getDecisionLevel() <= decisionLevel; } ); } -/* - * Removes all PLC explanations from a certain point - */ -void UnsatCertificateNode::setPLCExplanations( const List> &explanations ) +bool UnsatCertificateNode::isValidLeaf() const { - _PLCExplanations.clear(); - _PLCExplanations = explanations; + return _contradiction && _children.empty(); } -void UnsatCertificateNode::writeLeafToFile() +bool UnsatCertificateNode::isValidNonLeaf() const { - ASSERT( _children.empty() && _delegationStatus == DelegationStatus::DELEGATE_SAVE ); - List leafInstance; - - // Write with SmtLibWriter - unsigned b, f; - unsigned m = _initialTableau->size(); - unsigned n = _groundUpperBounds.size(); - - SmtLibWriter::addHeader( n, leafInstance ); - SmtLibWriter::addGroundUpperBounds( _groundUpperBounds, leafInstance ); - SmtLibWriter::addGroundLowerBounds( _groundLowerBounds, leafInstance ); - - for ( unsigned i = 0; i < m; ++i ) - SmtLibWriter::addTableauRow( ( *_initialTableau )[i], leafInstance ); - - for ( auto &constraint : _problemConstraints ) - if ( constraint._type == PiecewiseLinearFunctionType::RELU ) - { - auto vars = constraint._constraintVars; - b = vars.front(); - vars.popBack(); - f = vars.back(); - SmtLibWriter::addReLUConstraint( b, f, constraint._status, leafInstance ); - } - - SmtLibWriter::addFooter( leafInstance ); - File file ( "delegated" + std::to_string( _delegationNumber ) + ".smtlib" ); - SmtLibWriter::writeInstanceToFile( file, leafInstance ); + return !_contradiction && !_children.empty(); } - -void UnsatCertificateNode::removePLCExplanationsBelowDecisionLevel( unsigned decisionLevel ) -{ - _PLCExplanations.removeIf( [decisionLevel] ( std::shared_ptr &explanation ){ return explanation->_decisionLevel <= decisionLevel; } ); -} \ No newline at end of file From 46ffbe7a650af2a3cbc45f52f5d53e55cebec1ae Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Tue, 15 Mar 2022 17:54:44 +0200 Subject: [PATCH 066/165] Update UnsatCertificateNode.h Moved certification methods to Checker class --- src/proofs/UnsatCertificateNode.h | 122 +++++++++--------------------- 1 file changed, 37 insertions(+), 85 deletions(-) diff --git a/src/proofs/UnsatCertificateNode.h b/src/proofs/UnsatCertificateNode.h index 28944c57c6..ca381ef28c 100644 --- a/src/proofs/UnsatCertificateNode.h +++ b/src/proofs/UnsatCertificateNode.h @@ -17,7 +17,6 @@ #include "BoundExplainer.h" #include "Contradiction.h" -#include "UnsatCertificateProblemConstraint.h" #include "SmtLibWriter.h" #include "PiecewiseLinearFunctionType.h" #include "PlcExplanation.h" @@ -37,23 +36,9 @@ enum DelegationStatus : unsigned class UnsatCertificateNode { public: - /* - Constructor for the root - */ - UnsatCertificateNode( Vector> *_initialTableau, Vector &groundUpperBounds, Vector &groundLowerBounds ); - - /* - Constructor for a regular node - */ UnsatCertificateNode( UnsatCertificateNode *parent, PiecewiseLinearCaseSplit split ); - ~UnsatCertificateNode(); - /* - Certifies the tree is indeed a correct proof of unsatisfiability; - */ - bool certify(); - /* Sets the leaf contradiction certificate as input */ @@ -62,10 +47,10 @@ class UnsatCertificateNode /* Returns the leaf contradiction certificate of the node */ - Contradiction *getContradiction() const; + const Contradiction *getContradiction() const; /* - Returns the parent of a node + Returns the parent of a node */ UnsatCertificateNode *getParent() const; @@ -75,12 +60,17 @@ class UnsatCertificateNode const PiecewiseLinearCaseSplit &getSplit() const; /* - Returns the list of PLC explanations of the node + Returns the head split of a node + */ + const List &getChildren() const; + + /* + Returns the list of PLC explanations of the node */ const List> &getPLCExplanations() const; /* - Sets the list of PLC explanations of the node + Sets the list of PLC explanations of the node */ void setPLCExplanations( const List> &explanations ); @@ -90,19 +80,24 @@ class UnsatCertificateNode void addPLCExplanation( std::shared_ptr &explanation ); /* - Adds an a problem constraint to the list + Returns a pointer to a child by a head split, or NULL if not found */ - void addProblemConstraint( PiecewiseLinearFunctionType type, List constraintVars, PhaseStatus status ); + UnsatCertificateNode *getChildBySplit( const PiecewiseLinearCaseSplit &split ) const; /* - Returns a pointer to a child by a head split, or NULL if not found + Gets value of _hasSATSolution */ - UnsatCertificateNode *getChildBySplit( const PiecewiseLinearCaseSplit &split ) const; + bool getSATSolutionFlag() const; /* Sets value of _hasSATSolution to be true */ - void setSATSolution(); + void setSATSolutionFlag(); + + /* + Sets value of _wasVisited to be true + */ + bool getVisited() const; /* Sets value of _wasVisited to be true @@ -110,10 +105,14 @@ class UnsatCertificateNode void setVisited(); /* - Sets value of _shouldDelegate to be true - Saves delegation to file iff saveToFile is true + Gets delegation status of a node */ - void shouldDelegate( unsigned delegationNumber, DelegationStatus saveToFile ); + DelegationStatus getDelegationStatus() const; + + /* + Sets delegation status of a node + */ + void setDelegationStatus( DelegationStatus saveToFile ); /* Removes all PLC explanations @@ -130,9 +129,18 @@ class UnsatCertificateNode */ void removePLCExplanationsBelowDecisionLevel( unsigned decisionLevel ); + /* + Checks if the node is a valid leaf + */ + bool isValidLeaf() const; + + /* + Checks if the node is a valid none-leaf + */ + bool isValidNonLeaf() const; + private: List _children; - List _problemConstraints; UnsatCertificateNode *_parent; List> _PLCExplanations; Contradiction *_contradiction; @@ -143,62 +151,6 @@ class UnsatCertificateNode bool _wasVisited; DelegationStatus _delegationStatus; - unsigned _delegationNumber; - - Vector> *_initialTableau; - Vector _groundUpperBounds; - Vector _groundLowerBounds; - - /* - Copies initial tableau and ground bounds - */ - void copyGroundBounds( Vector &groundUpperBounds, Vector &groundLowerBounds ); - - /* - Inherits the initialTableau pointer, the ground bounds and the problem constraint from parent, if exists. - Fixes the phase of the constraint that corresponds to the head split - */ - void passChangesToChildren( UnsatCertificateProblemConstraint *childrenSplitConstraint ); - - /* - Checks if the node is a valid leaf - */ - bool isValidLeaf() const; - - /* - Checks if the node is a valid none-leaf - */ - bool isValidNonLeaf() const; - - /* - Write a leaf marked to delegate to a smtlib file format - */ - void writeLeafToFile(); - - /* - Return true iff a list of splits represents a splits over a single variable - */ - bool certifySingleVarSplits( const List &splits ) const; - - /* - Return true iff the changes in the ground bounds are certified, with tolerance to errors with at most size epsilon - */ - bool certifyAllPLCExplanations( double epsilon ); - - /* - Return a pointer to the problem constraint representing the split - */ - UnsatCertificateProblemConstraint *getCorrespondingReLUConstraint( const List &splits ); - - /* - Certifies a contradiction - */ - bool certifyContradiction(); - - /* - Computes a bound according to an explanation - */ - double explainBound( unsigned var, bool isUpper, Vector &explanation ); }; -#endif //__UnsatCertificateNode_h__ \ No newline at end of file +#endif //__UnsatCertificateNode_h__ From d9568ab02c9d05565a87977258164aa2abe4a23c Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Tue, 15 Mar 2022 17:56:42 +0200 Subject: [PATCH 067/165] Update UnsatCertificateUtils.cpp When checking an explanation, it is received as an array (rather than a vector). Changed the row produced from an explanation, to match the changes in BoundExplainer. --- src/proofs/UnsatCertificateUtils.cpp | 29 ++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/proofs/UnsatCertificateUtils.cpp b/src/proofs/UnsatCertificateUtils.cpp index 8c2bd637c3..2d8cbbac89 100644 --- a/src/proofs/UnsatCertificateUtils.cpp +++ b/src/proofs/UnsatCertificateUtils.cpp @@ -14,11 +14,14 @@ #include "UnsatCertificateUtils.h" -double UNSATCertificateUtils::computeBound( unsigned var, bool isUpper, const Vector &explanation, - const Vector> &initialTableau, const Vector &groundUpperBounds, const Vector &groundLowerBounds ) +double UNSATCertificateUtils::computeBound( unsigned var, + bool isUpper, + const double *explanation, + const Vector> &initialTableau, + const Vector &groundUpperBounds, + const Vector &groundLowerBounds ) { ASSERT( groundLowerBounds.size() == groundUpperBounds.size() ); - ASSERT( initialTableau.size() == explanation.size() || explanation.empty() ); ASSERT( groundLowerBounds.size() == initialTableau[0].size() ); ASSERT( groundLowerBounds.size() == initialTableau[initialTableau.size() - 1 ].size() ); ASSERT( var < groundUpperBounds.size() ); @@ -27,7 +30,7 @@ double UNSATCertificateUtils::computeBound( unsigned var, bool isUpper, const Ve double temp; unsigned n = groundUpperBounds.size(); - if ( explanation.empty() ) + if ( !explanation ) return isUpper ? groundUpperBounds[var] : groundLowerBounds[var]; // Create linear combination of original rows implied from explanation @@ -53,14 +56,14 @@ double UNSATCertificateUtils::computeBound( unsigned var, bool isUpper, const Ve return derivedBound; } -void UNSATCertificateUtils::getExplanationRowCombination( unsigned var, Vector &explanationRowCombination, const Vector &explanation, +void UNSATCertificateUtils::getExplanationRowCombination( unsigned var, + Vector &explanationRowCombination, + const double *explanation, const Vector> &initialTableau ) { - ASSERT( explanation.size() == initialTableau.size() ); - explanationRowCombination = Vector( initialTableau[0].size(), 0 ); unsigned n = initialTableau[0].size(); - unsigned m = explanation.size(); + unsigned m = initialTableau.size(); for ( unsigned i = 0; i < m; ++i ) { for ( unsigned j = 0; j < n; ++j ) @@ -72,13 +75,11 @@ void UNSATCertificateUtils::getExplanationRowCombination( unsigned var, Vector Date: Tue, 15 Mar 2022 17:57:54 +0200 Subject: [PATCH 068/165] Update UnsatCertificateUtils.h When checking an explanation, it is received as an array (rather than a vector). Changed the row produced from an explanation, to match the changes in BoundExplainer. --- src/proofs/UnsatCertificateUtils.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/proofs/UnsatCertificateUtils.h b/src/proofs/UnsatCertificateUtils.h index b4492028f1..13cd7c437d 100644 --- a/src/proofs/UnsatCertificateUtils.h +++ b/src/proofs/UnsatCertificateUtils.h @@ -27,14 +27,20 @@ class UNSATCertificateUtils Use explanation to compute a bound (aka explained bound) Given a variable, an explanation, initial tableau and ground bounds. */ - static double computeBound( unsigned var, bool isUpper, const Vector &explanation, - const Vector> &initialTableau, const Vector &groundUpperBounds, const Vector &groundLowerBounds ); + static double computeBound( unsigned var, + bool isUpper, + const double *explanation, + const Vector> &initialTableau, + const Vector &groundUpperBounds, + const Vector &groundLowerBounds ); /* Given a var, a tableau and a column vector, create a linear combination used to explain a bound */ - static void getExplanationRowCombination( unsigned var, Vector &explanationRowCombination, const Vector &explanation, + static void getExplanationRowCombination( unsigned var, + Vector &explanationRowCombination, + const double *explanation, const Vector> &initialTableau ); }; -#endif //__UnsatCertificateUtils_h__ \ No newline at end of file +#endif //__UnsatCertificateUtils_h__ From 42b4fb973cce4b83547c400350294497d72a7b58 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Tue, 22 Mar 2022 10:38:07 +0200 Subject: [PATCH 069/165] Update PiecewiseLinearConstraint.h g/setPhaseStatus() methods are public --- src/engine/PiecewiseLinearConstraint.h | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/engine/PiecewiseLinearConstraint.h b/src/engine/PiecewiseLinearConstraint.h index 7b65cd7431..3fa0dc38d4 100644 --- a/src/engine/PiecewiseLinearConstraint.h +++ b/src/engine/PiecewiseLinearConstraint.h @@ -344,6 +344,18 @@ class PiecewiseLinearConstraint : public ITableau::VariableWatcher { _gurobi = gurobi; } + + /* + Method to set PhaseStatus of the constraint. Encapsulates both context + dependent and context-less behavior. Initialized to PHASE_NOT_FIXED. + */ + void setPhaseStatus( PhaseStatus phaseStatus ); + + /* + Method to get PhaseStatus of the constraint. Encapsulates both context + dependent and context-less behavior. + */ + PhaseStatus getPhaseStatus() const; /**********************************************************************/ /* Context-dependent Members Initialization and Cleanup */ @@ -510,18 +522,6 @@ class PiecewiseLinearConstraint : public ITableau::VariableWatcher */ bool isCaseInfeasible( PhaseStatus phase ) const; - /* - Method to set PhaseStatus of the constraint. Encapsulates both context - dependent and context-less behavior. Initialized to PHASE_NOT_FIXED. - */ - void setPhaseStatus( PhaseStatus phaseStatus ); - - /* - Method to get PhaseStatus of the constraint. Encapsulates both context - dependent and context-less behavior. - */ - PhaseStatus getPhaseStatus() const; - /**********************************************************************/ /* BOUND WRAPPER METHODS */ /**********************************************************************/ From bb12e4b1c4b53bd3680636e6da2d2350110f3821 Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Wed, 30 Mar 2022 10:38:37 +0300 Subject: [PATCH 070/165] Update Test_UnsatCertificateNode.h Removed redundant lines, changed assertion when comparing to nullptr --- src/proofs/tests/Test_UnsatCertificateNode.h | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/src/proofs/tests/Test_UnsatCertificateNode.h b/src/proofs/tests/Test_UnsatCertificateNode.h index 0171fd16d1..07cac5ae8f 100644 --- a/src/proofs/tests/Test_UnsatCertificateNode.h +++ b/src/proofs/tests/Test_UnsatCertificateNode.h @@ -26,11 +26,6 @@ class UnsatCertificateNodeTestSuite : public CxxTest::TestSuite */ void testTreeRelations() { - Vector row1 = { 1, 0, -1, 1, 0, 0 }; - Vector row2 = { 0, -1, 2, 0, 1, 0 }; - Vector row3 = { 0.5, 0, -1, 0, 0, 1 }; - Vector> initialTableau = { row1, row2, row3 }; - Vector groundUpperBounds( 6, 1 ); Vector groundLowerBounds( 6, 0 ); @@ -57,8 +52,8 @@ class UnsatCertificateNodeTestSuite : public CxxTest::TestSuite root->makeLeaf(); - TS_ASSERT_EQUALS( root->getChildBySplit( split1 ), nullptr ); - TS_ASSERT_EQUALS( root->getChildBySplit( split2 ), nullptr ); + TS_ASSERT( root->getChildBySplit( split1 ) == nullptr ); + TS_ASSERT( root->getChildBySplit( split2 ) == nullptr ); delete root; } @@ -68,13 +63,9 @@ class UnsatCertificateNodeTestSuite : public CxxTest::TestSuite */ void testContradiction() { - Vector> initialTableau = { Vector( 1,1 ) }; - Vector groundUpperBounds( 1, 1 ); - Vector groundLowerBounds( 1, 0 ); - UnsatCertificateNode root = UnsatCertificateNode( NULL, PiecewiseLinearCaseSplit() ); - auto upperBoundExplanation = Vector(1, 1); + auto upperBoundExplanation = Vector(1, 1); auto lowerBoundExplanation = Vector(1, 1); auto *contradiction = new Contradiction( 0, upperBoundExplanation, lowerBoundExplanation ); @@ -87,10 +78,6 @@ class UnsatCertificateNodeTestSuite : public CxxTest::TestSuite */ void testPLCExplChanges() { - Vector> initialTableau = { Vector( 1,1 ) }; - Vector groundUpperBounds( 1, 1 ); - Vector groundLowerBounds( 1, -1 ); - UnsatCertificateNode root = UnsatCertificateNode( NULL, PiecewiseLinearCaseSplit() ); Vector emptyVec; From b1843d02b4786e59edeb8b900fb1a0cc0f22cb0a Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Sun, 27 Nov 2022 10:49:45 +0200 Subject: [PATCH 071/165] Update to proof production core modules --- maraboupy/MarabouCore.cpp | 6 +- src/common/Statistics.cpp | 18 ++- src/common/Statistics.h | 15 +- src/configuration/GlobalConfiguration.cpp | 15 +- src/configuration/GlobalConfiguration.h | 10 +- src/configuration/OptionParser.cpp | 3 + src/configuration/Options.cpp | 1 + src/configuration/Options.h | 3 + src/engine/main.cpp | 19 +++ src/proofs/BoundExplainer.cpp | 150 +++++++++++++++--- src/proofs/BoundExplainer.h | 25 ++- src/proofs/Checker.cpp | 34 ++-- src/proofs/Checker.h | 8 +- src/proofs/Contradiction.cpp | 44 ++--- src/proofs/Contradiction.h | 10 +- src/proofs/PlcExplanation.cpp | 9 +- src/proofs/PlcExplanation.h | 12 +- src/proofs/SmtLibWriter.cpp | 16 +- src/proofs/SmtLibWriter.h | 2 +- src/proofs/UnsatCertificateNode.cpp | 10 -- src/proofs/UnsatCertificateNode.h | 10 -- src/proofs/UnsatCertificateUtils.cpp | 98 +++++++++--- src/proofs/UnsatCertificateUtils.h | 25 ++- src/proofs/tests/Test_BoundExplainer.h | 59 ++++--- src/proofs/tests/Test_Checker.h | 21 ++- src/proofs/tests/Test_SmtLibWriter.h | 6 +- src/proofs/tests/Test_UnsatCertificateNode.h | 18 +-- src/proofs/tests/Test_UnsatCertificateUtils.h | 16 +- 28 files changed, 445 insertions(+), 218 deletions(-) diff --git a/maraboupy/MarabouCore.cpp b/maraboupy/MarabouCore.cpp index b7925ee971..89890ec391 100644 --- a/maraboupy/MarabouCore.cpp +++ b/maraboupy/MarabouCore.cpp @@ -221,6 +221,7 @@ struct MarabouOptions { , _tighteningStrategyString( Options::get()->getString( Options::SYMBOLIC_BOUND_TIGHTENING_TYPE ).ascii() ) , _milpTighteningString( Options::get()->getString( Options::MILP_SOLVER_BOUND_TIGHTENING_TYPE ).ascii() ) , _lpSolverString( Options::get()->getString( Options::LP_SOLVER ).ascii() ) + , _produceProofs( Options::get()->getBool( Options::PRODUCE_PROOFS )) {}; void setOptions() @@ -231,6 +232,7 @@ struct MarabouOptions { Options::get()->setBool( Options::SOLVE_WITH_MILP, _solveWithMILP ); Options::get()->setBool( Options::DUMP_BOUNDS, _dumpBounds ); Options::get()->setBool( Options::PERFORM_LP_TIGHTENING_AFTER_SPLIT, _performLpTighteningAfterSplit ); + Options::get()->setBool( Options::PRODUCE_PROOFS, _produceProofs ); // int options Options::get()->setInt( Options::NUM_WORKERS, _numWorkers ); @@ -260,6 +262,7 @@ struct MarabouOptions { bool _solveWithMILP; bool _dumpBounds; bool _performLpTighteningAfterSplit; + bool _produceProofs; unsigned _numWorkers; unsigned _numBlasThreads; unsigned _initialTimeout; @@ -442,7 +445,8 @@ PYBIND11_MODULE(MarabouCore, m) { .def_readwrite("_milpTightening", &MarabouOptions::_milpTighteningString) .def_readwrite("_lpSolver", &MarabouOptions::_lpSolverString) .def_readwrite("_numSimulations", &MarabouOptions::_numSimulations) - .def_readwrite("_performLpTighteningAfterSplit", &MarabouOptions::_performLpTighteningAfterSplit); + .def_readwrite("_performLpTighteningAfterSplit", &MarabouOptions::_performLpTighteningAfterSplit) + .def_readwrite("_produceProofs", &MarabouOptions::_produceProofs); m.def("loadProperty", &loadProperty, "Load a property file into a input query"); m.def("createInputQuery", &createInputQuery, "Create input query from network and property file"); m.def("preprocess", &preprocess, R"pbdoc( diff --git a/src/common/Statistics.cpp b/src/common/Statistics.cpp index 2ebb9d54d3..6e471be1b3 100644 --- a/src/common/Statistics.cpp +++ b/src/common/Statistics.cpp @@ -39,6 +39,8 @@ Statistics::Statistics() _unsignedAttributes[PP_NUM_CONSTRAINTS_REMOVED] = 0; _unsignedAttributes[PP_NUM_EQUATIONS_REMOVED] = 0; _unsignedAttributes[TOTAL_NUMBER_OF_VALID_CASE_SPLITS] = 0; + _unsignedAttributes[NUM_CERTIFIED_LEAVES] = 0; + _unsignedAttributes[NUM_DELEGATED_LEAVES] = 0; _longAttributes[NUM_MAIN_LOOP_ITERATIONS] = 0; _longAttributes[NUM_SIMPLEX_STEPS] = 0; @@ -89,6 +91,7 @@ Statistics::Statistics() _longAttributes[TIME_CONTEXT_POP] = 0; _longAttributes[TIME_CONTEXT_PUSH_HOOK] = 0; _longAttributes[TIME_CONTEXT_POP_HOOK] = 0; + _longAttributes[TOTAL_CERTIFICATION_TIME] = 0; _doubleAttributes[CURRENT_DEGRADATION] = 0.0; _doubleAttributes[MAX_DEGRADATION] = 0.0; @@ -117,8 +120,7 @@ void Statistics::print() printf( "\tTotal time elapsed: %llu milli (%02u:%02u:%02u)\n", totalElapsed / 1000, hours, minutes - ( hours * 60 ), seconds - ( minutes * 60 ) ); - unsigned long long timeMainLoopMicro = getLongAttribute - ( Statistics::TIME_MAIN_LOOP_MICRO ); + unsigned long long timeMainLoopMicro = getLongAttribute( Statistics::TIME_MAIN_LOOP_MICRO ); seconds = timeMainLoopMicro / 1000000; minutes = seconds / 60; hours = minutes / 60; @@ -443,6 +445,9 @@ void Statistics::print() , totalContextTime / 1000 ); + printf( "\t--- Proof Certificate ---\n" ); + printf( "\tNumber of certified leaves: %u\n", getUnsignedAttribute( Statistics::NUM_CERTIFIED_LEAVES ) ); + printf( "\tNumber of leaves to delegate: %u\n", getUnsignedAttribute( Statistics::NUM_DELEGATED_LEAVES ) ); } @@ -491,3 +496,12 @@ double Statistics::printAverage( unsigned long long part, unsigned long long tot return (double)part / total; } + +void Statistics::printLongAttributeAsTime( unsigned long long longAsNumber ) +{ + unsigned int seconds = longAsNumber / 1000000; + unsigned int minutes = seconds / 60; + unsigned int hours = minutes / 60; + printf( "%llu milli (%02u:%02u:%02u)\n", + longAsNumber / 1000, hours, minutes - ( hours * 60 ), seconds - ( minutes * 60 ) ); +} diff --git a/src/common/Statistics.h b/src/common/Statistics.h index 63cb13c5ea..d9e82f8c40 100644 --- a/src/common/Statistics.h +++ b/src/common/Statistics.h @@ -67,6 +67,10 @@ class Statistics // Total number of valid case splits performed so far (including in other // branches of the search tree, that have since been popped) TOTAL_NUMBER_OF_VALID_CASE_SPLITS, + + // Total number of delegated and certified leaves in the search tree + NUM_CERTIFIED_LEAVES, + NUM_DELEGATED_LEAVES, }; enum StatisticsLongAttribute @@ -205,7 +209,10 @@ class Statistics TIME_CONTEXT_PUSH, TIME_CONTEXT_POP, TIME_CONTEXT_PUSH_HOOK, - TIME_CONTEXT_POP_HOOK + TIME_CONTEXT_POP_HOOK, + + // Total Certification Time + TOTAL_CERTIFICATION_TIME, }; enum StatisticsDoubleAttribute @@ -308,6 +315,12 @@ class Statistics */ void printStartingIteration( unsigned long long iteration, String message ); + /* + Print a long attribute in time format + */ + void printLongAttributeAsTime( unsigned long long longAsNumber ); + + private: // Initial timestamp struct timespec _startTime; diff --git a/src/configuration/GlobalConfiguration.cpp b/src/configuration/GlobalConfiguration.cpp index 975716805b..cfd8331d25 100644 --- a/src/configuration/GlobalConfiguration.cpp +++ b/src/configuration/GlobalConfiguration.cpp @@ -24,7 +24,7 @@ const double GlobalConfiguration::EXPONENTIAL_MOVING_AVERAGE_ALPHA = 0.5; // Whether to use SoI instead of Reluplex for local search for satisfying assignments //to non-linear constraint. -const bool GlobalConfiguration::USE_DEEPSOI_LOCAL_SEARCH = true; +bool GlobalConfiguration::USE_DEEPSOI_LOCAL_SEARCH = true; const double GlobalConfiguration::SCORE_BUMP_FOR_PL_CONSTRAINTS_NOT_IN_SOI = 5; @@ -36,7 +36,7 @@ const double GlobalConfiguration::DEFAULT_EPSILON_FOR_COMPARISONS = 0.0000000001 const unsigned GlobalConfiguration::DEFAULT_DOUBLE_TO_STRING_PRECISION = 10; const unsigned GlobalConfiguration::STATISTICS_PRINTING_FREQUENCY = 10000; const unsigned GlobalConfiguration::STATISTICS_PRINTING_FREQUENCY_GUROBI = 100; -const double GlobalConfiguration::BOUND_COMPARISON_ADDITIVE_TOLERANCE = 0.0000001; +const double GlobalConfiguration::BOUND_COMPARISON_ADDITIVE_TOLERANCE = 0.0000000001; const double GlobalConfiguration::BOUND_COMPARISON_MULTIPLICATIVE_TOLERANCE = 0.001 * 0.0000001; const double GlobalConfiguration::PIVOT_CHANGE_COLUMN_TOLERANCE = 0.000000001; const double GlobalConfiguration::PIVOT_ROW_AND_COLUMN_TOLERANCE = 0.01; @@ -45,7 +45,7 @@ const double GlobalConfiguration::RATIO_CONSTRAINT_ADDITIVE_TOLERANCE = 0.000000 const double GlobalConfiguration::RATIO_CONSTRAINT_MULTIPLICATIVE_TOLERANCE = 0.001 * 0.0000001 * 0.3; const double GlobalConfiguration::HARRIS_RATIO_CONSTRAINT_ADDITIVE_TOLERANCE = 0.0000001 * 0.5; const double GlobalConfiguration::HARRIS_RATIO_CONSTRAINT_MULTIPLICATIVE_TOLERANCE = 0.001 * 0.0000001 * 0.5; -const double GlobalConfiguration::BASIC_COSTS_ADDITIVE_TOLERANCE = 0.0000001; +const double GlobalConfiguration::BASIC_COSTS_ADDITIVE_TOLERANCE = 0.0000000001; const double GlobalConfiguration::BASIC_COSTS_MULTIPLICATIVE_TOLERANCE = 0.001 * 0.0000001; const double GlobalConfiguration::SPARSE_FORREST_TOMLIN_DIAGONAL_ELEMENT_TOLERANCE = 0.00001; const unsigned GlobalConfiguration::DEGRADATION_CHECKING_FREQUENCY = 100; @@ -55,10 +55,10 @@ const bool GlobalConfiguration::USE_COLUMN_MERGING_EQUATIONS = false; const double GlobalConfiguration::GAUSSIAN_ELIMINATION_PIVOT_SCALE_THRESHOLD = 0.1; const unsigned GlobalConfiguration::MAX_SIMPLEX_PIVOT_SEARCH_ITERATIONS = 5; const DivideStrategy GlobalConfiguration::SPLITTING_HEURISTICS = DivideStrategy::ReLUViolation; -const unsigned GlobalConfiguration::INTERVAL_SPLITTING_FREQUENCY = 3; +const unsigned GlobalConfiguration::INTERVAL_SPLITTING_FREQUENCY = 10; const unsigned GlobalConfiguration::INTERVAL_SPLITTING_THRESHOLD = 10; const unsigned GlobalConfiguration::BOUND_TIGHTING_ON_CONSTRAINT_MATRIX_FREQUENCY = 100; -const unsigned GlobalConfiguration::ROW_BOUND_TIGHTENER_SATURATION_ITERATIONS = 20; +const unsigned GlobalConfiguration::ROW_BOUND_TIGHTENER_SATURATION_ITERATIONS = 5; const double GlobalConfiguration::COST_FUNCTION_ERROR_THRESHOLD = 0.0000000001; const unsigned GlobalConfiguration::SIMULATION_RANDOM_SEED = 1; @@ -89,7 +89,7 @@ const bool GlobalConfiguration::ONLY_AUX_INITIAL_BASIS = false; const GlobalConfiguration::ExplicitBasisBoundTighteningType GlobalConfiguration::EXPLICIT_BASIS_BOUND_TIGHTENING_TYPE = GlobalConfiguration::COMPUTE_INVERTED_BASIS_MATRIX; -const bool GlobalConfiguration::EXPLICIT_BOUND_TIGHTENING_UNTIL_SATURATION = false; +const bool GlobalConfiguration::EXPLICIT_BOUND_TIGHTENING_UNTIL_SATURATION = true; const unsigned GlobalConfiguration::REFACTORIZATION_THRESHOLD = 100; const GlobalConfiguration::BasisFactorizationType GlobalConfiguration::BASIS_FACTORIZATION_TYPE = @@ -99,6 +99,9 @@ const unsigned GlobalConfiguration::POLARITY_CANDIDATES_THRESHOLD = 5; const unsigned GlobalConfiguration::DNC_DEPTH_THRESHOLD = 5; +const double GlobalConfiguration::MINIMAL_COEFFICIENT_FOR_TIGHTENING = 0.01; +const double GlobalConfiguration::LEMMAS_CERTIFICATION_TOLERANCE = 0.0000001; + #ifdef ENABLE_GUROBI const unsigned GlobalConfiguration::GUROBI_NUMBER_OF_THREADS = 1; const bool GlobalConfiguration::GUROBI_LOGGING = false; diff --git a/src/configuration/GlobalConfiguration.h b/src/configuration/GlobalConfiguration.h index 6be1720f79..8eb85915f9 100644 --- a/src/configuration/GlobalConfiguration.h +++ b/src/configuration/GlobalConfiguration.h @@ -29,7 +29,7 @@ class GlobalConfiguration // Whether to use SoI instead of Reluplex for local search for satisfying assignments //to non-linear constraint. - static const bool USE_DEEPSOI_LOCAL_SEARCH; + static bool USE_DEEPSOI_LOCAL_SEARCH; // The quantity by which the score is bumped up for PLContraints not // participating in the SoI. This promotes those constraints in the branching @@ -232,6 +232,14 @@ class GlobalConfiguration */ static const unsigned DNC_DEPTH_THRESHOLD; + /* Minimal coefficient of a variable in a Tableau row, that is used for bound tightening + */ + static const double MINIMAL_COEFFICIENT_FOR_TIGHTENING; + + /* The tolerance of errors when checking lemmas in the proof-checking process + */ + static const double LEMMAS_CERTIFICATION_TOLERANCE; + #ifdef ENABLE_GUROBI /* The number of threads Gurobi spawns diff --git a/src/configuration/OptionParser.cpp b/src/configuration/OptionParser.cpp index 08a1befefb..c2bc32dc21 100644 --- a/src/configuration/OptionParser.cpp +++ b/src/configuration/OptionParser.cpp @@ -106,6 +106,9 @@ void OptionParser::initialize() ( "debug-assignment-file", boost::program_options::value( &(*_stringOptions)[Options::EXPORT_ASSIGNMENT_FILE_PATH] )->default_value( (*_stringOptions)[Options::EXPORT_ASSIGNMENT_FILE_PATH] ), "Specifies a file to import the assignment for debugging." ) + ( "prove-unsat", + boost::program_options::bool_switch( &((*_boolOptions)[Options::PRODUCE_PROOFS]) )->default_value( (*_boolOptions)[Options::PRODUCE_PROOFS] ), + "Produce proofs of UNSAT and check them" ) #ifdef ENABLE_GUROBI #endif // ENABLE_GUROBI ; diff --git a/src/configuration/Options.cpp b/src/configuration/Options.cpp index f1cfecddec..55623c385c 100644 --- a/src/configuration/Options.cpp +++ b/src/configuration/Options.cpp @@ -51,6 +51,7 @@ void Options::initializeDefaultValues() _boolOptions[NO_PARALLEL_DEEPSOI] = false; _boolOptions[EXPORT_ASSIGNMENT] = false; _boolOptions[DEBUG_ASSIGNMENT] = false; + _boolOptions[PRODUCE_PROOFS] = false; /* Int options diff --git a/src/configuration/Options.h b/src/configuration/Options.h index dd3dc77f50..a20b341e32 100644 --- a/src/configuration/Options.h +++ b/src/configuration/Options.h @@ -70,6 +70,9 @@ class Options // Import assignment for debugging purposes, use IMPORT_ASSIGNMENT_FILE to specify the file (default: assignment.txt) DEBUG_ASSIGNMENT, + + // Produce proofs of unsatisfiability and check them + PRODUCE_PROOFS }; enum IntOptions { diff --git a/src/engine/main.cpp b/src/engine/main.cpp index 26f8015f19..2b59f4ed66 100644 --- a/src/engine/main.cpp +++ b/src/engine/main.cpp @@ -76,6 +76,25 @@ int main( int argc, char **argv ) return 0; }; + if ( Options::get()->getBool( Options::PRODUCE_PROOFS ) ) + { + GlobalConfiguration::USE_DEEPSOI_LOCAL_SEARCH = false; + options->setBool( Options::NO_PARALLEL_DEEPSOI, true ); + printf( "Proof production is not yet supported with DEEPSOI search, turning search off.\n" ); + } + + if ( Options::get()->getBool( Options::PRODUCE_PROOFS ) && ( options->getBool( Options::DNC_MODE ) ) ) + { + options->setBool( Options::DNC_MODE, false ); + printf( "Proof production is not yet supported with snc mode, turning snc off.\n" ); + } + + if ( Options::get()->getBool( Options::PRODUCE_PROOFS ) && ( options->getBool( Options::SOLVE_WITH_MILP ) ) ) + { + options->setBool( Options::SOLVE_WITH_MILP, false ); + printf( "Proof production is not yet supported with MILP solvers, turning SOLVE_WITH_MILP off.\n" ); + } + if ( options->getBool( Options::DNC_MODE ) || ( !options->getBool( Options::NO_PARALLEL_DEEPSOI ) && !options->getBool( Options::SOLVE_WITH_MILP ) && diff --git a/src/proofs/BoundExplainer.cpp b/src/proofs/BoundExplainer.cpp index 62bac4e993..29a5b47614 100644 --- a/src/proofs/BoundExplainer.cpp +++ b/src/proofs/BoundExplainer.cpp @@ -14,14 +14,68 @@ #include "BoundExplainer.h" -BoundExplainer::BoundExplainer( unsigned numberOfVariables, unsigned numberOfRows ) - : _numberOfVariables( numberOfVariables ) +using namespace CVC4::context; + +BoundExplainer::BoundExplainer( unsigned numberOfVariables, unsigned numberOfRows, Context &ctx ) + : _context( ctx ), + _numberOfVariables( numberOfVariables ) , _numberOfRows( numberOfRows ) - , _upperBoundExplanations( _numberOfVariables, Vector( 0 ) ) - , _lowerBoundExplanations( _numberOfVariables, Vector( 0 ) ) + , _upperBoundExplanations( _numberOfVariables, Vector *>( 0 ) ) + , _lowerBoundExplanations( _numberOfVariables, Vector *>( 0 ) ) + , _trivialUpperBoundExplanation( 0 ) + , _trivialLowerBoundExplanation( 0 ) +{ + for ( unsigned i = 0; i < _numberOfVariables; ++i ) + { + for ( unsigned j = 0; j < _numberOfRows; ++j ) + { + _upperBoundExplanations[i].append( new ( true ) CDO( &ctx, 0 ) ); + _lowerBoundExplanations[i].append( new ( true ) CDO( &ctx, 0 ) ); + } + + _trivialUpperBoundExplanation.append( new ( true ) CDO( &ctx, true ) ) ; + _trivialLowerBoundExplanation.append( new ( true ) CDO( &ctx, true ) ); + } +} + +BoundExplainer::~BoundExplainer() { + for ( unsigned i = 0; i < _numberOfVariables; ++i ) + { + for ( unsigned j = 0; j < _numberOfRows; ++j ) + { + _upperBoundExplanations[i][j]->deleteSelf(); + _lowerBoundExplanations[i][j]->deleteSelf(); + } + + _trivialUpperBoundExplanation[i]->deleteSelf(); + _trivialLowerBoundExplanation[i]->deleteSelf(); + } } +BoundExplainer &BoundExplainer::operator=( const BoundExplainer &other ) +{ + if ( this == &other ) + return *this; + + _numberOfRows = other._numberOfRows; + _numberOfVariables = other._numberOfVariables; + + for ( unsigned i = 0; i < _numberOfVariables; ++i ) + { + for ( unsigned j = 0; j < _numberOfRows; ++j ) + { + _upperBoundExplanations[i][j]->set( other._upperBoundExplanations[i][j]->get() ); + _lowerBoundExplanations[i][j]->set( other._lowerBoundExplanations[i][j]->get() ); + } + _trivialUpperBoundExplanation[i]->set( other._trivialUpperBoundExplanation[i]->get() ); + _trivialLowerBoundExplanation[i]->set( other._trivialLowerBoundExplanation[i]->get() ); + } + + return *this; +} + + unsigned BoundExplainer::getNumberOfRows() const { return _numberOfRows; @@ -32,7 +86,7 @@ unsigned BoundExplainer::getNumberOfVariables() const return _numberOfVariables; } -const Vector &BoundExplainer::getExplanation( unsigned var, bool isUpper ) +const Vector *> &BoundExplainer::getExplanation( unsigned var, bool isUpper ) { ASSERT ( var < _numberOfVariables ); return isUpper ? _upperBoundExplanations[var] : _lowerBoundExplanations[var]; @@ -73,9 +127,9 @@ void BoundExplainer::updateBoundExplanation( const TableauRow &row, bool isUpper ci = -1; ASSERT( !FloatUtils::isZero( ci ) ); - Vector rowCoefficients = Vector( _numberOfRows, 0 ); - Vector sum = Vector( _numberOfRows, 0 ); - Vector tempBound; + auto rowCoefficients = Vector( _numberOfRows, 0 ); + auto sum = Vector( _numberOfRows, 0 ); + Vector *> tempBound; for ( unsigned i = 0; i < row._size; ++i ) { @@ -93,6 +147,10 @@ void BoundExplainer::updateBoundExplanation( const TableauRow &row, bool isUpper // If we're currently explaining an upper bound, we use upper bound explanation iff variable's coefficient is positive // If we're currently explaining a lower bound, we use upper bound explanation iff variable's coefficient is negative tempUpper = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ); + + if ( ( tempUpper && *_trivialUpperBoundExplanation[curVar] ) || (!tempUpper && *_trivialLowerBoundExplanation[curVar] ) ) + continue; + tempBound = tempUpper ? _upperBoundExplanations[curVar] : _lowerBoundExplanations[curVar]; addVecTimesScalar( sum, tempBound, realCoefficient ); } @@ -104,8 +162,11 @@ void BoundExplainer::updateBoundExplanation( const TableauRow &row, bool isUpper if ( !FloatUtils::isZero( realCoefficient ) ) { tempUpper = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ); - tempBound = tempUpper ? _upperBoundExplanations[row._lhs] : _lowerBoundExplanations[row._lhs]; - addVecTimesScalar( sum, tempBound, realCoefficient ); + if ( !( tempUpper && *_trivialUpperBoundExplanation[row._lhs] ) && !( !tempUpper && *_trivialLowerBoundExplanation[row._lhs] ) ) + { + tempBound = tempUpper ? _upperBoundExplanations[row._lhs] : _lowerBoundExplanations[row._lhs]; + addVecTimesScalar( sum, tempBound, realCoefficient ); + } } } @@ -137,9 +198,9 @@ void BoundExplainer::updateBoundExplanationSparse( const SparseUnsortedList &row } ASSERT( !FloatUtils::isZero( ci ) ); - Vector rowCoefficients = Vector( _numberOfRows, 0 ); - Vector sum = Vector( _numberOfRows, 0 ); - Vector tempBound; + auto rowCoefficients = Vector( _numberOfRows, 0 ); + auto sum = Vector( _numberOfRows, 0 ); + Vector *> tempBound; for ( const auto &entry : row ) { @@ -155,6 +216,10 @@ void BoundExplainer::updateBoundExplanationSparse( const SparseUnsortedList &row // If we're currently explaining an upper bound, we use upper bound explanation iff variable's coefficient is positive // If we're currently explaining a lower bound, we use upper bound explanation iff variable's coefficient is negative tempUpper = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ); + + if ( ( tempUpper && *_trivialUpperBoundExplanation[entry._index] ) || ( !tempUpper && *_trivialLowerBoundExplanation[entry._index] ) ) + continue; + tempBound = tempUpper ? _upperBoundExplanations[entry._index] : _lowerBoundExplanations[entry._index]; addVecTimesScalar( sum, tempBound, realCoefficient ); } @@ -166,6 +231,17 @@ void BoundExplainer::updateBoundExplanationSparse( const SparseUnsortedList &row setExplanation( sum, var, isUpper ); } +void BoundExplainer::addVecTimesScalar( Vector &sum, const Vector *> &input, double scalar ) const +{ + if ( input.empty() || FloatUtils::isZero( scalar ) ) + return; + + ASSERT( sum.size() == _numberOfRows && input.size() == _numberOfRows ); + + for ( unsigned i = 0; i < _numberOfRows; ++i ) + sum[i] += scalar * ( *input[i] ); +} + void BoundExplainer::addVecTimesScalar( Vector &sum, const Vector &input, double scalar ) const { if ( input.empty() || FloatUtils::isZero( scalar ) ) @@ -211,28 +287,54 @@ void BoundExplainer::addVariable() { ++_numberOfRows; ++_numberOfVariables; - _upperBoundExplanations.append( Vector( 0 ) ); - _lowerBoundExplanations.append( Vector( 0 ) ); - for ( unsigned i = 0; i < _numberOfVariables; ++i ) + // Add info to all current explanations + for ( unsigned i = 0; i < _numberOfVariables - 1; ++i ) { - if ( !_upperBoundExplanations[i].empty() ) - _upperBoundExplanations[i].append( 0 ); + _upperBoundExplanations[i].append( new ( true ) CDO( &_context, 0 ) ); + _lowerBoundExplanations[i].append( new ( true ) CDO( &_context, 0 ) ); + } + + // Add a new explanation for the new variable + _trivialUpperBoundExplanation.append( new ( true ) CDO( &_context, true ) ); + _trivialLowerBoundExplanation.append( new ( true ) CDO( &_context, true ) ); - if ( !_lowerBoundExplanations[i].empty() ) - _lowerBoundExplanations[i].append( 0 ); + _upperBoundExplanations.append( Vector *>( 0 ) ); + _lowerBoundExplanations.append( Vector *>( 0 ) ); + + for ( unsigned i = 0; i < _numberOfRows; ++i ) + { + _upperBoundExplanations[_numberOfVariables - 1].append( new ( true ) CDO( &_context, 0 ) ); + _lowerBoundExplanations[_numberOfVariables - 1].append( new ( true ) CDO( &_context, 0 ) ); } + + ASSERT( _upperBoundExplanations.size() == _numberOfVariables ); + ASSERT( _upperBoundExplanations[0].size() == _numberOfRows ); + ASSERT( _trivialUpperBoundExplanation.size() == _numberOfVariables ); } void BoundExplainer::resetExplanation( unsigned var, bool isUpper ) { ASSERT( var < _numberOfVariables ); - isUpper ? _upperBoundExplanations[var].clear() : _lowerBoundExplanations[var].clear(); + auto temp = isUpper ? _upperBoundExplanations[var] : _lowerBoundExplanations[var]; + + for ( unsigned i = 0; i < _numberOfRows; ++i ) + temp[i]->set( 0 ); + + isUpper ? _trivialUpperBoundExplanation[var]->set( true ) : _trivialLowerBoundExplanation[var]->set( true ); } void BoundExplainer::setExplanation( const Vector &explanation, unsigned var, bool isUpper ) { - ASSERT( var < _numberOfVariables && (explanation.empty() || explanation.size() == _numberOfRows ) ); - Vector *temp = isUpper ? &_upperBoundExplanations[var] : &_lowerBoundExplanations[var]; - *temp = explanation; + ASSERT( var < _numberOfVariables && ( explanation.empty() || explanation.size() == _numberOfRows ) ); + auto temp = isUpper ? &_upperBoundExplanations[var] : &_lowerBoundExplanations[var]; + for ( unsigned i = 0; i < _numberOfRows; ++i ) + ( *temp )[i]->set( explanation[i] ); + + isUpper ? _trivialUpperBoundExplanation[var]->set( false ) : _trivialLowerBoundExplanation[var]->set( false ); } + +bool BoundExplainer::isExplanationTrivial( unsigned var, bool isUpper ) const +{ + return isUpper ? *_trivialUpperBoundExplanation[var] : *_trivialLowerBoundExplanation[var]; +} \ No newline at end of file diff --git a/src/proofs/BoundExplainer.h b/src/proofs/BoundExplainer.h index 8767a5f488..34858721f1 100644 --- a/src/proofs/BoundExplainer.h +++ b/src/proofs/BoundExplainer.h @@ -15,6 +15,8 @@ #ifndef __BoundsExplainer_h__ #define __BoundsExplainer_h__ +#include "context/cdo.h" +#include "context/context.h" #include "SparseUnsortedList.h" #include "TableauRow.h" #include "Vector.h" @@ -25,8 +27,10 @@ class BoundExplainer { public: - BoundExplainer( unsigned numberOfVariables, unsigned numberOfRows ); + BoundExplainer( unsigned numberOfVariables, unsigned numberOfRows, CVC4::context::Context &ctx ); + ~BoundExplainer(); + BoundExplainer &operator=( const BoundExplainer &other ); /* Returns the number of rows */ @@ -40,7 +44,7 @@ class BoundExplainer /* Returns a bound explanation */ - const Vector &getExplanation( unsigned var, bool isUpper ); + const Vector *> &getExplanation( unsigned var, bool isUpper ); /* Given a row, updates the values of the bound explanations of its lhs according to the row @@ -72,15 +76,28 @@ class BoundExplainer */ void setExplanation( const Vector &explanation, unsigned var, bool isUpper ); + /* + * Returns true iff an explanation is the zero vector + */ + bool isExplanationTrivial( unsigned var, bool isUpper ) const; + private: + CVC4::context::Context &_context; + unsigned _numberOfVariables; unsigned _numberOfRows; - Vector> _upperBoundExplanations; - Vector> _lowerBoundExplanations; + + Vector *>> _upperBoundExplanations; + Vector *>> _lowerBoundExplanations; + + Vector *> _trivialUpperBoundExplanation; + Vector *> _trivialLowerBoundExplanation; /* Adds a multiplication of an array by scalar to another array */ + void addVecTimesScalar( Vector &sum, const Vector *> &input, double scalar ) const; + void addVecTimesScalar( Vector &sum, const Vector &input, double scalar ) const; /* diff --git a/src/proofs/Checker.cpp b/src/proofs/Checker.cpp index 61f32cbadd..31a50ab310 100644 --- a/src/proofs/Checker.cpp +++ b/src/proofs/Checker.cpp @@ -15,11 +15,13 @@ #include "Checker.h" Checker::Checker( const UnsatCertificateNode *root, - const Vector> &initialTableau, + unsigned proofSize, + const SparseMatrix *initialTableau, const Vector &groundUpperBounds, const Vector &groundLowerBounds, const List &problemConstraints ) : _root( root ) + , _proofSize( proofSize ) , _initialTableau( initialTableau ) , _groundUpperBounds( groundUpperBounds ) , _groundLowerBounds( groundLowerBounds ) @@ -53,7 +55,7 @@ bool Checker::checkNode( const UnsatCertificateNode *node ) } // Check all PLC bound propagations - if ( !checkAllPLCExplanations( node, UNSATCertificateUtils::CERTIFICATION_TOLERANCE ) ) + if ( !checkAllPLCExplanations( node, GlobalConfiguration::LEMMAS_CERTIFICATION_TOLERANCE ) ) return false; // Save to file if marked @@ -128,12 +130,17 @@ bool Checker::checkNode( const UnsatCertificateNode *node ) bool Checker::checkContradiction( const UnsatCertificateNode *node ) const { ASSERT( node->isValidLeaf() && !node->getSATSolutionFlag() ); - unsigned var = node->getContradiction()->getVar(); + auto contradictionVec = node->getContradiction()->getContradictionVec(); - double computedUpper = explainBound( var, true, node->getContradiction()->getUpperBoundExplanation() ); - double computedLower = explainBound( var, false, node->getContradiction()->getLowerBoundExplanation() ); + if ( contradictionVec == NULL ) + { + double infeasibleVar = node->getContradiction()->getVar(); + return FloatUtils::isNegative( _groundUpperBounds[infeasibleVar] - _groundLowerBounds[infeasibleVar] ); + } + + double contradictionUpperBound = UNSATCertificateUtils::computeCombinationUpperBound( contradictionVec, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); - return computedUpper < computedLower; + return FloatUtils::isNegative( contradictionUpperBound ); } bool Checker::checkAllPLCExplanations( const UnsatCertificateNode *node, double epsilon ) @@ -156,7 +163,7 @@ bool Checker::checkAllPLCExplanations( const UnsatCertificateNode *node, double BoundType affectedVarBound = plcExplanation->getAffectedVarBound(); PiecewiseLinearFunctionType constraintType = plcExplanation->getConstraintType(); - double explainedBound = UNSATCertificateUtils::computeBound( causingVar, causingVarBound == UPPER, explanation, _initialTableau, _groundUpperBounds, _groundLowerBounds ); + double explainedBound = UNSATCertificateUtils::computeBound( causingVar, causingVarBound == UPPER, explanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); unsigned b = 0; unsigned f = 0; unsigned aux = 0; @@ -234,7 +241,7 @@ bool Checker::checkAllPLCExplanations( const UnsatCertificateNode *node, double return false; // If so, update the ground bounds and continue - Vector &temp = affectedVarBound == UPPER ? _groundUpperBounds : _groundLowerBounds; + auto &temp = affectedVarBound == UPPER ? _groundUpperBounds : _groundLowerBounds; bool isTighter = affectedVarBound ? FloatUtils::lt( bound, temp[affectedVar] ) : FloatUtils::gt( bound, temp[affectedVar] ); if ( isTighter ) { @@ -248,7 +255,7 @@ bool Checker::checkAllPLCExplanations( const UnsatCertificateNode *node, double double Checker::explainBound( unsigned var, bool isUpper, const double *explanation ) const { - return UNSATCertificateUtils::computeBound( var, isUpper, explanation, _initialTableau, _groundUpperBounds, _groundLowerBounds ); + return UNSATCertificateUtils::computeBound( var, isUpper, explanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); } PiecewiseLinearConstraint *Checker::getCorrespondingReLUConstraint( const List &splits ) @@ -293,15 +300,20 @@ void Checker::writeToFile() // Write with SmtLibWriter unsigned b, f; - unsigned m = _initialTableau.size(); + unsigned m = _proofSize; unsigned n = _groundUpperBounds.size(); SmtLibWriter::addHeader( n, leafInstance ); SmtLibWriter::addGroundUpperBounds( _groundUpperBounds, leafInstance ); SmtLibWriter::addGroundLowerBounds( _groundLowerBounds, leafInstance ); + auto tableauRow = SparseUnsortedList(); + for ( unsigned i = 0; i < m; ++i ) - SmtLibWriter::addTableauRow( ( _initialTableau )[i], leafInstance ); + { + _initialTableau->getRow( i, &tableauRow ); + SmtLibWriter::addTableauRow( tableauRow , leafInstance ); + } for ( auto &constraint : _problemConstraints ) if ( constraint->getType() == PiecewiseLinearFunctionType::RELU ) diff --git a/src/proofs/Checker.h b/src/proofs/Checker.h index 9436c5a951..530b2ac574 100644 --- a/src/proofs/Checker.h +++ b/src/proofs/Checker.h @@ -15,9 +15,9 @@ #ifndef __Checker_h__ #define __Checker_h__ -#include "UnsatCertificateNode.h" #include "Set.h" #include "Stack.h" +#include "UnsatCertificateNode.h" /* A class responsible to certify the UnsatCertificate @@ -26,7 +26,8 @@ class Checker { public: Checker( const UnsatCertificateNode *root, - const Vector> &initialTableau, + unsigned proofSize, + const SparseMatrix *initialTableau, const Vector &groundUpperBounds, const Vector &groundLowerBounds, const List &_problemConstraints ); @@ -40,9 +41,10 @@ class Checker private: // The root of the tree to check const UnsatCertificateNode *_root; + unsigned _proofSize; // Additional context data - const Vector> &_initialTableau; + const SparseMatrix *_initialTableau; Vector _groundUpperBounds; Vector _groundLowerBounds; diff --git a/src/proofs/Contradiction.cpp b/src/proofs/Contradiction.cpp index 76ecb41fc8..63e836364d 100644 --- a/src/proofs/Contradiction.cpp +++ b/src/proofs/Contradiction.cpp @@ -14,38 +14,29 @@ #include "Contradiction.h" -Contradiction::Contradiction( unsigned var, const Vector &upperBoundExplanation, const Vector &lowerBoundExplanation ) - : _var( var ) +Contradiction::Contradiction( const Vector &contradictionVec ) { - if ( upperBoundExplanation.empty() ) - _upperBoundExplanation = NULL; + if ( contradictionVec.empty() ) + _contradictionVec = NULL; else { - _upperBoundExplanation = new double[upperBoundExplanation.size()]; - std::copy( upperBoundExplanation.begin(), upperBoundExplanation.end(), _upperBoundExplanation ); + _contradictionVec = new double[contradictionVec.size()]; + std::copy( contradictionVec.begin(), contradictionVec.end(), _contradictionVec ); } +} - if ( lowerBoundExplanation.empty() ) - _lowerBoundExplanation = NULL; - else - { - _lowerBoundExplanation = new double[lowerBoundExplanation.size()]; - std::copy( lowerBoundExplanation.begin(), lowerBoundExplanation.end(), _lowerBoundExplanation ); - } +Contradiction::Contradiction( unsigned var ) + : _var( var ) + , _contradictionVec( NULL ) +{ } Contradiction::~Contradiction() { - if ( _upperBoundExplanation ) + if ( _contradictionVec ) { - delete [] _upperBoundExplanation; - _upperBoundExplanation = NULL; - } - - if ( _lowerBoundExplanation ) - { - delete [] _lowerBoundExplanation; - _lowerBoundExplanation = NULL; + delete [] _contradictionVec; + _contradictionVec = NULL; } } @@ -54,12 +45,7 @@ unsigned Contradiction::getVar() const return _var; } -const double *Contradiction::getUpperBoundExplanation() const -{ - return _upperBoundExplanation; -} - -const double *Contradiction::getLowerBoundExplanation() const +const double *Contradiction::getContradictionVec() const { - return _lowerBoundExplanation; + return _contradictionVec; } diff --git a/src/proofs/Contradiction.h b/src/proofs/Contradiction.h index c686ed3d12..46d121731e 100644 --- a/src/proofs/Contradiction.h +++ b/src/proofs/Contradiction.h @@ -23,20 +23,20 @@ class Contradiction { public: - Contradiction( unsigned var, const Vector &upperBoundExplanation, const Vector &lowerBoundExplanation ); + Contradiction( const Vector &contradictionVec ); + Contradiction( unsigned var ); + ~Contradiction(); /* Getters for all fields */ unsigned getVar() const; - const double *getUpperBoundExplanation() const; - const double *getLowerBoundExplanation() const; + const double *getContradictionVec() const; private: unsigned _var; - double *_upperBoundExplanation; - double *_lowerBoundExplanation; + double *_contradictionVec; }; #endif //__Contradiction_h__ diff --git a/src/proofs/PlcExplanation.cpp b/src/proofs/PlcExplanation.cpp index 75297df225..69a46f3dd2 100644 --- a/src/proofs/PlcExplanation.cpp +++ b/src/proofs/PlcExplanation.cpp @@ -20,15 +20,13 @@ PLCExplanation::PLCExplanation( unsigned causingVar, BoundType causingVarBound, BoundType affectedVarBound, const Vector &explanation, - PiecewiseLinearFunctionType constraintType, - unsigned decisionLevel ) + PiecewiseLinearFunctionType constraintType ) : _causingVar( causingVar ) , _affectedVar( affectedVar ) , _bound( bound ) , _causingVarBound( causingVarBound ) , _affectedVarBound( affectedVarBound ) , _constraintType( constraintType ) - , _decisionLevel( decisionLevel ) { if ( explanation.empty() ) _explanation = NULL; @@ -82,8 +80,3 @@ PiecewiseLinearFunctionType PLCExplanation::getConstraintType() const { return _constraintType; } - -unsigned PLCExplanation::getDecisionLevel() const -{ - return _decisionLevel; -} diff --git a/src/proofs/PlcExplanation.h b/src/proofs/PlcExplanation.h index 7e02a09695..c68c6fa7d2 100644 --- a/src/proofs/PlcExplanation.h +++ b/src/proofs/PlcExplanation.h @@ -16,14 +16,9 @@ #define __PlcExplanation_h__ #include "PiecewiseLinearConstraint.h" +#include "PiecewiseLinearFunctionType.h" #include "Vector.h" -enum BoundType : unsigned -{ - UPPER = 1, - LOWER = 0, -}; - /* Contains all necessary info of a ground bound update during a run (i.e from ReLU phase-fixing) */ @@ -36,8 +31,7 @@ class PLCExplanation BoundType causingVarBound, BoundType affectedVarBound, const Vector &explanation, - PiecewiseLinearFunctionType constraintType, - unsigned decisionLevel ); + PiecewiseLinearFunctionType constraintType ); ~PLCExplanation(); @@ -52,7 +46,6 @@ class PLCExplanation BoundType getAffectedVarBound() const; const double *getExplanation() const; PiecewiseLinearFunctionType getConstraintType() const; - unsigned getDecisionLevel() const; private: unsigned _causingVar; @@ -62,7 +55,6 @@ class PLCExplanation BoundType _affectedVarBound; double *_explanation; PiecewiseLinearFunctionType _constraintType; - unsigned _decisionLevel; }; #endif //__PlcExplanation_h__ diff --git a/src/proofs/SmtLibWriter.cpp b/src/proofs/SmtLibWriter.cpp index b7a8580615..680850f280 100644 --- a/src/proofs/SmtLibWriter.cpp +++ b/src/proofs/SmtLibWriter.cpp @@ -37,23 +37,27 @@ void SmtLibWriter::addReLUConstraint( unsigned b, unsigned f, const PhaseStatus instance.append( "( assert ( = x" + std::to_string( f ) + " 0 ) )\n" ); } -void SmtLibWriter::addTableauRow( const Vector &row, List &instance ) +void SmtLibWriter::addTableauRow( const SparseUnsortedList &row, List &instance ) { - unsigned size = row.size(); + unsigned size = row.getSize(); unsigned counter = 0; String assertRowLine = "( assert ( = 0"; + auto entry = row.begin(); - for ( unsigned i = 0; i < size - 1; ++i ) + for ( ; entry != row.end(); ++entry ) { - if ( FloatUtils::isZero( row[i] ) ) + if ( FloatUtils::isZero( entry->_value ) ) continue; - assertRowLine += String( " ( + ( * " ) + signedValue( row[i] ) + " x" + std::to_string( i ) + " )"; + if ( counter == size - 1 ) + break; + + assertRowLine += String( " ( + ( * " ) + signedValue( entry->_value ) + " x" + std::to_string( entry->_index ) + " )"; ++counter; } // Add last element - assertRowLine += String( " ( * " ) + signedValue( row[size - 1] ) + " x" + std::to_string( size - 1 ) + " )"; + assertRowLine += String( " ( * " ) + signedValue(entry->_value ) + " x" + std::to_string( entry->_index ) + " )"; for ( unsigned i = 0; i < counter + 2 ; ++i ) assertRowLine += String( " )" ); diff --git a/src/proofs/SmtLibWriter.h b/src/proofs/SmtLibWriter.h index da0321884a..9b15b20a24 100644 --- a/src/proofs/SmtLibWriter.h +++ b/src/proofs/SmtLibWriter.h @@ -46,7 +46,7 @@ class SmtLibWriter /* Adds a line representing a Tableau Row, in SMTLIB format, to the SMTLIB instance */ - static void addTableauRow( const Vector &row, List &instance ); + static void addTableauRow( const SparseUnsortedList &row, List &instance ); /* Adds lines representing the ground upper bounds, in SMTLIB format, to the SMTLIB instance diff --git a/src/proofs/UnsatCertificateNode.cpp b/src/proofs/UnsatCertificateNode.cpp index bf6b4a74d3..bcd64045b7 100644 --- a/src/proofs/UnsatCertificateNode.cpp +++ b/src/proofs/UnsatCertificateNode.cpp @@ -85,11 +85,6 @@ void UnsatCertificateNode::addPLCExplanation( std::shared_ptr &e _PLCExplanations.append( explanation ); } -void UnsatCertificateNode::setPLCExplanations( const List> &explanations ) -{ - _PLCExplanations.clear(); - _PLCExplanations = explanations; -} UnsatCertificateNode *UnsatCertificateNode::getChildBySplit( const PiecewiseLinearCaseSplit &split ) const { @@ -151,11 +146,6 @@ void UnsatCertificateNode::makeLeaf() _children.clear(); } -void UnsatCertificateNode::removePLCExplanationsBelowDecisionLevel( unsigned decisionLevel ) -{ - _PLCExplanations.removeIf( [decisionLevel] ( std::shared_ptr &explanation ){ return explanation->getDecisionLevel() <= decisionLevel; } ); -} - bool UnsatCertificateNode::isValidLeaf() const { return _contradiction && _children.empty(); diff --git a/src/proofs/UnsatCertificateNode.h b/src/proofs/UnsatCertificateNode.h index ca381ef28c..d4aeb8a301 100644 --- a/src/proofs/UnsatCertificateNode.h +++ b/src/proofs/UnsatCertificateNode.h @@ -69,11 +69,6 @@ class UnsatCertificateNode */ const List> &getPLCExplanations() const; - /* - Sets the list of PLC explanations of the node - */ - void setPLCExplanations( const List> &explanations ); - /* Adds an PLC explanation to the list */ @@ -124,11 +119,6 @@ class UnsatCertificateNode */ void makeLeaf(); - /* - Removes all PLCExplanations above a certain decision level WITHOUT deleting them - */ - void removePLCExplanationsBelowDecisionLevel( unsigned decisionLevel ); - /* Checks if the node is a valid leaf */ diff --git a/src/proofs/UnsatCertificateUtils.cpp b/src/proofs/UnsatCertificateUtils.cpp index 2d8cbbac89..fb70187279 100644 --- a/src/proofs/UnsatCertificateUtils.cpp +++ b/src/proofs/UnsatCertificateUtils.cpp @@ -17,36 +17,34 @@ double UNSATCertificateUtils::computeBound( unsigned var, bool isUpper, const double *explanation, - const Vector> &initialTableau, - const Vector &groundUpperBounds, - const Vector &groundLowerBounds ) + const SparseMatrix *initialTableau, + const double *groundUpperBounds, + const double *groundLowerBounds, + unsigned numberOfRows, + unsigned numberOfVariables ) { - ASSERT( groundLowerBounds.size() == groundUpperBounds.size() ); - ASSERT( groundLowerBounds.size() == initialTableau[0].size() ); - ASSERT( groundLowerBounds.size() == initialTableau[initialTableau.size() - 1 ].size() ); - ASSERT( var < groundUpperBounds.size() ); + ASSERT( var < numberOfVariables ); double derivedBound = 0; double temp; - unsigned n = groundUpperBounds.size(); if ( !explanation ) return isUpper ? groundUpperBounds[var] : groundLowerBounds[var]; + Vector explanationRowCombination( numberOfVariables, 0 ); // Create linear combination of original rows implied from explanation - Vector explanationRowsCombination; - UNSATCertificateUtils::getExplanationRowCombination( var, explanationRowsCombination, explanation, initialTableau ); + UNSATCertificateUtils::getExplanationRowCombination( var, explanation, explanationRowCombination, initialTableau, numberOfRows, numberOfVariables ); // Set the bound derived from the linear combination, using original bounds. - for ( unsigned i = 0; i < n; ++i ) + for ( unsigned i = 0; i < numberOfVariables; ++i ) { - temp = explanationRowsCombination[i]; + temp = explanationRowCombination[i]; if ( !FloatUtils::isZero( temp ) ) { if ( isUpper ) - temp *= FloatUtils::isPositive( explanationRowsCombination[i] ) ? groundUpperBounds[i] : groundLowerBounds[i]; + temp *= FloatUtils::isPositive( explanationRowCombination[i] ) ? groundUpperBounds[i] : groundLowerBounds[i]; else - temp *= FloatUtils::isPositive( explanationRowsCombination[i] ) ? groundLowerBounds[i] : groundUpperBounds[i]; + temp *= FloatUtils::isPositive( explanationRowCombination[i] ) ? groundLowerBounds[i] : groundUpperBounds[i]; if ( !FloatUtils::isZero( temp ) ) derivedBound += temp; @@ -57,23 +55,31 @@ double UNSATCertificateUtils::computeBound( unsigned var, } void UNSATCertificateUtils::getExplanationRowCombination( unsigned var, - Vector &explanationRowCombination, const double *explanation, - const Vector> &initialTableau ) + Vector &explanationRowCombination, + const SparseMatrix *initialTableau, + unsigned numberOfRows, + unsigned numberOfVariables ) { - explanationRowCombination = Vector( initialTableau[0].size(), 0 ); - unsigned n = initialTableau[0].size(); - unsigned m = initialTableau.size(); - for ( unsigned i = 0; i < m; ++i ) + ASSERT( explanation != NULL ); + + SparseUnsortedList tableauRow( numberOfVariables ); + explanationRowCombination = Vector ( numberOfVariables, 0 ); + + for ( unsigned i = 0; i < numberOfRows; ++i ) { - for ( unsigned j = 0; j < n; ++j ) + if ( FloatUtils::isZero( explanation[i] ) ) + continue; + + initialTableau->getRow( i, &tableauRow ); + for ( auto entry : tableauRow ) { - if ( !FloatUtils::isZero( initialTableau[i][j] ) && !FloatUtils::isZero( explanation[i] ) ) - explanationRowCombination[j] += initialTableau[i][j] * explanation[i]; + if ( !FloatUtils::isZero( entry._value ) ) + explanationRowCombination[entry._index] += entry._value * explanation[i]; } } - for ( unsigned i = 0; i < n; ++i ) + for ( unsigned i = 0; i < numberOfVariables; ++i ) { if ( FloatUtils::isZero( explanationRowCombination[i] ) ) explanationRowCombination[i] = 0; @@ -83,3 +89,47 @@ void UNSATCertificateUtils::getExplanationRowCombination( unsigned var, // We have: var = Sum (ci * xi) + (c + 1) * var ++explanationRowCombination[var]; } + +double UNSATCertificateUtils::computeCombinationUpperBound( const double *explanation, + const SparseMatrix *initialTableau, + const double *groundUpperBounds, + const double *groundLowerBounds, + unsigned numberOfRows, + unsigned numberOfVariables ) +{ + ASSERT( explanation != NULL ); + + SparseUnsortedList tableauRow( numberOfVariables ); + Vector explanationRowCombination( numberOfVariables, 0 ); + + for ( unsigned row = 0; row < numberOfRows; ++row ) + { + if ( FloatUtils::isZero( explanation[row] ) ) + continue; + + initialTableau->getRow( row, &tableauRow ); + for ( auto entry : tableauRow ) + { + if ( !FloatUtils::isZero( entry._value ) ) + explanationRowCombination[entry._index] += entry._value * explanation[row]; + } + } + + double derivedBound = 0; + double temp; + + // Set the bound derived from the linear combination, using original bounds. + for ( unsigned i = 0; i < numberOfVariables; ++i ) + { + temp = explanationRowCombination[i]; + if ( !FloatUtils::isZero( temp ) ) + { + temp *= FloatUtils::isPositive( explanationRowCombination[i] ) ? groundUpperBounds[i] : groundLowerBounds[i]; + + if ( !FloatUtils::isZero( temp ) ) + derivedBound += temp; + } + } + + return derivedBound; +} diff --git a/src/proofs/UnsatCertificateUtils.h b/src/proofs/UnsatCertificateUtils.h index 13cd7c437d..77dc1913f5 100644 --- a/src/proofs/UnsatCertificateUtils.h +++ b/src/proofs/UnsatCertificateUtils.h @@ -16,13 +16,13 @@ #define __UnsatCertificateUtils_h__ #include "FloatUtils.h" +#include "SparseMatrix.h" +#include "SparseUnsortedList.h" #include "Vector.h" class UNSATCertificateUtils { public: - constexpr static const double CERTIFICATION_TOLERANCE = 0.0025; - /* Use explanation to compute a bound (aka explained bound) Given a variable, an explanation, initial tableau and ground bounds. @@ -30,17 +30,28 @@ class UNSATCertificateUtils static double computeBound( unsigned var, bool isUpper, const double *explanation, - const Vector> &initialTableau, - const Vector &groundUpperBounds, - const Vector &groundLowerBounds ); + const SparseMatrix *initialTableau, + const double *groundUpperBounds, + const double *groundLowerBounds, + unsigned numberOfRows, + unsigned numberOfVariables ); /* Given a var, a tableau and a column vector, create a linear combination used to explain a bound */ static void getExplanationRowCombination( unsigned var, - Vector &explanationRowCombination, const double *explanation, - const Vector> &initialTableau ); + Vector &explanationRowCombination, + const SparseMatrix *initialTableau, + unsigned numberOfVariables, + unsigned numberOfRows ); + + static double computeCombinationUpperBound( const double *explanation, + const SparseMatrix *initialTableau, + const double *groundUpperBounds, + const double *groundLowerBounds, + unsigned numberOfRows, + unsigned numberOfVariables ); }; #endif //__UnsatCertificateUtils_h__ diff --git a/src/proofs/tests/Test_BoundExplainer.h b/src/proofs/tests/Test_BoundExplainer.h index e731630c2d..6a96c7890d 100644 --- a/src/proofs/tests/Test_BoundExplainer.h +++ b/src/proofs/tests/Test_BoundExplainer.h @@ -14,12 +14,29 @@ #include "BoundExplainer.h" #include "context/cdlist.h" +#include "context/cdo.h" #include "context/context.h" #include +using CVC4::context::Context; +using namespace CVC4::context; + class BoundsExplainerTestSuite : public CxxTest::TestSuite { public: + Context * context; + + void setUp() + { + TS_ASSERT_THROWS_NOTHING( context = new Context ); + } + + void tearDown() + { + TS_ASSERT_THROWS_NOTHING( delete context; ); + } + + /* Test initialization of BoundExplainer */ @@ -27,15 +44,15 @@ class BoundsExplainerTestSuite : public CxxTest::TestSuite { unsigned numberOfVariables = 3; unsigned numberOfRows = 5; - BoundExplainer be( numberOfVariables, numberOfRows ); + BoundExplainer be( numberOfVariables, numberOfRows, *context ); TS_ASSERT_EQUALS( be.getNumberOfRows(), numberOfRows ); TS_ASSERT_EQUALS( be.getNumberOfVariables(), numberOfVariables ); for ( unsigned i = 0; i < numberOfVariables; ++i ) { - TS_ASSERT( be.getExplanation( i, true ).empty() ); - TS_ASSERT( be.getExplanation( i, false ).empty() ); + TS_ASSERT( be.isExplanationTrivial( i, true ) ); + TS_ASSERT( be.isExplanationTrivial( i, false ) ); } } @@ -47,13 +64,13 @@ class BoundsExplainerTestSuite : public CxxTest::TestSuite unsigned numberOfVariables = 2; unsigned numberOfRows = 2; double value = -2.55; - BoundExplainer be( numberOfVariables, numberOfRows ); + BoundExplainer be( numberOfVariables, numberOfRows, *context ); TS_ASSERT_THROWS_NOTHING( be.setExplanation( Vector( numberOfVariables, value ), 0, true ) ); auto explanation = be.getExplanation( 0, true ); for ( auto num : explanation ) - TS_ASSERT_EQUALS( num, value ); + TS_ASSERT_EQUALS( num->get(), value ); } /* @@ -63,7 +80,7 @@ class BoundsExplainerTestSuite : public CxxTest::TestSuite { unsigned numberOfVariables = 2; unsigned numberOfRows = 2; - BoundExplainer be( numberOfVariables, numberOfRows ); + BoundExplainer be( numberOfVariables, numberOfRows, *context ); TS_ASSERT_THROWS_NOTHING( be.setExplanation( Vector( numberOfVariables, 1 ), numberOfVariables - 1, true ) ); TS_ASSERT_THROWS_NOTHING( be.setExplanation( Vector( numberOfVariables, 5 ), numberOfVariables - 1, false ) ); @@ -74,12 +91,12 @@ class BoundsExplainerTestSuite : public CxxTest::TestSuite for ( unsigned i = 0; i < numberOfVariables; ++ i ) { - TS_ASSERT( be.getExplanation( i, true ).empty() || ( be.getExplanation( i, true ).last() == 0 && be.getExplanation( i, true ).size() == numberOfVariables + 1 ) ); - TS_ASSERT( be.getExplanation( i, false ).empty() || ( be.getExplanation( i, false ).last() == 0 && be.getExplanation( i, false ).size() == numberOfVariables + 1 ) ); + TS_ASSERT( be.isExplanationTrivial( i, true ) || ( be.getExplanation( i, true ).last()->get() == 0 && be.getExplanation( i, true ).size() == numberOfVariables + 1 ) ); + TS_ASSERT( be.isExplanationTrivial( i, false ) || ( be.getExplanation( i, false ).last()->get() == 0 && be.getExplanation( i, false ).size() == numberOfVariables + 1 ) ); } - TS_ASSERT( be.getExplanation( numberOfVariables, true ).empty() ); - TS_ASSERT( be.getExplanation( numberOfVariables, false ).empty() ) ; + TS_ASSERT( be.isExplanationTrivial( numberOfVariables, true ) ); + TS_ASSERT( be.isExplanationTrivial( numberOfVariables, false ) ) ; } /* @@ -89,13 +106,13 @@ class BoundsExplainerTestSuite : public CxxTest::TestSuite { unsigned numberOfVariables = 1; unsigned numberOfRows = 1; - BoundExplainer be( numberOfVariables, numberOfRows ); + BoundExplainer be( numberOfVariables, numberOfRows, *context ); TS_ASSERT_THROWS_NOTHING( be.setExplanation( Vector( numberOfRows, 1 ), 0, true ) ); - TS_ASSERT( !be.getExplanation( 0 , true ).empty() ); + TS_ASSERT( !be.isExplanationTrivial( 0, true ) ); be.resetExplanation( 0, true ); - TS_ASSERT( be.getExplanation( 0 , true ).empty() ); + TS_ASSERT( be.isExplanationTrivial( 0, true ) ); } /* @@ -105,7 +122,7 @@ class BoundsExplainerTestSuite : public CxxTest::TestSuite { unsigned numberOfVariables = 6; unsigned numberOfRows = 3; - BoundExplainer be( numberOfVariables, numberOfRows ); + BoundExplainer be( numberOfVariables, numberOfRows, *context ); Vector row1 { 1, 0, 0 }; Vector row2 { 0, -1, 0 }; Vector row3 { 0, 0, 2.5 }; @@ -131,17 +148,22 @@ class BoundsExplainerTestSuite : public CxxTest::TestSuite be.updateBoundExplanation( updateTableauRow, true ); // Result is { 1, 0, 0 } + 2 * { 0, -1, 0 } + { 1, -1, 0} Vector res1 { 2, -3, 0 }; - TS_ASSERT_EQUALS( be.getExplanation( 2, true ), res1 ); + + for ( unsigned i = 0; i < 3; ++i ) + TS_ASSERT_EQUALS( be.getExplanation( 2, true )[i]->get(), res1[i] ); be.updateBoundExplanation( updateTableauRow, false, 3 ); // Result is 2 * { 0, 0, 2.5 } + { -1, 1, 0 } Vector res2 { -1, 2, 5 }; - TS_ASSERT_EQUALS( be.getExplanation( 3, false ), res2 ); + for ( unsigned i = 0; i < 3; ++i ) + TS_ASSERT_EQUALS( be.getExplanation( 3, false )[i]->get(), res2[i] ); be.updateBoundExplanation( updateTableauRow, false, 1 ); // Result is -0.5 * { 1, 0, 0 } + 0.5 * { -1, 2, 5 } - 0.5 * { 1, -1, 0 } Vector res3 { -1.5, 1.5, 2.5 }; - TS_ASSERT_EQUALS( be.getExplanation( 1, false ), res3 ); + + for ( unsigned i = 0; i < 3; ++i ) + TS_ASSERT_EQUALS( be.getExplanation( 1, false )[i]->get(), res3[i] ); // row3:= x1 = x5 // Row coefficients are { 0, 0, 2.5 } @@ -152,6 +174,7 @@ class BoundsExplainerTestSuite : public CxxTest::TestSuite be.updateBoundExplanationSparse( updateSparseRow, true, 5 ); // Result is ( 1 / 2.5 ) * ( -2.5 ) * { -1.5, 1.5, 2.5 } + ( 1 / 2.5 ) * { 0, 0, 2.5 } Vector res4 { 1.5, -1.5, -1.5 }; - TS_ASSERT_EQUALS( be.getExplanation( 5, true ), res4 ); + for ( unsigned i = 0; i < 3; ++i) + TS_ASSERT_EQUALS( be.getExplanation( 5, true )[i]->get(), res4[i] ); } }; diff --git a/src/proofs/tests/Test_Checker.h b/src/proofs/tests/Test_Checker.h index bb04748377..d14b57f132 100644 --- a/src/proofs/tests/Test_Checker.h +++ b/src/proofs/tests/Test_Checker.h @@ -13,9 +13,8 @@ **/ #include "Checker.h" -#include "context/cdlist.h" -#include "context/context.h" -#include +#include "CSRMatrix.h" +#include "cxxtest/TestSuite.h" class CheckerTestSuite : public CxxTest::TestSuite { @@ -25,14 +24,14 @@ class CheckerTestSuite : public CxxTest::TestSuite */ void testCertification() { - Vector row1 = { 1, 0, -1, 0, 1, 0, 0 }; // Row of ReLU1 - Vector row2 = { 0, 1, 0, -1, 0, 1, 0 }; // Row of ReLU2 - Vector row3 = { 0.5, 0, -1, 0, 0, 0, 1 }; - Vector> initialTableau = { row1, row2, row3 }; + unsigned m = 3, n = 6; + double A[] = { 1, 0, -1, 1, 0, 0, 0, -1, 2, 0, 1, 0, 0.5, 0, -1, 0, 0, 1 }; - Vector groundUpperBounds( row1.size(), 1 ); - Vector groundLowerBounds( row1.size(), 0 ); - groundUpperBounds[6] = 2; + auto initialTableau = CSRMatrix( A, m, n ); + + Vector groundUpperBounds( n, 1 ); + Vector groundLowerBounds( n, 0 ); + groundUpperBounds[5] = 2; ReluConstraint relu1 = ReluConstraint( 0, 2 ); // aux var is 4 ReluConstraint relu2 = ReluConstraint( 1, 3 ) ; // aux var is 5 @@ -41,7 +40,7 @@ class CheckerTestSuite : public CxxTest::TestSuite // Set a complete tree of depth 3, using 2 ReLUs auto *root = new UnsatCertificateNode( NULL, PiecewiseLinearCaseSplit() ); - Checker checker( root, initialTableau, groundUpperBounds, groundLowerBounds, constraintsList ); + Checker checker( root, m, &initialTableau, groundUpperBounds, groundLowerBounds, constraintsList ); auto splits1 = relu1.getCaseSplits(); auto splits2 = relu2.getCaseSplits(); diff --git a/src/proofs/tests/Test_SmtLibWriter.h b/src/proofs/tests/Test_SmtLibWriter.h index cd13b1a2db..d83e952f30 100644 --- a/src/proofs/tests/Test_SmtLibWriter.h +++ b/src/proofs/tests/Test_SmtLibWriter.h @@ -26,11 +26,11 @@ class SmtLibWriterTestSuite : public CxxTest::TestSuite /* Tests the whole functionality of the SmtLibWriter module */ - void testSmtLibWritting() + void testSmtLibWriting() { file = new MockFile(); Vector row = { 1, 1 }; - Vector> initialTableau = { row }; + SparseUnsortedList sparseRow( row.data(), 2 ); Vector groundUpperBounds = { 1, 1 }; Vector groundLowerBounds = { 1 , -1 }; List instance; @@ -38,7 +38,7 @@ class SmtLibWriterTestSuite : public CxxTest::TestSuite SmtLibWriter::addHeader( 2, instance ); SmtLibWriter::addGroundUpperBounds( groundUpperBounds, instance ); SmtLibWriter::addGroundLowerBounds( groundLowerBounds, instance ); - SmtLibWriter::addTableauRow( initialTableau[0], instance ); + SmtLibWriter::addTableauRow( sparseRow, instance ); SmtLibWriter::addReLUConstraint( 0, 1, PHASE_NOT_FIXED, instance ); SmtLibWriter::addFooter( instance ); diff --git a/src/proofs/tests/Test_UnsatCertificateNode.h b/src/proofs/tests/Test_UnsatCertificateNode.h index 07cac5ae8f..5eb9730572 100644 --- a/src/proofs/tests/Test_UnsatCertificateNode.h +++ b/src/proofs/tests/Test_UnsatCertificateNode.h @@ -68,7 +68,7 @@ class UnsatCertificateNodeTestSuite : public CxxTest::TestSuite auto upperBoundExplanation = Vector(1, 1); auto lowerBoundExplanation = Vector(1, 1); - auto *contradiction = new Contradiction( 0, upperBoundExplanation, lowerBoundExplanation ); + auto *contradiction = new Contradiction( Vector(1, 0 ) ); root.setContradiction( contradiction ); TS_ASSERT_EQUALS( root.getContradiction(), contradiction ); } @@ -81,9 +81,9 @@ class UnsatCertificateNodeTestSuite : public CxxTest::TestSuite UnsatCertificateNode root = UnsatCertificateNode( NULL, PiecewiseLinearCaseSplit() ); Vector emptyVec; - auto explanation1 = std::shared_ptr( new PLCExplanation( 1, 1, 0, UPPER, UPPER, emptyVec, RELU, 0 ) ); - auto explanation2 = std::shared_ptr( new PLCExplanation( 1, 1, -1, UPPER, UPPER, emptyVec, RELU, 1 ) ); - auto explanation3 = std::shared_ptr( new PLCExplanation( 1, 1, -4, UPPER, UPPER, emptyVec, RELU, 2 ) ); + auto explanation1 = std::shared_ptr( new PLCExplanation( 1, 1, 0, UPPER, UPPER, emptyVec, RELU ) ); + auto explanation2 = std::shared_ptr( new PLCExplanation( 1, 1, -1, UPPER, UPPER, emptyVec, RELU ) ); + auto explanation3 = std::shared_ptr( new PLCExplanation( 1, 1, -4, UPPER, UPPER, emptyVec, RELU ) ); TS_ASSERT( root.getPLCExplanations().empty() ); @@ -92,17 +92,7 @@ class UnsatCertificateNodeTestSuite : public CxxTest::TestSuite root.addPLCExplanation( explanation3 ); TS_ASSERT_EQUALS( root.getPLCExplanations().size(), 3U ); - root.removePLCExplanationsBelowDecisionLevel( 0 ); - TS_ASSERT_EQUALS( root.getPLCExplanations().size(), 2U ); - TS_ASSERT_EQUALS( root.getPLCExplanations().front(), explanation2 ); - TS_ASSERT_EQUALS( root.getPLCExplanations().back(), explanation3 ); - root.deletePLCExplanations(); TS_ASSERT( root.getPLCExplanations().empty() ); - - List> list = { explanation1 }; - root.setPLCExplanations( list ); - TS_ASSERT_EQUALS( root.getPLCExplanations().size(), 1U ); - TS_ASSERT_EQUALS( root.getPLCExplanations().front(), explanation1 ); } }; diff --git a/src/proofs/tests/Test_UnsatCertificateUtils.h b/src/proofs/tests/Test_UnsatCertificateUtils.h index e31daebade..a376b57d77 100644 --- a/src/proofs/tests/Test_UnsatCertificateUtils.h +++ b/src/proofs/tests/Test_UnsatCertificateUtils.h @@ -12,9 +12,8 @@ ** [[ Add lengthier description here ]] **/ -#include "context/cdlist.h" -#include "context/context.h" -#include +#include "CSRMatrix.h" +#include "cxxtest/TestSuite.h" #include "UnsatCertificateUtils.h" class UnsatCertificateUtilsTestSuite : public CxxTest::TestSuite @@ -22,10 +21,9 @@ class UnsatCertificateUtilsTestSuite : public CxxTest::TestSuite public: void test_bound_computation() { - Vector row1 = { 1, 0, -1, 1, 0, 0 }; - Vector row2 = { 0, -1, 2, 0, 1, 0 }; - Vector row3 = { 0.5, 0, -1, 0, 0, 1 }; - Vector> initialTableau = { row1, row2, row3 }; + unsigned m = 3, n = 6; + double A[] = {1, 0, -1, 1, 0, 0, 0, -1, 2, 0, 1, 0, 0.5, 0, -1, 0, 0, 1 }; + auto initialTableau = CSRMatrix( A, m, n ); Vector groundUpperBounds = { 1, 1 ,1 ,1 ,1 ,1 }; Vector groundLowerBounds = { 0, 0, 0, 0, 0, 0 }; @@ -37,7 +35,7 @@ class UnsatCertificateUtilsTestSuite : public CxxTest::TestSuite unsigned var = 0; - UNSATCertificateUtils::getExplanationRowCombination( var, rowCombination, explanation, initialTableau ); + UNSATCertificateUtils::getExplanationRowCombination( var, explanation, rowCombination, &initialTableau, m, n ); auto it = rowCombination.begin(); TS_ASSERT_EQUALS( *it, 2 ); @@ -54,7 +52,7 @@ class UnsatCertificateUtilsTestSuite : public CxxTest::TestSuite ++it; TS_ASSERT_EQUALS( it, rowCombination.end() ); - double explainedBound = UNSATCertificateUtils::computeBound( var, true, explanation, initialTableau, groundUpperBounds, groundLowerBounds ); + double explainedBound = UNSATCertificateUtils::computeBound( var, true, explanation, &initialTableau, groundUpperBounds.data(), groundLowerBounds.data(), 3, groundUpperBounds.size() ); TS_ASSERT_EQUALS( explainedBound, 5 ); } From 6d668fcae8ce508b19304cb8a449014c19e50c00 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Sun, 27 Nov 2022 10:59:36 +0200 Subject: [PATCH 072/165] Minor --- src/proofs/BoundExplainer.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/proofs/BoundExplainer.cpp b/src/proofs/BoundExplainer.cpp index 29a5b47614..a363bdc5f0 100644 --- a/src/proofs/BoundExplainer.cpp +++ b/src/proofs/BoundExplainer.cpp @@ -327,9 +327,9 @@ void BoundExplainer::resetExplanation( unsigned var, bool isUpper ) void BoundExplainer::setExplanation( const Vector &explanation, unsigned var, bool isUpper ) { ASSERT( var < _numberOfVariables && ( explanation.empty() || explanation.size() == _numberOfRows ) ); - auto temp = isUpper ? &_upperBoundExplanations[var] : &_lowerBoundExplanations[var]; + auto temp = isUpper ? _upperBoundExplanations[var] : _lowerBoundExplanations[var]; for ( unsigned i = 0; i < _numberOfRows; ++i ) - ( *temp )[i]->set( explanation[i] ); + temp[i]->set( explanation[i] ); isUpper ? _trivialUpperBoundExplanation[var]->set( false ) : _trivialLowerBoundExplanation[var]->set( false ); } From e5d5507d94bf630e5e30ec36cdfce6bd4cef8b67 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Sun, 27 Nov 2022 11:23:45 +0200 Subject: [PATCH 073/165] Minor --- src/engine/IBoundManager.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/engine/IBoundManager.h b/src/engine/IBoundManager.h index a84e4e85e3..604c71cb19 100644 --- a/src/engine/IBoundManager.h +++ b/src/engine/IBoundManager.h @@ -28,6 +28,12 @@ #include "List.h" +enum BoundType : unsigned +{ + UPPER = 1, + LOWER = 0, +}; + class Tightening; class ITableau; class IRowBoundTightener; From d2b1dbe3ec4e9f1a9faf08325fe0d0419c699e3d Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 27 Nov 2022 12:01:04 +0200 Subject: [PATCH 074/165] Update ci-with-production.yml --- .github/workflows/ci-with-production.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-with-production.yml b/.github/workflows/ci-with-production.yml index 5849352208..60053c3ff0 100644 --- a/.github/workflows/ci-with-production.yml +++ b/.github/workflows/ci-with-production.yml @@ -78,7 +78,7 @@ jobs: run: ccache -s - name: Run system tests - run: ctest -L system -j 2 + run: ctest -L system -j 2 --rerun-failed --output-on-failure working-directory: build - name: Run regression tests From 924930f5da5e0f0ad425039e70ae0e4966095741 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Sun, 27 Nov 2022 12:58:38 +0200 Subject: [PATCH 075/165] Revert some changes to configurations --- src/configuration/GlobalConfiguration.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/configuration/GlobalConfiguration.cpp b/src/configuration/GlobalConfiguration.cpp index cfd8331d25..ccca016938 100644 --- a/src/configuration/GlobalConfiguration.cpp +++ b/src/configuration/GlobalConfiguration.cpp @@ -55,10 +55,10 @@ const bool GlobalConfiguration::USE_COLUMN_MERGING_EQUATIONS = false; const double GlobalConfiguration::GAUSSIAN_ELIMINATION_PIVOT_SCALE_THRESHOLD = 0.1; const unsigned GlobalConfiguration::MAX_SIMPLEX_PIVOT_SEARCH_ITERATIONS = 5; const DivideStrategy GlobalConfiguration::SPLITTING_HEURISTICS = DivideStrategy::ReLUViolation; -const unsigned GlobalConfiguration::INTERVAL_SPLITTING_FREQUENCY = 10; +const unsigned GlobalConfiguration::INTERVAL_SPLITTING_FREQUENCY = 3; const unsigned GlobalConfiguration::INTERVAL_SPLITTING_THRESHOLD = 10; const unsigned GlobalConfiguration::BOUND_TIGHTING_ON_CONSTRAINT_MATRIX_FREQUENCY = 100; -const unsigned GlobalConfiguration::ROW_BOUND_TIGHTENER_SATURATION_ITERATIONS = 5; +const unsigned GlobalConfiguration::ROW_BOUND_TIGHTENER_SATURATION_ITERATIONS = 20; const double GlobalConfiguration::COST_FUNCTION_ERROR_THRESHOLD = 0.0000000001; const unsigned GlobalConfiguration::SIMULATION_RANDOM_SEED = 1; @@ -89,7 +89,7 @@ const bool GlobalConfiguration::ONLY_AUX_INITIAL_BASIS = false; const GlobalConfiguration::ExplicitBasisBoundTighteningType GlobalConfiguration::EXPLICIT_BASIS_BOUND_TIGHTENING_TYPE = GlobalConfiguration::COMPUTE_INVERTED_BASIS_MATRIX; -const bool GlobalConfiguration::EXPLICIT_BOUND_TIGHTENING_UNTIL_SATURATION = true; +const bool GlobalConfiguration::EXPLICIT_BOUND_TIGHTENING_UNTIL_SATURATION = false; const unsigned GlobalConfiguration::REFACTORIZATION_THRESHOLD = 100; const GlobalConfiguration::BasisFactorizationType GlobalConfiguration::BASIS_FACTORIZATION_TYPE = From 510ffb26745ed976accdb67f338690acade7439c Mon Sep 17 00:00:00 2001 From: OmriIsacHUJI <99890010+OmriIsacHUJI@users.noreply.github.com> Date: Sun, 27 Nov 2022 15:11:55 +0200 Subject: [PATCH 076/165] Update ci-with-production.yml --- .github/workflows/ci-with-production.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-with-production.yml b/.github/workflows/ci-with-production.yml index 60053c3ff0..5fbaf3dfb4 100644 --- a/.github/workflows/ci-with-production.yml +++ b/.github/workflows/ci-with-production.yml @@ -78,7 +78,7 @@ jobs: run: ccache -s - name: Run system tests - run: ctest -L system -j 2 --rerun-failed --output-on-failure + run: ctest -L system -j 2 working-directory: build - name: Run regression tests From c4a38ca17092861731914952e60040c7efacbac4 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 29 Nov 2022 13:18:37 +0200 Subject: [PATCH 077/165] Fixes according to comments --- src/common/Statistics.cpp | 3 +- src/common/Statistics.h | 7 ++--- src/configuration/GlobalConfiguration.cpp | 4 +-- src/configuration/GlobalConfiguration.h | 2 +- src/engine/IBoundManager.h | 2 +- src/proofs/BoundExplainer.cpp | 29 ++++++++++---------- src/proofs/Checker.cpp | 2 +- src/proofs/Contradiction.cpp | 22 +++++++-------- src/proofs/Contradiction.h | 6 ++-- src/proofs/SmtLibWriter.cpp | 2 +- src/proofs/tests/Test_BoundExplainer.h | 13 ++++----- src/proofs/tests/Test_Checker.h | 2 +- src/proofs/tests/Test_SmtLibWriter.h | 2 +- src/proofs/tests/Test_UnsatCertificateNode.h | 6 ++-- 14 files changed, 49 insertions(+), 53 deletions(-) diff --git a/src/common/Statistics.cpp b/src/common/Statistics.cpp index 6e471be1b3..c2ee90d166 100644 --- a/src/common/Statistics.cpp +++ b/src/common/Statistics.cpp @@ -448,7 +448,6 @@ void Statistics::print() printf( "\t--- Proof Certificate ---\n" ); printf( "\tNumber of certified leaves: %u\n", getUnsignedAttribute( Statistics::NUM_CERTIFIED_LEAVES ) ); printf( "\tNumber of leaves to delegate: %u\n", getUnsignedAttribute( Statistics::NUM_DELEGATED_LEAVES ) ); - } unsigned long long Statistics::getTotalTimeInMicro() const @@ -497,7 +496,7 @@ double Statistics::printAverage( unsigned long long part, unsigned long long tot return (double)part / total; } -void Statistics::printLongAttributeAsTime( unsigned long long longAsNumber ) +void Statistics::printLongAttributeAsTime( unsigned long long longAsNumber ) const { unsigned int seconds = longAsNumber / 1000000; unsigned int minutes = seconds / 60; diff --git a/src/common/Statistics.h b/src/common/Statistics.h index d9e82f8c40..393814ad19 100644 --- a/src/common/Statistics.h +++ b/src/common/Statistics.h @@ -68,7 +68,7 @@ class Statistics // branches of the search tree, that have since been popped) TOTAL_NUMBER_OF_VALID_CASE_SPLITS, - // Total number of delegated and certified leaves in the search tree + // Total number of delegated and certified leaves in the search tree NUM_CERTIFIED_LEAVES, NUM_DELEGATED_LEAVES, }; @@ -211,7 +211,7 @@ class Statistics TIME_CONTEXT_PUSH_HOOK, TIME_CONTEXT_POP_HOOK, - // Total Certification Time + // Total Certification Time TOTAL_CERTIFICATION_TIME, }; @@ -318,8 +318,7 @@ class Statistics /* Print a long attribute in time format */ - void printLongAttributeAsTime( unsigned long long longAsNumber ); - + void printLongAttributeAsTime( unsigned long long longAsNumber ) const; private: // Initial timestamp diff --git a/src/configuration/GlobalConfiguration.cpp b/src/configuration/GlobalConfiguration.cpp index ccca016938..2f6801e221 100644 --- a/src/configuration/GlobalConfiguration.cpp +++ b/src/configuration/GlobalConfiguration.cpp @@ -36,7 +36,7 @@ const double GlobalConfiguration::DEFAULT_EPSILON_FOR_COMPARISONS = 0.0000000001 const unsigned GlobalConfiguration::DEFAULT_DOUBLE_TO_STRING_PRECISION = 10; const unsigned GlobalConfiguration::STATISTICS_PRINTING_FREQUENCY = 10000; const unsigned GlobalConfiguration::STATISTICS_PRINTING_FREQUENCY_GUROBI = 100; -const double GlobalConfiguration::BOUND_COMPARISON_ADDITIVE_TOLERANCE = 0.0000000001; +const double GlobalConfiguration::BOUND_COMPARISON_ADDITIVE_TOLERANCE = 0.0000001; const double GlobalConfiguration::BOUND_COMPARISON_MULTIPLICATIVE_TOLERANCE = 0.001 * 0.0000001; const double GlobalConfiguration::PIVOT_CHANGE_COLUMN_TOLERANCE = 0.000000001; const double GlobalConfiguration::PIVOT_ROW_AND_COLUMN_TOLERANCE = 0.01; @@ -100,7 +100,7 @@ const unsigned GlobalConfiguration::POLARITY_CANDIDATES_THRESHOLD = 5; const unsigned GlobalConfiguration::DNC_DEPTH_THRESHOLD = 5; const double GlobalConfiguration::MINIMAL_COEFFICIENT_FOR_TIGHTENING = 0.01; -const double GlobalConfiguration::LEMMAS_CERTIFICATION_TOLERANCE = 0.0000001; +const double GlobalConfiguration::LEMMA_CERTIFICATION_TOLERANCE = 0.0000001; #ifdef ENABLE_GUROBI const unsigned GlobalConfiguration::GUROBI_NUMBER_OF_THREADS = 1; diff --git a/src/configuration/GlobalConfiguration.h b/src/configuration/GlobalConfiguration.h index 8eb85915f9..c7aeea3947 100644 --- a/src/configuration/GlobalConfiguration.h +++ b/src/configuration/GlobalConfiguration.h @@ -238,7 +238,7 @@ class GlobalConfiguration /* The tolerance of errors when checking lemmas in the proof-checking process */ - static const double LEMMAS_CERTIFICATION_TOLERANCE; + static const double LEMMA_CERTIFICATION_TOLERANCE; #ifdef ENABLE_GUROBI /* diff --git a/src/engine/IBoundManager.h b/src/engine/IBoundManager.h index 604c71cb19..8b761849c7 100644 --- a/src/engine/IBoundManager.h +++ b/src/engine/IBoundManager.h @@ -30,8 +30,8 @@ enum BoundType : unsigned { - UPPER = 1, LOWER = 0, + UPPER = 1, }; class Tightening; diff --git a/src/proofs/BoundExplainer.cpp b/src/proofs/BoundExplainer.cpp index a363bdc5f0..e00739b658 100644 --- a/src/proofs/BoundExplainer.cpp +++ b/src/proofs/BoundExplainer.cpp @@ -20,8 +20,8 @@ BoundExplainer::BoundExplainer( unsigned numberOfVariables, unsigned numberOfRow : _context( ctx ), _numberOfVariables( numberOfVariables ) , _numberOfRows( numberOfRows ) - , _upperBoundExplanations( _numberOfVariables, Vector *>( 0 ) ) - , _lowerBoundExplanations( _numberOfVariables, Vector *>( 0 ) ) + , _upperBoundExplanations( _numberOfVariables, Vector *>( 0 ) ) + , _lowerBoundExplanations( _numberOfVariables, Vector *>( 0 ) ) , _trivialUpperBoundExplanation( 0 ) , _trivialLowerBoundExplanation( 0 ) { @@ -75,7 +75,6 @@ BoundExplainer &BoundExplainer::operator=( const BoundExplainer &other ) return *this; } - unsigned BoundExplainer::getNumberOfRows() const { return _numberOfRows; @@ -86,7 +85,7 @@ unsigned BoundExplainer::getNumberOfVariables() const return _numberOfVariables; } -const Vector *> &BoundExplainer::getExplanation( unsigned var, bool isUpper ) +const Vector *> &BoundExplainer::getExplanation( unsigned var, bool isUpper ) { ASSERT ( var < _numberOfVariables ); return isUpper ? _upperBoundExplanations[var] : _lowerBoundExplanations[var]; @@ -127,9 +126,9 @@ void BoundExplainer::updateBoundExplanation( const TableauRow &row, bool isUpper ci = -1; ASSERT( !FloatUtils::isZero( ci ) ); - auto rowCoefficients = Vector( _numberOfRows, 0 ); - auto sum = Vector( _numberOfRows, 0 ); - Vector *> tempBound; + Vector rowCoefficients = Vector( _numberOfRows, 0 ); + Vector sum = Vector( _numberOfRows, 0 ); + Vector *> tempBound; for ( unsigned i = 0; i < row._size; ++i ) { @@ -148,7 +147,7 @@ void BoundExplainer::updateBoundExplanation( const TableauRow &row, bool isUpper // If we're currently explaining a lower bound, we use upper bound explanation iff variable's coefficient is negative tempUpper = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ); - if ( ( tempUpper && *_trivialUpperBoundExplanation[curVar] ) || (!tempUpper && *_trivialLowerBoundExplanation[curVar] ) ) + if ( ( tempUpper && *_trivialUpperBoundExplanation[curVar] ) || ( !tempUpper && *_trivialLowerBoundExplanation[curVar] ) ) continue; tempBound = tempUpper ? _upperBoundExplanations[curVar] : _lowerBoundExplanations[curVar]; @@ -198,9 +197,9 @@ void BoundExplainer::updateBoundExplanationSparse( const SparseUnsortedList &row } ASSERT( !FloatUtils::isZero( ci ) ); - auto rowCoefficients = Vector( _numberOfRows, 0 ); - auto sum = Vector( _numberOfRows, 0 ); - Vector *> tempBound; + Vector rowCoefficients = Vector( _numberOfRows, 0 ); + Vector sum = Vector( _numberOfRows, 0 ); + Vector *> tempBound; for ( const auto &entry : row ) { @@ -299,8 +298,8 @@ void BoundExplainer::addVariable() _trivialUpperBoundExplanation.append( new ( true ) CDO( &_context, true ) ); _trivialLowerBoundExplanation.append( new ( true ) CDO( &_context, true ) ); - _upperBoundExplanations.append( Vector *>( 0 ) ); - _lowerBoundExplanations.append( Vector *>( 0 ) ); + _upperBoundExplanations.append( Vector *>( 0 ) ); + _lowerBoundExplanations.append( Vector *>( 0 ) ); for ( unsigned i = 0; i < _numberOfRows; ++i ) { @@ -316,7 +315,7 @@ void BoundExplainer::addVariable() void BoundExplainer::resetExplanation( unsigned var, bool isUpper ) { ASSERT( var < _numberOfVariables ); - auto temp = isUpper ? _upperBoundExplanations[var] : _lowerBoundExplanations[var]; + Vector *> temp = isUpper ? _upperBoundExplanations[var] : _lowerBoundExplanations[var]; for ( unsigned i = 0; i < _numberOfRows; ++i ) temp[i]->set( 0 ); @@ -327,7 +326,7 @@ void BoundExplainer::resetExplanation( unsigned var, bool isUpper ) void BoundExplainer::setExplanation( const Vector &explanation, unsigned var, bool isUpper ) { ASSERT( var < _numberOfVariables && ( explanation.empty() || explanation.size() == _numberOfRows ) ); - auto temp = isUpper ? _upperBoundExplanations[var] : _lowerBoundExplanations[var]; + Vector *> temp = isUpper ? _upperBoundExplanations[var] : _lowerBoundExplanations[var]; for ( unsigned i = 0; i < _numberOfRows; ++i ) temp[i]->set( explanation[i] ); diff --git a/src/proofs/Checker.cpp b/src/proofs/Checker.cpp index 31a50ab310..7c049dd299 100644 --- a/src/proofs/Checker.cpp +++ b/src/proofs/Checker.cpp @@ -55,7 +55,7 @@ bool Checker::checkNode( const UnsatCertificateNode *node ) } // Check all PLC bound propagations - if ( !checkAllPLCExplanations( node, GlobalConfiguration::LEMMAS_CERTIFICATION_TOLERANCE ) ) + if ( !checkAllPLCExplanations( node, GlobalConfiguration::LEMMA_CERTIFICATION_TOLERANCE ) ) return false; // Save to file if marked diff --git a/src/proofs/Contradiction.cpp b/src/proofs/Contradiction.cpp index 63e836364d..609291c416 100644 --- a/src/proofs/Contradiction.cpp +++ b/src/proofs/Contradiction.cpp @@ -14,29 +14,29 @@ #include "Contradiction.h" -Contradiction::Contradiction( const Vector &contradictionVec ) +Contradiction::Contradiction( const Vector &contradiction ) { - if ( contradictionVec.empty() ) - _contradictionVec = NULL; + if ( contradiction.empty() ) + _contradiction = NULL; else { - _contradictionVec = new double[contradictionVec.size()]; - std::copy( contradictionVec.begin(), contradictionVec.end(), _contradictionVec ); + _contradiction = new double[contradiction.size()]; + std::copy( contradiction.begin(), contradiction.end(), _contradiction ); } } Contradiction::Contradiction( unsigned var ) : _var( var ) - , _contradictionVec( NULL ) + , _contradiction( NULL ) { } Contradiction::~Contradiction() { - if ( _contradictionVec ) + if ( _contradiction ) { - delete [] _contradictionVec; - _contradictionVec = NULL; + delete [] _contradiction; + _contradiction = NULL; } } @@ -45,7 +45,7 @@ unsigned Contradiction::getVar() const return _var; } -const double *Contradiction::getContradictionVec() const +const double *Contradiction::getContradiction() const { - return _contradictionVec; + return _contradiction; } diff --git a/src/proofs/Contradiction.h b/src/proofs/Contradiction.h index 46d121731e..209cffa82e 100644 --- a/src/proofs/Contradiction.h +++ b/src/proofs/Contradiction.h @@ -23,7 +23,7 @@ class Contradiction { public: - Contradiction( const Vector &contradictionVec ); + Contradiction( const Vector &contradiction ); Contradiction( unsigned var ); ~Contradiction(); @@ -32,11 +32,11 @@ class Contradiction Getters for all fields */ unsigned getVar() const; - const double *getContradictionVec() const; + const double *getContradiction() const; private: unsigned _var; - double *_contradictionVec; + double *_contradiction; }; #endif //__Contradiction_h__ diff --git a/src/proofs/SmtLibWriter.cpp b/src/proofs/SmtLibWriter.cpp index 680850f280..845f1d65dc 100644 --- a/src/proofs/SmtLibWriter.cpp +++ b/src/proofs/SmtLibWriter.cpp @@ -57,7 +57,7 @@ void SmtLibWriter::addTableauRow( const SparseUnsortedList &row, List &i } // Add last element - assertRowLine += String( " ( * " ) + signedValue(entry->_value ) + " x" + std::to_string( entry->_index ) + " )"; + assertRowLine += String( " ( * " ) + signedValue( entry->_value ) + " x" + std::to_string( entry->_index ) + " )"; for ( unsigned i = 0; i < counter + 2 ; ++i ) assertRowLine += String( " )" ); diff --git a/src/proofs/tests/Test_BoundExplainer.h b/src/proofs/tests/Test_BoundExplainer.h index 6a96c7890d..48c611301b 100644 --- a/src/proofs/tests/Test_BoundExplainer.h +++ b/src/proofs/tests/Test_BoundExplainer.h @@ -24,7 +24,7 @@ using namespace CVC4::context; class BoundsExplainerTestSuite : public CxxTest::TestSuite { public: - Context * context; + Context *context; void setUp() { @@ -36,11 +36,10 @@ class BoundsExplainerTestSuite : public CxxTest::TestSuite TS_ASSERT_THROWS_NOTHING( delete context; ); } - /* Test initialization of BoundExplainer */ - void testInitialization() + void test_initialization() { unsigned numberOfVariables = 3; unsigned numberOfRows = 5; @@ -59,7 +58,7 @@ class BoundsExplainerTestSuite : public CxxTest::TestSuite /* Test setExplanation */ - void testSetExplanation() + void test_set_explanation() { unsigned numberOfVariables = 2; unsigned numberOfRows = 2; @@ -76,7 +75,7 @@ class BoundsExplainerTestSuite : public CxxTest::TestSuite /* Test addition of an explanation of the new variable, and correct updates of all previous explanations */ - void testVariableAddition() + void test_variable_addition() { unsigned numberOfVariables = 2; unsigned numberOfRows = 2; @@ -102,7 +101,7 @@ class BoundsExplainerTestSuite : public CxxTest::TestSuite /* Test explanation reset */ - void testExplanationReset() + void test_explanation_reset() { unsigned numberOfVariables = 1; unsigned numberOfRows = 1; @@ -118,7 +117,7 @@ class BoundsExplainerTestSuite : public CxxTest::TestSuite /* Test main functionality of BoundExplainer i.e. updating explanations according to tableau rows */ - void testExplanationUpdates() + void test_explanation_updates() { unsigned numberOfVariables = 6; unsigned numberOfRows = 3; diff --git a/src/proofs/tests/Test_Checker.h b/src/proofs/tests/Test_Checker.h index d14b57f132..5ebcc3e9c4 100644 --- a/src/proofs/tests/Test_Checker.h +++ b/src/proofs/tests/Test_Checker.h @@ -22,7 +22,7 @@ class CheckerTestSuite : public CxxTest::TestSuite /* Tests certification methods */ - void testCertification() + void test_certification() { unsigned m = 3, n = 6; double A[] = { 1, 0, -1, 1, 0, 0, 0, -1, 2, 0, 1, 0, 0.5, 0, -1, 0, 0, 1 }; diff --git a/src/proofs/tests/Test_SmtLibWriter.h b/src/proofs/tests/Test_SmtLibWriter.h index d83e952f30..13bc2ce5d8 100644 --- a/src/proofs/tests/Test_SmtLibWriter.h +++ b/src/proofs/tests/Test_SmtLibWriter.h @@ -26,7 +26,7 @@ class SmtLibWriterTestSuite : public CxxTest::TestSuite /* Tests the whole functionality of the SmtLibWriter module */ - void testSmtLibWriting() + void test_smtlib_writing() { file = new MockFile(); Vector row = { 1, 1 }; diff --git a/src/proofs/tests/Test_UnsatCertificateNode.h b/src/proofs/tests/Test_UnsatCertificateNode.h index 5eb9730572..d97b5579cc 100644 --- a/src/proofs/tests/Test_UnsatCertificateNode.h +++ b/src/proofs/tests/Test_UnsatCertificateNode.h @@ -24,7 +24,7 @@ class UnsatCertificateNodeTestSuite : public CxxTest::TestSuite /* Tests a simple tree construction */ - void testTreeRelations() + void test_tree_telations() { Vector groundUpperBounds( 6, 1 ); Vector groundLowerBounds( 6, 0 ); @@ -61,7 +61,7 @@ class UnsatCertificateNodeTestSuite : public CxxTest::TestSuite /* Tests methods that set and get the contradiction */ - void testContradiction() + void test_contradiction() { UnsatCertificateNode root = UnsatCertificateNode( NULL, PiecewiseLinearCaseSplit() ); @@ -76,7 +76,7 @@ class UnsatCertificateNodeTestSuite : public CxxTest::TestSuite /* Tests changes in PLC Explanations list */ - void testPLCExplChanges() + void test_plc_explanation_changes() { UnsatCertificateNode root = UnsatCertificateNode( NULL, PiecewiseLinearCaseSplit() ); Vector emptyVec; From 245ad318bd55adcbdcca2d70f032a21045fcbbb0 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 29 Nov 2022 13:32:48 +0200 Subject: [PATCH 078/165] Minor --- src/proofs/Checker.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/proofs/Checker.cpp b/src/proofs/Checker.cpp index 7c049dd299..42e1f8b41b 100644 --- a/src/proofs/Checker.cpp +++ b/src/proofs/Checker.cpp @@ -130,15 +130,15 @@ bool Checker::checkNode( const UnsatCertificateNode *node ) bool Checker::checkContradiction( const UnsatCertificateNode *node ) const { ASSERT( node->isValidLeaf() && !node->getSATSolutionFlag() ); - auto contradictionVec = node->getContradiction()->getContradictionVec(); + const double *contradiction = node->getContradiction()->getContradiction(); - if ( contradictionVec == NULL ) + if ( contradiction == NULL ) { double infeasibleVar = node->getContradiction()->getVar(); return FloatUtils::isNegative( _groundUpperBounds[infeasibleVar] - _groundLowerBounds[infeasibleVar] ); } - double contradictionUpperBound = UNSATCertificateUtils::computeCombinationUpperBound( contradictionVec, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); + double contradictionUpperBound = UNSATCertificateUtils::computeCombinationUpperBound( contradiction, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); return FloatUtils::isNegative( contradictionUpperBound ); } From cebfc6f533cd4886c34aa196cbdbe5d220feada3 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 29 Nov 2022 14:01:08 +0200 Subject: [PATCH 079/165] Minor --- src/configuration/GlobalConfiguration.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/configuration/GlobalConfiguration.cpp b/src/configuration/GlobalConfiguration.cpp index 2f6801e221..044cc80c9a 100644 --- a/src/configuration/GlobalConfiguration.cpp +++ b/src/configuration/GlobalConfiguration.cpp @@ -45,7 +45,7 @@ const double GlobalConfiguration::RATIO_CONSTRAINT_ADDITIVE_TOLERANCE = 0.000000 const double GlobalConfiguration::RATIO_CONSTRAINT_MULTIPLICATIVE_TOLERANCE = 0.001 * 0.0000001 * 0.3; const double GlobalConfiguration::HARRIS_RATIO_CONSTRAINT_ADDITIVE_TOLERANCE = 0.0000001 * 0.5; const double GlobalConfiguration::HARRIS_RATIO_CONSTRAINT_MULTIPLICATIVE_TOLERANCE = 0.001 * 0.0000001 * 0.5; -const double GlobalConfiguration::BASIC_COSTS_ADDITIVE_TOLERANCE = 0.0000000001; +const double GlobalConfiguration::BASIC_COSTS_ADDITIVE_TOLERANCE = 0.0000001; const double GlobalConfiguration::BASIC_COSTS_MULTIPLICATIVE_TOLERANCE = 0.001 * 0.0000001; const double GlobalConfiguration::SPARSE_FORREST_TOMLIN_DIAGONAL_ELEMENT_TOLERANCE = 0.00001; const unsigned GlobalConfiguration::DEGRADATION_CHECKING_FREQUENCY = 100; From f5bcecc0ad7062960f164c9eb17c68169431dd8f Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Sun, 4 Dec 2022 14:27:18 +0200 Subject: [PATCH 080/165] Integration of proof producing boundManager, ReluConstraint and RowBoundTightener --- src/engine/BoundManager.cpp | 218 +++++++++++++++++++++++ src/engine/BoundManager.h | 87 +++++++++ src/engine/IBoundManager.h | 43 +++++ src/engine/PiecewiseLinearConstraint.cpp | 2 + src/engine/PiecewiseLinearConstraint.h | 10 +- src/engine/ReluConstraint.cpp | 135 +++++++++++--- src/engine/ReluConstraint.h | 9 + src/engine/RowBoundTightener.cpp | 18 +- src/engine/RowBoundTightener.h | 32 +++- src/engine/tests/MockBoundManager.h | 50 ++++++ src/engine/tests/Test_BoundManager.h | 66 +++++++ 11 files changed, 638 insertions(+), 32 deletions(-) diff --git a/src/engine/BoundManager.cpp b/src/engine/BoundManager.cpp index 5a78c96f00..0b3b461b32 100644 --- a/src/engine/BoundManager.cpp +++ b/src/engine/BoundManager.cpp @@ -30,10 +30,12 @@ BoundManager::BoundManager( Context &context ) , _allocated( 0 ) , _tableau( nullptr ) , _rowBoundTightener( nullptr ) + , _engine( nullptr ) , _consistentBounds( &_context ) , _firstInconsistentTightening( 0, 0.0, Tightening::LB ) , _lowerBounds( nullptr ) , _upperBounds( nullptr ) + , _boundExplainer( nullptr ) { _consistentBounds = true; }; @@ -59,6 +61,12 @@ BoundManager::~BoundManager() _tightenedLower[i]->deleteSelf(); _tightenedUpper[i]->deleteSelf(); } + + if ( _boundExplainer ) + { + delete _boundExplainer; + _boundExplainer = NULL; + } }; void BoundManager::initialize( unsigned numberOfVariables ) @@ -296,3 +304,213 @@ void BoundManager::registerRowBoundTightener( IRowBoundTightener *ptrRowBoundTig ASSERT( _rowBoundTightener == nullptr ); _rowBoundTightener = ptrRowBoundTightener; } + +void BoundManager::explainBound( unsigned variable, bool isUpper, Vector &explanation ) const +{ + ASSERT( shouldProduceProofs() && variable < _size ); + auto temp = _boundExplainer->getExplanation( variable, isUpper ); + explanation = Vector( temp.size() ); + for ( unsigned i = 0; i < temp.size(); ++i ) + explanation[i] = *temp[i]; +} + +bool BoundManager::tightenLowerBound( unsigned variable, double value, const TableauRow &row ) +{ + bool tightened = setLowerBound( variable, value ); + + if ( tightened ) + { + if ( shouldProduceProofs() ) + _boundExplainer->updateBoundExplanation( row, false, variable ); + + if ( _tableau != nullptr ) + _tableau->updateVariableToComplyWithLowerBoundUpdate( variable, value ); + } + return tightened; +} + +bool BoundManager::tightenUpperBound( unsigned variable, double value, const TableauRow &row ) +{ + bool tightened = setUpperBound( variable, value ); + + if ( tightened ) + { + if ( shouldProduceProofs() ) + _boundExplainer->updateBoundExplanation( row, true, variable ); + + if ( _tableau != nullptr ) + _tableau->updateVariableToComplyWithUpperBoundUpdate( variable, value ); + } + return tightened; +} + +bool BoundManager::tightenLowerBound( unsigned variable, double value, const SparseUnsortedList &row ) +{ + bool tightened = setLowerBound( variable, value ); + + if ( tightened ) + { + if ( shouldProduceProofs() ) + _boundExplainer->updateBoundExplanationSparse( row, false, variable ); + + if ( _tableau != nullptr ) + _tableau->updateVariableToComplyWithLowerBoundUpdate( variable, value ); + } + return tightened; +} + +bool BoundManager::tightenUpperBound( unsigned variable, double value, const SparseUnsortedList &row ) +{ + bool tightened = setUpperBound( variable, value ); + + if ( tightened ) + { + if ( shouldProduceProofs() ) + _boundExplainer->updateBoundExplanationSparse( row, true, variable ); + + if ( _tableau != nullptr ) + _tableau->updateVariableToComplyWithUpperBoundUpdate( variable, value ); + } + + return tightened; +} + +void BoundManager::resetExplanation( const unsigned var, const bool isUpper ) const +{ + _boundExplainer->resetExplanation( var, isUpper ); +} + +void BoundManager::setExplanation( const Vector &explanation, unsigned var, bool isUpper ) const +{ + ASSERT( explanation.size() == _boundExplainer->getNumberOfRows() || explanation.empty() ); + _boundExplainer->setExplanation( explanation, var, isUpper ); +} + +BoundExplainer *BoundManager::getBoundExplainer() const +{ + return _boundExplainer; +} + +void BoundManager::setBoundExplainerContent( BoundExplainer *boundsExplainer ) +{ + *_boundExplainer = *boundsExplainer; +} + +bool BoundManager::addLemmaExplanation( unsigned var, double value, BoundType affectedVarBound, + unsigned causingVar, BoundType causingVarBound, + PiecewiseLinearFunctionType constraintType ) +{ + if ( !shouldProduceProofs() ) + return false; + + ASSERT( causingVar < _tableau->getN() && var < _tableau->getN() ); + + // Register new ground bound, update certificate, and reset explanation + Vector explanation( 0 ); + explainBound( causingVar, causingVarBound, explanation ); + + bool tightened = affectedVarBound == UPPER ? tightenUpperBound( var, value ) : tightenLowerBound( var, value ); + + if ( tightened ) + { + std::shared_ptr PLCExpl = std::make_shared( causingVar, var, value, causingVarBound, affectedVarBound, explanation, constraintType ); + // TODO uncomment when proof producing engine is integrated + // _engine->getUNSATCertificateCurrentPointer()->addPLCExplanation( PLCExpl ); + // affectedVarBound == UPPER ? _engine->updateGroundUpperBound( var, value ) : _engine->updateGroundLowerBound( var, value ); + resetExplanation( var, affectedVarBound ); + } + return true; +} + +void BoundManager::registerEngine( IEngine *engine ) +{ + _engine = engine; +} + +void BoundManager::initializeBoundExplainer( unsigned numberOfVariables, unsigned numberOfRows ) +{ + // TODO uncomment when proof producing engine is integrated + // if ( _engine->shouldProduceProofs() ) + _boundExplainer = new BoundExplainer( numberOfVariables, numberOfRows, _context ); +} + +int BoundManager::getInconsistentVariable() const +{ + if ( _consistentBounds ) + return -1; + return ( int ) _firstInconsistentTightening._variable; +} + +double BoundManager::computeRowBound( const TableauRow &row, const bool isUpper ) const +{ + double bound = 0; + double multiplier; + unsigned var; + + for ( unsigned i = 0; i < row._size; ++i ) + { + var = row._row[i]._var; + if ( FloatUtils::isZero( row[i] ) ) + continue; + + multiplier = ( isUpper && FloatUtils::isPositive( row[i] ) ) || ( !isUpper && FloatUtils::isNegative( row[i] ) ) ? _upperBounds[var] : _lowerBounds[var]; + multiplier = FloatUtils::isZero( multiplier ) ? 0 : multiplier * row[i]; + bound += FloatUtils::isZero( multiplier ) ? 0 : multiplier; + } + + bound += FloatUtils::isZero( row._scalar ) ? 0 : row._scalar; + return bound; +} + +double BoundManager::computeSparseRowBound( const SparseUnsortedList &row, const bool isUpper, const unsigned var ) const +{ + ASSERT( !row.empty() && var < _size ); + + unsigned curVar; + double ci = 0; + double bound = 0; + double realCoefficient; + double curVal; + double multiplier; + + for ( const auto &entry : row ) + { + if ( entry._index == var ) + { + ci = entry._value; + break; + } + } + + ASSERT( !FloatUtils::isZero( ci ) ); + + for ( const auto &entry : row ) + { + curVar = entry._index; + curVal = entry._value; + + if ( FloatUtils::isZero( curVal ) || curVar == var ) + continue; + + realCoefficient = curVal / -ci; + + if ( FloatUtils::isZero( realCoefficient ) ) + continue; + + multiplier = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ) ? _upperBounds[curVar] : _lowerBounds[curVar]; + multiplier = FloatUtils::isZero( multiplier ) ? 0 : multiplier * realCoefficient; + bound += FloatUtils::isZero( multiplier ) ? 0 : multiplier; + } + + return bound; +} + +bool BoundManager::isExplanationTrivial( unsigned var, bool isUpper ) const +{ + return _boundExplainer->isExplanationTrivial( var, isUpper ); +} + +bool BoundManager::shouldProduceProofs() const +{ + return _boundExplainer != nullptr; +} \ No newline at end of file diff --git a/src/engine/BoundManager.h b/src/engine/BoundManager.h index ea043c93b2..68d14e410f 100644 --- a/src/engine/BoundManager.h +++ b/src/engine/BoundManager.h @@ -42,13 +42,17 @@ #include "IBoundManager.h" #include "IRowBoundTightener.h" #include "ITableau.h" +#include "IEngine.h" #include "List.h" #include "Tightening.h" #include "Vector.h" #include "context/cdo.h" #include "context/context.h" +#include "PlcExplanation.h" +#include "UnsatCertificateNode.h" class ITableau; +class IEngine; class BoundManager : public IBoundManager { public: @@ -129,6 +133,7 @@ class BoundManager : public IBoundManager detect a conflict state. */ bool consistentBounds( unsigned variable ) const; + /* Register Tableau pointer for callbacks from tighten*Bound methods. */ @@ -139,12 +144,73 @@ class BoundManager : public IBoundManager */ void registerRowBoundTightener( IRowBoundTightener *ptrRowBoundTightener ); + /* + Return the content of the object containing all explanations for variable bounds in the tableau. + */ + BoundExplainer *getBoundExplainer() const; + + /* + Deep-copy the BoundExplainer object content + */ + void setBoundExplainerContent( BoundExplainer *boundsExplainer ); + + /* + Initialize the boundExplainer + */ + void initializeBoundExplainer( unsigned numberOfVariables, unsigned numberOfRows ); + + /* + Reset a bound explanation + */ + void resetExplanation( unsigned var, bool isUpper ) const; + + /* + Insert the bounds explanation of a variable in the tableau to the argument vector + */ + void explainBound( unsigned variable, bool isUpper, Vector &explanation ) const; + + /* + Artificially update an explanation, without using the recursive rule + */ + void setExplanation( const Vector &explanation, unsigned var, bool isUpper ) const; + + /* + Register Engine pointer for callbacks + */ + void registerEngine( IEngine *engine ); + + /* + Get the index of a variable with inconsistent bounds, if exists, or -1 otherwise + */ + int getInconsistentVariable() const; + + /* + Computes the bound imposed by a row's rhs on its lhs + */ + double computeRowBound( const TableauRow &row, bool isUpper ) const; + + /* + Computes the bound imposed by a row on a variable + */ + double computeSparseRowBound( const SparseUnsortedList &row, bool isUpper, unsigned var ) const; + + /* + Return true iff an explanation is trivial (i.e. the zero vector) + */ + bool isExplanationTrivial( unsigned var, bool isUpper ) const; + + /* + Return true iff boundManager should produce proofs + */ + bool shouldProduceProofs() const; + private: CVC4::context::Context &_context; unsigned _size; unsigned _allocated; ITableau *_tableau; // Used only by callbacks IRowBoundTightener *_rowBoundTightener; // Used only by callbacks + IEngine *_engine; CVC4::context::CDO _consistentBounds; Tightening _firstInconsistentTightening; @@ -164,6 +230,27 @@ class BoundManager : public IBoundManager void recordInconsistentBound( unsigned variable, double value, Tightening::BoundType type ); void allocateLocalBounds( unsigned size ); + + /* + Tighten bounds and update their explanations according to some object representing the row + */ + bool tightenLowerBound( unsigned variable, double value, const TableauRow &row ); + bool tightenUpperBound( unsigned variable, double value, const TableauRow &row ); + + bool tightenLowerBound( unsigned variable, double value, const SparseUnsortedList &row ); + bool tightenUpperBound( unsigned variable, double value, const SparseUnsortedList &row ); + + /* + Adds a lemma to the UNSATCertificateNode object + */ + bool addLemmaExplanation( unsigned var, double value, BoundType affectedVarBound, + unsigned causingVar, BoundType causingVarBound, + PiecewiseLinearFunctionType constraintType ); + + /* + Explainer of all bounds + */ + BoundExplainer *_boundExplainer; }; #endif // __BoundManager_h__ diff --git a/src/engine/IBoundManager.h b/src/engine/IBoundManager.h index 8b761849c7..5331a9de56 100644 --- a/src/engine/IBoundManager.h +++ b/src/engine/IBoundManager.h @@ -27,6 +27,9 @@ #define __IBoundManager_h__ #include "List.h" +#include "Vector.h" +#include "BoundExplainer.h" +#include "PiecewiseLinearFunctionType.h" enum BoundType : unsigned { @@ -109,7 +112,47 @@ class IBoundManager */ virtual void registerRowBoundTightener( IRowBoundTightener *ptrRowBoundTightener ) = 0; + /* + Tighten bounds and update their explanations according to some object representing the row + */ + virtual bool tightenLowerBound( unsigned variable, double value, const TableauRow &row ) = 0; + virtual bool tightenUpperBound( unsigned variable, double value, const TableauRow &row ) = 0; + + virtual bool tightenLowerBound( unsigned variable, double value, const SparseUnsortedList &row ) = 0; + virtual bool tightenUpperBound( unsigned variable, double value, const SparseUnsortedList &row ) = 0; + + /* + Add a lemma to the UNSATCertificateNode object + Return true iff adding the lemma has succeeded + */ + virtual bool addLemmaExplanation( unsigned var, double value, BoundType affectedVarBound, + unsigned causingVar, BoundType causingVarBound, + PiecewiseLinearFunctionType constraintType ) = 0; + + /* + Return the content of the object containing all explanations for variable bounds in the tableau + */ + virtual BoundExplainer *getBoundExplainer() const = 0; + + /* + Deep-copy the BoundExplainer object content + */ + virtual void setBoundExplainerContent( BoundExplainer* boundExplainer ) = 0; + + /* + Initialize the boundExplainer + */ + virtual void initializeBoundExplainer( unsigned numberOfVariables, unsigned numberOfRows ) = 0; + /* + Get the index of a variable with inconsistent bounds, if exists, or -1 otherwise + */ + virtual int getInconsistentVariable() const = 0; + + /* + Return true iff boundManager should produce proofs + */ + virtual bool shouldProduceProofs() const = 0; }; #endif // __IBoundManager_h__ diff --git a/src/engine/PiecewiseLinearConstraint.cpp b/src/engine/PiecewiseLinearConstraint.cpp index 69523612f0..a02d29e2b4 100644 --- a/src/engine/PiecewiseLinearConstraint.cpp +++ b/src/engine/PiecewiseLinearConstraint.cpp @@ -29,6 +29,7 @@ PiecewiseLinearConstraint::PiecewiseLinearConstraint() , _score( FloatUtils::negativeInfinity() ) , _statistics( NULL ) , _gurobi( NULL ) + , _tableauAuxVar( 0 ) { } @@ -196,6 +197,7 @@ bool PiecewiseLinearConstraint::isCaseInfeasible( PhaseStatus phase ) const ASSERT( _cdInfeasibleCases ); return std::find( _cdInfeasibleCases->begin(), _cdInfeasibleCases->end(), phase ) != _cdInfeasibleCases->end(); } + void PiecewiseLinearConstraint::setStatistics( Statistics *statistics ) { _statistics = statistics; diff --git a/src/engine/PiecewiseLinearConstraint.h b/src/engine/PiecewiseLinearConstraint.h index b7e68fc589..8308492b61 100644 --- a/src/engine/PiecewiseLinearConstraint.h +++ b/src/engine/PiecewiseLinearConstraint.h @@ -275,7 +275,7 @@ class PiecewiseLinearConstraint : public ITableau::VariableWatcher /* Return the phase status corresponding to the values of the input variables in the given assignment. For instance, for ReLU, if the input - variable's assignment is positive, then the method returns + variable's assignment is positive, then the method returns RELU_PHASE_ACTIVE. Otherwise, it returns RELU_PHASE_INACTIVE. */ virtual PhaseStatus getPhaseStatusInAssignment( const Map @@ -453,6 +453,11 @@ class PiecewiseLinearConstraint : public ITableau::VariableWatcher return _cdInfeasibleCases; } + void setTableauAuxVar( unsigned var ) + { + _tableauAuxVar = var; + } + protected: unsigned _numCases; // Number of possible cases/phases for this constraint // (e.g. 2 for ReLU, ABS, SIGN; >=2 for Max and Disjunction ) @@ -597,6 +602,9 @@ class PiecewiseLinearConstraint : public ITableau::VariableWatcher else return _gurobi->getAssignment( Stringf( "x%u", variable ) ); } + + unsigned _tableauAuxVar; + }; #endif // __PiecewiseLinearConstraint_h__ diff --git a/src/engine/ReluConstraint.cpp b/src/engine/ReluConstraint.cpp index ccdd340177..ff5708bd27 100644 --- a/src/engine/ReluConstraint.cpp +++ b/src/engine/ReluConstraint.cpp @@ -26,6 +26,8 @@ #include "PiecewiseLinearCaseSplit.h" #include "Statistics.h" #include "TableauRow.h" +#include "InfeasibleQueryException.h" +#include "PlcExplanation.h" #ifdef _WIN32 #define __attribute__(x) @@ -38,11 +40,13 @@ ReluConstraint::ReluConstraint( unsigned b, unsigned f ) , _auxVarInUse( false ) , _direction( PHASE_NOT_FIXED ) , _haveEliminatedVariables( false ) + , _tighteningRow( NULL ) { } ReluConstraint::ReluConstraint( const String &serializedRelu ) : _haveEliminatedVariables( false ) + , _tighteningRow( NULL ) { String constraintType = serializedRelu.substring( 0, 4 ); ASSERT( constraintType == String( "relu" ) ); @@ -137,6 +141,7 @@ void ReluConstraint::checkIfUpperBoundUpdateFixesPhase( unsigned variable, doubl if ( _auxVarInUse && variable == _aux && FloatUtils::isZero( bound ) ) setPhaseStatus( RELU_PHASE_ACTIVE ); } + void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) { if ( _statistics ) @@ -156,45 +161,70 @@ void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) double bound = getLowerBound( variable ); checkIfLowerBoundUpdateFixesPhase( variable, bound ); - if ( isActive() ) { + createTighteningRow(); + bool proofs = _boundManager->shouldProduceProofs(); + // A positive lower bound is always propagated between f and b if ( ( variable == _f || variable == _b ) && bound > 0 ) { - unsigned partner = ( variable == _f ) ? _b : _f; - _boundManager->tightenLowerBound( partner, bound ); - // If we're in the active phase, aux should be 0 - if ( _auxVarInUse ) - _boundManager->tightenUpperBound( _aux, 0 ); + if ( proofs && _auxVarInUse ) + _boundManager->addLemmaExplanation( _aux, 0, UPPER, variable, LOWER, getType() ); + else if ( !proofs && _auxVarInUse ) + _boundManager->tightenUpperBound( _aux, 0 ); + + // After updating to active phase + unsigned partner = ( variable == _f ) ? _b : _f; + _boundManager->tightenLowerBound( partner, bound, *_tighteningRow ); } // If b is non-negative, we're in the active phase else if ( _auxVarInUse && variable == _b && FloatUtils::isZero( bound ) ) { - _boundManager->tightenUpperBound( _aux, 0 ); + if ( proofs && _auxVarInUse ) + _boundManager->addLemmaExplanation( _aux, 0, UPPER, variable, LOWER, getType() ); + else if ( !proofs && _auxVarInUse ) + _boundManager->tightenUpperBound( _aux, 0 ); } // A positive lower bound for aux means we're inactive: f is 0, b is // non-positive When inactive, b = -aux else if ( _auxVarInUse && variable == _aux && bound > 0 ) { - _boundManager->tightenUpperBound( _b, -bound ); - _boundManager->tightenUpperBound( _f, 0 ); + if ( proofs ) + _boundManager->addLemmaExplanation( _f, 0, UPPER, variable, LOWER, getType() ); + else + _boundManager->tightenUpperBound( _f, 0 ); + + // After updating to inactive phase + _boundManager->tightenUpperBound( _b, -bound, *_tighteningRow ); } // A negative lower bound for b could tighten aux's upper bound else if ( _auxVarInUse && variable == _b && bound < 0 ) { - _boundManager->tightenUpperBound( _aux, -bound ); + if ( proofs ) + { + // If already inactive, tightening is linear + if ( _phaseStatus == RELU_PHASE_INACTIVE ) + _boundManager->tightenUpperBound( _aux, -bound, *_tighteningRow ); + else if ( _phaseStatus == PHASE_NOT_FIXED ) + _boundManager->addLemmaExplanation( _aux, -bound, UPPER, variable, LOWER, getType() ); + } + else + _boundManager->tightenUpperBound( _aux, -bound ); } // Also, if for some reason we only know a negative lower bound for // f, we attempt to tighten it to 0 else if ( bound < 0 && variable == _f ) { - _boundManager->tightenLowerBound( _f, 0 ); + if ( proofs ) + _boundManager->addLemmaExplanation( _f, 0, LOWER, variable, LOWER, getType() ); + else + _boundManager->tightenLowerBound( _f, 0 ); } } } @@ -222,33 +252,75 @@ void ReluConstraint::notifyUpperBound( unsigned variable, double newBound ) if ( isActive() ) { + createTighteningRow(); + bool proofs = _boundManager->shouldProduceProofs(); + if ( variable == _f ) { - // Any bound that we learned of f should be propagated to b - _boundManager->tightenUpperBound( _b, bound ); + if ( proofs ) + { + if ( _phaseStatus != RELU_PHASE_INACTIVE ) + _boundManager->tightenUpperBound( _b, bound, *_tighteningRow ); + else + { + if ( FloatUtils::isZero( bound ) ) + _boundManager->addLemmaExplanation( _b, 0, UPPER, variable, UPPER, getType() ); + // Bound cannot be negative if ReLU is inactive + else if ( FloatUtils::isNegative( bound ) ) + throw InfeasibleQueryException(); + } + } + else + _boundManager->tightenUpperBound( _b, bound ); + } else if ( variable == _b ) { if ( !FloatUtils::isPositive( bound ) ) { // If b has a non-positive upper bound, f's upper bound is 0 - _boundManager->tightenUpperBound( _f, 0 ); + if ( proofs ) + _boundManager->addLemmaExplanation( _f, 0, UPPER, variable, UPPER, getType() ); + else + _boundManager->tightenUpperBound( _f, 0 ); + // Aux's range is minus the range of b + // After updating to inactive phase if ( _auxVarInUse ) - { - // Aux's range is minus the range of b - _boundManager->tightenLowerBound( _aux, -bound ); - } + _boundManager->tightenLowerBound( _aux, -bound, *_tighteningRow ); } else { // b has a positive upper bound, propagate to f - _boundManager->tightenUpperBound( _f, bound ); + if ( proofs ) + { + // If already inactive, tightening is linear + if ( _phaseStatus == RELU_PHASE_ACTIVE ) + _boundManager->tightenUpperBound( _f, bound, *_tighteningRow ); + else if ( _phaseStatus == PHASE_NOT_FIXED ) + _boundManager->addLemmaExplanation( _f, bound, UPPER, variable, UPPER, getType() ); + } + else + _boundManager->tightenUpperBound( _f, bound ); } } else if ( _auxVarInUse && variable == _aux ) { - _boundManager->tightenLowerBound( _b, -bound ); + if ( proofs ) + { + if ( _phaseStatus != RELU_PHASE_ACTIVE ) + _boundManager->tightenLowerBound( _b, -bound, *_tighteningRow ); + else + { + if ( FloatUtils::isZero( bound ) ) + _boundManager->addLemmaExplanation( _b, 0, LOWER, variable, UPPER, getType() ); + // Bound cannot be negative if ReLU is active + else if ( FloatUtils::isNegative( bound ) ) + throw InfeasibleQueryException(); + } + } + else + _boundManager->tightenLowerBound( _b, -bound ); } } } @@ -965,3 +1037,26 @@ void ReluConstraint::updateScoreBasedOnPolarity() { _score = std::abs( computePolarity() ); } + +void ReluConstraint::createTighteningRow() +{ + // Create the row only when needed and when not already created + if ( !_boundManager->getBoundExplainer() || _tighteningRow || !_auxVarInUse || !_tableauAuxVar ) + return; + + _tighteningRow = std::unique_ptr( new TableauRow ( 3 ) ); + + // f = b + aux + counterpart (an additional aux variable of tableau) + _tighteningRow->_lhs = _f; + _tighteningRow->_row[0] = TableauRow::Entry( _b, 1 ); + _tighteningRow->_row[1] = TableauRow::Entry( _aux, 1 ); + _tighteningRow->_row[2] = TableauRow::Entry( _tableauAuxVar, 1 ); +} + +// +// Local Variables: +// compile-command: "make -C ../.. " +// tags-file-name: "../../TAGS" +// c-basic-offset: 4 +// End: +// diff --git a/src/engine/ReluConstraint.h b/src/engine/ReluConstraint.h index f1dece1ada..4eede4cdd3 100644 --- a/src/engine/ReluConstraint.h +++ b/src/engine/ReluConstraint.h @@ -239,6 +239,7 @@ class ReluConstraint : public PiecewiseLinearConstraint void updateScoreBasedOnPolarity() override; + private: unsigned _b, _f; bool _auxVarInUse; @@ -261,6 +262,14 @@ class ReluConstraint : public PiecewiseLinearConstraint Return true iff b or f are out of bounds. */ bool haveOutOfBoundVariables() const; + + std::shared_ptr _tighteningRow; + + /* + Create a the tableau row used for explaining bound tightening caused by the constraint + Stored in _tighteningRow + */ + void createTighteningRow(); }; #endif // __ReluConstraint_h__ diff --git a/src/engine/RowBoundTightener.cpp b/src/engine/RowBoundTightener.cpp index c6d1d455c2..8c688a942f 100644 --- a/src/engine/RowBoundTightener.cpp +++ b/src/engine/RowBoundTightener.cpp @@ -296,8 +296,8 @@ unsigned RowBoundTightener::tightenOnSingleInvertedBasisRow( const TableauRow &r } } - result += registerTighterLowerBound( y, lowerBound ); - result += registerTighterUpperBound( y, upperBound ); + result += registerTighterLowerBound( y, lowerBound, row ); + result += registerTighterUpperBound( y, upperBound, row ); if ( FloatUtils::gt( getLowerBound( y ), getUpperBound( y ) ) ) { @@ -342,7 +342,7 @@ unsigned RowBoundTightener::tightenOnSingleInvertedBasisRow( const TableauRow &r for ( unsigned i = 0; i < n - m; ++i ) { // If ci = 0, nothing to do. - if ( _ciSign[i] == ZERO ) + if ( _ciSign[i] == ZERO || FloatUtils::lt( abs( row[i] ), GlobalConfiguration::MINIMAL_COEFFICIENT_FOR_TIGHTENING ) ) continue; lowerBound = auxLb; @@ -374,8 +374,8 @@ unsigned RowBoundTightener::tightenOnSingleInvertedBasisRow( const TableauRow &r // If a tighter bound is found, store it xi = row._row[i]._var; - result += registerTighterLowerBound( xi, lowerBound ); - result += registerTighterUpperBound( xi, upperBound ); + result += registerTighterLowerBound( xi, lowerBound, row ); + result += registerTighterUpperBound( xi, upperBound, row ); if ( FloatUtils::gt( getLowerBound( xi ), getUpperBound( xi ) ) ) { ASSERT( FloatUtils::gt( _boundManager.getLowerBound( xi ), _boundManager.getUpperBound( xi ) ) ); @@ -479,7 +479,7 @@ unsigned RowBoundTightener::tightenOnSingleConstraintRow( unsigned row ) b - sum ci xi Then, when we consider xi we adjust the computed lower and upper - boudns accordingly. + bounds accordingly. */ double auxLb = b[row]; @@ -525,6 +525,8 @@ unsigned RowBoundTightener::tightenOnSingleConstraintRow( unsigned row ) // Now divide everything by ci, switching signs if needed. ci = entry._value; + if ( FloatUtils::lt( abs( ci ), GlobalConfiguration::MINIMAL_COEFFICIENT_FOR_TIGHTENING ) ) + continue; lowerBound = lowerBound / ci; upperBound = upperBound / ci; @@ -537,8 +539,8 @@ unsigned RowBoundTightener::tightenOnSingleConstraintRow( unsigned row ) } // If a tighter bound is found, store it - result += registerTighterLowerBound( index, lowerBound ); - result += registerTighterUpperBound( index, upperBound ); + result += registerTighterLowerBound( index, lowerBound, *sparseRow ); + result += registerTighterUpperBound( index, upperBound, *sparseRow ); if ( FloatUtils::gt( getLowerBound( index ), getUpperBound( index ) ) ) throw InfeasibleQueryException(); diff --git a/src/engine/RowBoundTightener.h b/src/engine/RowBoundTightener.h index f7416192fe..e41174afd2 100644 --- a/src/engine/RowBoundTightener.h +++ b/src/engine/RowBoundTightener.h @@ -54,14 +54,40 @@ class RowBoundTightener : public IRowBoundTightener /* * Register a new tighter bound */ - inline unsigned registerTighterLowerBound( unsigned variable, double newLowerBound) + inline unsigned registerTighterLowerBound( unsigned variable, double newLowerBound ) { return _boundManager.tightenLowerBound( variable, newLowerBound ) ? 1u : 0u; } - inline unsigned registerTighterUpperBound( unsigned variable, double newLowerBound) + inline unsigned registerTighterUpperBound( unsigned variable, double newUpperBound ) { - return _boundManager.tightenUpperBound( variable, newLowerBound ) ? 1u : 0u; + return _boundManager.tightenUpperBound( variable, newUpperBound ) ? 1u : 0u; + } + + /* + Register a new tighter bound with an explanation generated by a row + */ + inline unsigned registerTighterLowerBound( unsigned variable, double newLowerBound, const TableauRow &row ) + { + return _boundManager.tightenLowerBound( variable, newLowerBound, row ) ? 1u : 0u; + } + + inline unsigned registerTighterUpperBound( unsigned variable, double newUpperBound, const TableauRow &row ) + { + return _boundManager.tightenUpperBound( variable, newUpperBound, row ) ? 1u : 0u; + } + + /* + Register a new tighter bound with an explanation generated by a row + */ + inline unsigned registerTighterLowerBound( unsigned variable, double newLowerBound, const SparseUnsortedList &row ) + { + return _boundManager.tightenLowerBound( variable, newLowerBound, row ) ? 1u : 0u; + } + + inline unsigned registerTighterUpperBound( unsigned variable, double newUpperBound, const SparseUnsortedList &row ) + { + return _boundManager.tightenUpperBound( variable, newUpperBound, row ) ? 1u : 0u; } /* diff --git a/src/engine/tests/MockBoundManager.h b/src/engine/tests/MockBoundManager.h index fe5bd9145e..8585b41cf0 100644 --- a/src/engine/tests/MockBoundManager.h +++ b/src/engine/tests/MockBoundManager.h @@ -216,6 +216,15 @@ class MockBoundManager : public IBoundManager { } + BoundExplainer* getBoundExplainer() const + { + return NULL; + } + + void setBoundExplainerContent(BoundExplainer* /* boundsExplanations */ ) + { + } + private: unsigned _size; @@ -227,6 +236,47 @@ class MockBoundManager : public IBoundManager /* Map _upperBounds; */ /* Map _tightenedLower; */ /* Map _tightenedUpper; */ + + bool tightenLowerBound( unsigned variable, double value, const TableauRow &/* row */ ) + { + return tightenLowerBound( variable, value); + } + bool tightenUpperBound( unsigned variable, double value, const TableauRow &/* row */ ) + { + return tightenUpperBound( variable, value); + } + + bool tightenLowerBound( unsigned variable, double value, const SparseUnsortedList &/* row */ ) + { + return tightenLowerBound( variable, value); + } + + bool tightenUpperBound( unsigned variable, double value, const SparseUnsortedList &/* row */ ) + { + return tightenUpperBound( variable, value); + } + + bool addLemmaExplanation( unsigned /* var */, double /* value */, BoundType /* affectedVarBound */, + unsigned /* causingVar */, BoundType /* causingVarBound */, + PiecewiseLinearFunctionType /* constraintType */ ) + { + return true; + } + + void initializeBoundExplainer( unsigned /* numberOfVariables */, unsigned /* numberOfRows */ ) + { + + } + + int getInconsistentVariable() const + { + return 0; + } + + bool shouldProduceProofs() const + { + return true; + } }; #endif // __MockBoundManager_h__ diff --git a/src/engine/tests/Test_BoundManager.h b/src/engine/tests/Test_BoundManager.h index d2e5484cdd..9853b6f704 100644 --- a/src/engine/tests/Test_BoundManager.h +++ b/src/engine/tests/Test_BoundManager.h @@ -20,7 +20,9 @@ #include "context/context.h" #include "FloatUtils.h" #include "InfeasibleQueryException.h" +#include "MockEngine.h" #include "Tightening.h" +#include "Vector.h" using CVC4::context::Context; @@ -106,6 +108,7 @@ class BoundManagerTestSuite : public CxxTest::TestSuite TS_ASSERT_THROWS_NOTHING( boundManager.setUpperBound( 0, 1 ) ); TS_ASSERT_THROWS_NOTHING( boundManager.setUpperBound( 0, 0 ) ); TS_ASSERT( !boundManager.consistentBounds() ); + TS_ASSERT( boundManager.getInconsistentVariable() == 0 ) } /* @@ -250,6 +253,69 @@ class BoundManagerTestSuite : public CxxTest::TestSuite } } + void test_bound_manager_and_explainer() + { + BoundManager boundManager( *context ); + + // Test initialization of data structures + MockEngine engine; + TS_ASSERT_THROWS_NOTHING( boundManager.setEngine( &engine ) ); + + unsigned numberOfVariables = 5u; + unsigned numberOfRows = 3u; + + TS_ASSERT_THROWS_NOTHING( boundManager.initialize( numberOfVariables ) ); + TS_ASSERT_THROWS_NOTHING( boundManager.initializeBoundExplainer( numberOfVariables, numberOfRows ) ); + + for ( unsigned i = 0; i < numberOfVariables; ++i ) + { + boundManager.setUpperBound( i, 1 ); + boundManager.setLowerBound( i, 0 ); + } + + for ( unsigned i = 0; i < numberOfVariables; ++i ) + { + TS_ASSERT( boundManager.isExplanationTrivial( i, true ) ); + TS_ASSERT( boundManager.isExplanationTrivial( i, false ) ); + } + + // Test explanation getting and setting + Vector expl ( numberOfRows, 1 ); + Vector explained ( 0 ); + + boundManager.setExplanation( expl, 0, true ); + TS_ASSERT( !boundManager.isExplanationTrivial( 0, true ) ); + boundManager.setExplanation( expl, 1, false ); + + boundManager.explainBound( 1, false, explained ); + TS_ASSERT( explained == expl ); + + // Test explanation resetting + boundManager.resetExplanation( 0, true ); + TS_ASSERT( boundManager.isExplanationTrivial( 0, true ) ); + + // Test boundExplainer setting and getting + BoundExplainer secondExplainer( numberOfVariables, numberOfRows, *context ); + TS_ASSERT_THROWS_NOTHING( boundManager.setBoundExplainerContent(&secondExplainer) ); + + // Setting is effective if the non-trivial explanation became trivial + TS_ASSERT_THROWS_NOTHING( boundManager.isExplanationTrivial( 1, false ) ); + + // Compute sparse and tableau row bounds, according to the bounds stored in boundManager + double rowArr[5] = { 0, 0, 1, 2, -1 }; + SparseUnsortedList sparseRow ( rowArr, numberOfVariables ); + TS_ASSERT( boundManager.computeSparseRowBound( sparseRow, true, 4 ) == 3 ); + + TableauRow tableauRow( numberOfVariables ); + tableauRow._scalar = 0; + tableauRow._lhs = 2; + tableauRow._row[0] = TableauRow::Entry( 0, 1 ); + tableauRow._row[1] = TableauRow::Entry( 1, 2 ); + tableauRow._row[2] = TableauRow::Entry( 3, -1 ); + tableauRow._row[3] = TableauRow::Entry( 4, 1 ); + + TS_ASSERT( boundManager.computeRowBound( tableauRow, false ) == -1 ); + } }; // From 9cd7481d74b7e255054afa40c8e0a945e94ab928 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Sun, 4 Dec 2022 14:31:43 +0200 Subject: [PATCH 081/165] Cleanup --- src/engine/IBoundManager.h | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/engine/IBoundManager.h b/src/engine/IBoundManager.h index 9656ad551c..5331a9de56 100644 --- a/src/engine/IBoundManager.h +++ b/src/engine/IBoundManager.h @@ -37,12 +37,6 @@ enum BoundType : unsigned UPPER = 1, }; -enum BoundType : unsigned -{ - LOWER = 0, - UPPER = 1, -}; - class Tightening; class ITableau; class IRowBoundTightener; From 07d387848a00036297ab7c7ffde5e289d62807eb Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Sun, 4 Dec 2022 14:56:55 +0200 Subject: [PATCH 082/165] Minor --- src/engine/IBoundManager.h | 2 +- src/engine/tests/MockBoundManager.h | 9 ++++----- src/engine/tests/Test_BoundManager.h | 2 +- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/engine/IBoundManager.h b/src/engine/IBoundManager.h index 5331a9de56..b4f3dbd0da 100644 --- a/src/engine/IBoundManager.h +++ b/src/engine/IBoundManager.h @@ -137,7 +137,7 @@ class IBoundManager /* Deep-copy the BoundExplainer object content */ - virtual void setBoundExplainerContent( BoundExplainer* boundExplainer ) = 0; + virtual void setBoundExplainerContent( BoundExplainer *boundExplainer ) = 0; /* Initialize the boundExplainer diff --git a/src/engine/tests/MockBoundManager.h b/src/engine/tests/MockBoundManager.h index 8585b41cf0..54657f31b6 100644 --- a/src/engine/tests/MockBoundManager.h +++ b/src/engine/tests/MockBoundManager.h @@ -239,21 +239,21 @@ class MockBoundManager : public IBoundManager bool tightenLowerBound( unsigned variable, double value, const TableauRow &/* row */ ) { - return tightenLowerBound( variable, value); + return tightenLowerBound( variable, value ); } bool tightenUpperBound( unsigned variable, double value, const TableauRow &/* row */ ) { - return tightenUpperBound( variable, value); + return tightenUpperBound( variable, value ); } bool tightenLowerBound( unsigned variable, double value, const SparseUnsortedList &/* row */ ) { - return tightenLowerBound( variable, value); + return tightenLowerBound( variable, value ); } bool tightenUpperBound( unsigned variable, double value, const SparseUnsortedList &/* row */ ) { - return tightenUpperBound( variable, value); + return tightenUpperBound( variable, value ); } bool addLemmaExplanation( unsigned /* var */, double /* value */, BoundType /* affectedVarBound */, @@ -265,7 +265,6 @@ class MockBoundManager : public IBoundManager void initializeBoundExplainer( unsigned /* numberOfVariables */, unsigned /* numberOfRows */ ) { - } int getInconsistentVariable() const diff --git a/src/engine/tests/Test_BoundManager.h b/src/engine/tests/Test_BoundManager.h index 9853b6f704..05dee1ae60 100644 --- a/src/engine/tests/Test_BoundManager.h +++ b/src/engine/tests/Test_BoundManager.h @@ -259,7 +259,7 @@ class BoundManagerTestSuite : public CxxTest::TestSuite // Test initialization of data structures MockEngine engine; - TS_ASSERT_THROWS_NOTHING( boundManager.setEngine( &engine ) ); + TS_ASSERT_THROWS_NOTHING( boundManager.registerEngine( &engine ) ); unsigned numberOfVariables = 5u; unsigned numberOfRows = 3u; From 225c42a9f6a8b953ad5e587ca7b0831d0630c5a8 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Sun, 4 Dec 2022 15:20:44 +0200 Subject: [PATCH 083/165] Minor --- src/engine/tests/MockBoundManager.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/engine/tests/MockBoundManager.h b/src/engine/tests/MockBoundManager.h index 54657f31b6..665715116b 100644 --- a/src/engine/tests/MockBoundManager.h +++ b/src/engine/tests/MockBoundManager.h @@ -23,6 +23,7 @@ #include "MarabouError.h" class Tableau; +class Engine; class MockBoundManager : public IBoundManager { public: From 026818ccdc7feb804272e235fdaa605d43ce22d3 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Sun, 4 Dec 2022 15:41:00 +0200 Subject: [PATCH 084/165] Minor --- src/engine/tests/MockBoundManager.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/engine/tests/MockBoundManager.h b/src/engine/tests/MockBoundManager.h index 665715116b..b47bfbe439 100644 --- a/src/engine/tests/MockBoundManager.h +++ b/src/engine/tests/MockBoundManager.h @@ -24,6 +24,8 @@ class Tableau; class Engine; +class TableauRow; +class SparseUnsortedList; class MockBoundManager : public IBoundManager { public: From c53a811fed7026ef83a77f2d35c37a6126167ae6 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Sun, 4 Dec 2022 16:28:25 +0200 Subject: [PATCH 085/165] Minor --- src/engine/IBoundManager.h | 3 +++ src/engine/tests/MockBoundManager.h | 3 --- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/engine/IBoundManager.h b/src/engine/IBoundManager.h index b4f3dbd0da..4db02ae566 100644 --- a/src/engine/IBoundManager.h +++ b/src/engine/IBoundManager.h @@ -37,6 +37,9 @@ enum BoundType : unsigned UPPER = 1, }; +class BoundExplainer; +class SparseUnsortedList; +class TableauRow; class Tightening; class ITableau; class IRowBoundTightener; diff --git a/src/engine/tests/MockBoundManager.h b/src/engine/tests/MockBoundManager.h index b47bfbe439..54657f31b6 100644 --- a/src/engine/tests/MockBoundManager.h +++ b/src/engine/tests/MockBoundManager.h @@ -23,9 +23,6 @@ #include "MarabouError.h" class Tableau; -class Engine; -class TableauRow; -class SparseUnsortedList; class MockBoundManager : public IBoundManager { public: From ebcf38ce7b7b9f9aa7f9d24d0245efde9d7718ca Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Sun, 4 Dec 2022 16:49:26 +0200 Subject: [PATCH 086/165] Update MockBoundManager.h --- src/engine/tests/MockBoundManager.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/engine/tests/MockBoundManager.h b/src/engine/tests/MockBoundManager.h index 54657f31b6..cef217554c 100644 --- a/src/engine/tests/MockBoundManager.h +++ b/src/engine/tests/MockBoundManager.h @@ -23,6 +23,8 @@ #include "MarabouError.h" class Tableau; +class Engine; + class MockBoundManager : public IBoundManager { public: From bbaf68d17b349ab1cfc65f6526da3ad6c85afe7d Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Sun, 4 Dec 2022 17:06:04 +0200 Subject: [PATCH 087/165] Minor --- src/engine/IBoundManager.h | 1 - src/engine/tests/MockBoundManager.h | 1 - 2 files changed, 2 deletions(-) diff --git a/src/engine/IBoundManager.h b/src/engine/IBoundManager.h index 4db02ae566..9c9b9e0e6f 100644 --- a/src/engine/IBoundManager.h +++ b/src/engine/IBoundManager.h @@ -28,7 +28,6 @@ #include "List.h" #include "Vector.h" -#include "BoundExplainer.h" #include "PiecewiseLinearFunctionType.h" enum BoundType : unsigned diff --git a/src/engine/tests/MockBoundManager.h b/src/engine/tests/MockBoundManager.h index cef217554c..665715116b 100644 --- a/src/engine/tests/MockBoundManager.h +++ b/src/engine/tests/MockBoundManager.h @@ -24,7 +24,6 @@ class Tableau; class Engine; - class MockBoundManager : public IBoundManager { public: From bc9ac6d9b7bf092e27d939b0b8f50f29a2fa9724 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Sun, 4 Dec 2022 17:21:19 +0200 Subject: [PATCH 088/165] Update MockBoundManager.h --- src/engine/tests/MockBoundManager.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/engine/tests/MockBoundManager.h b/src/engine/tests/MockBoundManager.h index 665715116b..54657f31b6 100644 --- a/src/engine/tests/MockBoundManager.h +++ b/src/engine/tests/MockBoundManager.h @@ -23,7 +23,6 @@ #include "MarabouError.h" class Tableau; -class Engine; class MockBoundManager : public IBoundManager { public: From 9a991e293c42c631741ca801796b713a9a503154 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Sun, 11 Dec 2022 14:13:14 +0200 Subject: [PATCH 089/165] Answers to comments --- src/engine/BoundManager.cpp | 30 +++++++++++++++++--------- src/engine/BoundManager.h | 26 +++++++++++++++------- src/engine/IBoundManager.h | 22 ++++++++++++++----- src/engine/PiecewiseLinearConstraint.h | 10 ++++----- src/engine/ReluConstraint.cpp | 23 +++++++++++--------- src/engine/RowBoundTightener.cpp | 4 ++-- src/engine/RowBoundTightener.h | 18 ++++++++++------ src/engine/tests/MockBoundManager.h | 17 +++++++++++---- src/engine/tests/Test_BoundManager.h | 2 +- 9 files changed, 101 insertions(+), 51 deletions(-) diff --git a/src/engine/BoundManager.cpp b/src/engine/BoundManager.cpp index 0b3b461b32..dba8f4bc2b 100644 --- a/src/engine/BoundManager.cpp +++ b/src/engine/BoundManager.cpp @@ -307,7 +307,7 @@ void BoundManager::registerRowBoundTightener( IRowBoundTightener *ptrRowBoundTig void BoundManager::explainBound( unsigned variable, bool isUpper, Vector &explanation ) const { - ASSERT( shouldProduceProofs() && variable < _size ); + ASSERT( shouldProduceProofs() && variable < _size ); auto temp = _boundExplainer->getExplanation( variable, isUpper ); explanation = Vector( temp.size() ); for ( unsigned i = 0; i < temp.size(); ++i ) @@ -321,7 +321,7 @@ bool BoundManager::tightenLowerBound( unsigned variable, double value, const Tab if ( tightened ) { if ( shouldProduceProofs() ) - _boundExplainer->updateBoundExplanation( row, false, variable ); + _boundExplainer->updateBoundExplanation( row, LOWER, variable ); if ( _tableau != nullptr ) _tableau->updateVariableToComplyWithLowerBoundUpdate( variable, value ); @@ -336,7 +336,7 @@ bool BoundManager::tightenUpperBound( unsigned variable, double value, const Tab if ( tightened ) { if ( shouldProduceProofs() ) - _boundExplainer->updateBoundExplanation( row, true, variable ); + _boundExplainer->updateBoundExplanation( row, UPPER, variable ); if ( _tableau != nullptr ) _tableau->updateVariableToComplyWithUpperBoundUpdate( variable, value ); @@ -351,7 +351,7 @@ bool BoundManager::tightenLowerBound( unsigned variable, double value, const Spa if ( tightened ) { if ( shouldProduceProofs() ) - _boundExplainer->updateBoundExplanationSparse( row, false, variable ); + _boundExplainer->updateBoundExplanationSparse( row, LOWER, variable ); if ( _tableau != nullptr ) _tableau->updateVariableToComplyWithLowerBoundUpdate( variable, value ); @@ -366,7 +366,7 @@ bool BoundManager::tightenUpperBound( unsigned variable, double value, const Spa if ( tightened ) { if ( shouldProduceProofs() ) - _boundExplainer->updateBoundExplanationSparse( row, true, variable ); + _boundExplainer->updateBoundExplanationSparse( row, UPPER, variable ); if ( _tableau != nullptr ) _tableau->updateVariableToComplyWithUpperBoundUpdate( variable, value ); @@ -386,16 +386,26 @@ void BoundManager::setExplanation( const Vector &explanation, unsigned v _boundExplainer->setExplanation( explanation, var, isUpper ); } -BoundExplainer *BoundManager::getBoundExplainer() const +const BoundExplainer *BoundManager::getBoundExplainer() const { return _boundExplainer; } -void BoundManager::setBoundExplainerContent( BoundExplainer *boundsExplainer ) +void BoundManager::copyBoundExplainerContent( const BoundExplainer *boundsExplainer ) { *_boundExplainer = *boundsExplainer; } +void BoundManager::updateBoundExplanation( const TableauRow &row, bool isUpper, unsigned var ) +{ + _boundExplainer->updateBoundExplanation( row, isUpper, var ); +} + +void BoundManager::updateBoundExplanationSparse( const SparseUnsortedList &row, bool isUpper, unsigned var ) +{ + _boundExplainer->updateBoundExplanationSparse( row, isUpper, var ); +} + bool BoundManager::addLemmaExplanation( unsigned var, double value, BoundType affectedVarBound, unsigned causingVar, BoundType causingVarBound, PiecewiseLinearFunctionType constraintType ) @@ -434,11 +444,11 @@ void BoundManager::initializeBoundExplainer( unsigned numberOfVariables, unsigne _boundExplainer = new BoundExplainer( numberOfVariables, numberOfRows, _context ); } -int BoundManager::getInconsistentVariable() const +unsigned BoundManager::getInconsistentVariable() const { if ( _consistentBounds ) - return -1; - return ( int ) _firstInconsistentTightening._variable; + return NO_VARIABLE_FOUND; + return _firstInconsistentTightening._variable; } double BoundManager::computeRowBound( const TableauRow &row, const bool isUpper ) const diff --git a/src/engine/BoundManager.h b/src/engine/BoundManager.h index 68d14e410f..eeda4f18b3 100644 --- a/src/engine/BoundManager.h +++ b/src/engine/BoundManager.h @@ -39,17 +39,17 @@ #ifndef __BoundManager_h__ #define __BoundManager_h__ +#include "context/cdo.h" +#include "context/context.h" #include "IBoundManager.h" +#include "IEngine.h" #include "IRowBoundTightener.h" #include "ITableau.h" -#include "IEngine.h" #include "List.h" -#include "Tightening.h" -#include "Vector.h" -#include "context/cdo.h" -#include "context/context.h" #include "PlcExplanation.h" +#include "Tightening.h" #include "UnsatCertificateNode.h" +#include "Vector.h" class ITableau; class IEngine; @@ -147,18 +147,28 @@ class BoundManager : public IBoundManager /* Return the content of the object containing all explanations for variable bounds in the tableau. */ - BoundExplainer *getBoundExplainer() const; + const BoundExplainer *getBoundExplainer() const; /* Deep-copy the BoundExplainer object content */ - void setBoundExplainerContent( BoundExplainer *boundsExplainer ); + void copyBoundExplainerContent( const BoundExplainer *boundsExplainer ); /* Initialize the boundExplainer */ void initializeBoundExplainer( unsigned numberOfVariables, unsigned numberOfRows ); + /* + Given a row, updates the values of the bound explanations of a var according to the row + */ + void updateBoundExplanation( const TableauRow &row, bool isUpper, unsigned var ); + + /* + Given a row as SparseUnsortedList, updates the values of the bound explanations of a var according to the row + */ + void updateBoundExplanationSparse( const SparseUnsortedList &row, bool isUpper, unsigned var ); + /* Reset a bound explanation */ @@ -182,7 +192,7 @@ class BoundManager : public IBoundManager /* Get the index of a variable with inconsistent bounds, if exists, or -1 otherwise */ - int getInconsistentVariable() const; + unsigned getInconsistentVariable() const; /* Computes the bound imposed by a row's rhs on its lhs diff --git a/src/engine/IBoundManager.h b/src/engine/IBoundManager.h index 9c9b9e0e6f..c4586138c7 100644 --- a/src/engine/IBoundManager.h +++ b/src/engine/IBoundManager.h @@ -37,14 +37,16 @@ enum BoundType : unsigned }; class BoundExplainer; +class IRowBoundTightener; +class ITableau; class SparseUnsortedList; class TableauRow; class Tightening; -class ITableau; -class IRowBoundTightener; class IBoundManager { public: + const static constexpr unsigned NO_VARIABLE_FOUND = UINT32_MAX -1; + virtual ~IBoundManager() {}; /* @@ -134,22 +136,32 @@ class IBoundManager /* Return the content of the object containing all explanations for variable bounds in the tableau */ - virtual BoundExplainer *getBoundExplainer() const = 0; + virtual const BoundExplainer *getBoundExplainer() const = 0; /* Deep-copy the BoundExplainer object content */ - virtual void setBoundExplainerContent( BoundExplainer *boundExplainer ) = 0; + virtual void copyBoundExplainerContent( const BoundExplainer* boundExplainer ) = 0; /* Initialize the boundExplainer */ virtual void initializeBoundExplainer( unsigned numberOfVariables, unsigned numberOfRows ) = 0; + /* + Given a row, updates the values of the bound explanations of a var according to the row + */ + virtual void updateBoundExplanation( const TableauRow &row, bool isUpper, unsigned var ) = 0; + + /* + Given a row as SparseUnsortedList, updates the values of the bound explanations of a var according to the row + */ + virtual void updateBoundExplanationSparse( const SparseUnsortedList &row, bool isUpper, unsigned var ) = 0; + /* Get the index of a variable with inconsistent bounds, if exists, or -1 otherwise */ - virtual int getInconsistentVariable() const = 0; + virtual unsigned getInconsistentVariable() const = 0; /* Return true iff boundManager should produce proofs diff --git a/src/engine/PiecewiseLinearConstraint.h b/src/engine/PiecewiseLinearConstraint.h index 8308492b61..1bbe26accb 100644 --- a/src/engine/PiecewiseLinearConstraint.h +++ b/src/engine/PiecewiseLinearConstraint.h @@ -453,10 +453,10 @@ class PiecewiseLinearConstraint : public ITableau::VariableWatcher return _cdInfeasibleCases; } - void setTableauAuxVar( unsigned var ) - { - _tableauAuxVar = var; - } + void setTableauAuxVar( unsigned var ) + { + _tableauAuxVar = var; + } protected: unsigned _numCases; // Number of possible cases/phases for this constraint @@ -603,7 +603,7 @@ class PiecewiseLinearConstraint : public ITableau::VariableWatcher return _gurobi->getAssignment( Stringf( "x%u", variable ) ); } - unsigned _tableauAuxVar; + unsigned _tableauAuxVar; }; diff --git a/src/engine/ReluConstraint.cpp b/src/engine/ReluConstraint.cpp index ff5708bd27..09d59aeee9 100644 --- a/src/engine/ReluConstraint.cpp +++ b/src/engine/ReluConstraint.cpp @@ -19,15 +19,14 @@ #include "DivideStrategy.h" #include "FloatUtils.h" #include "GlobalConfiguration.h" -#include "ITableau.h" +#include "InfeasibleQueryException.h" #include "InputQuery.h" +#include "ITableau.h" #include "MStringf.h" #include "MarabouError.h" #include "PiecewiseLinearCaseSplit.h" #include "Statistics.h" #include "TableauRow.h" -#include "InfeasibleQueryException.h" -#include "PlcExplanation.h" #ifdef _WIN32 #define __attribute__(x) @@ -163,17 +162,19 @@ void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) checkIfLowerBoundUpdateFixesPhase( variable, bound ); if ( isActive() ) { - createTighteningRow(); bool proofs = _boundManager->shouldProduceProofs(); + if ( proofs ) + createTighteningRow(); + // A positive lower bound is always propagated between f and b if ( ( variable == _f || variable == _b ) && bound > 0 ) { // If we're in the active phase, aux should be 0 - if ( proofs && _auxVarInUse ) - _boundManager->addLemmaExplanation( _aux, 0, UPPER, variable, LOWER, getType() ); - else if ( !proofs && _auxVarInUse ) - _boundManager->tightenUpperBound( _aux, 0 ); + if ( proofs && _auxVarInUse ) + _boundManager->addLemmaExplanation( _aux, 0, UPPER, variable, LOWER, getType() ); + else if ( !proofs && _auxVarInUse ) + _boundManager->tightenUpperBound( _aux, 0 ); // After updating to active phase unsigned partner = ( variable == _f ) ? _b : _f; @@ -223,7 +224,7 @@ void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) { if ( proofs ) _boundManager->addLemmaExplanation( _f, 0, LOWER, variable, LOWER, getType() ); - else + else _boundManager->tightenLowerBound( _f, 0 ); } } @@ -252,9 +253,11 @@ void ReluConstraint::notifyUpperBound( unsigned variable, double newBound ) if ( isActive() ) { - createTighteningRow(); bool proofs = _boundManager->shouldProduceProofs(); + if ( proofs ) + createTighteningRow(); + if ( variable == _f ) { if ( proofs ) diff --git a/src/engine/RowBoundTightener.cpp b/src/engine/RowBoundTightener.cpp index 8c688a942f..c7414e44b1 100644 --- a/src/engine/RowBoundTightener.cpp +++ b/src/engine/RowBoundTightener.cpp @@ -525,8 +525,8 @@ unsigned RowBoundTightener::tightenOnSingleConstraintRow( unsigned row ) // Now divide everything by ci, switching signs if needed. ci = entry._value; - if ( FloatUtils::lt( abs( ci ), GlobalConfiguration::MINIMAL_COEFFICIENT_FOR_TIGHTENING ) ) - continue; + if ( FloatUtils::lt( abs( ci ), GlobalConfiguration::MINIMAL_COEFFICIENT_FOR_TIGHTENING ) ) + continue; lowerBound = lowerBound / ci; upperBound = upperBound / ci; diff --git a/src/engine/RowBoundTightener.h b/src/engine/RowBoundTightener.h index e41174afd2..961a9207f2 100644 --- a/src/engine/RowBoundTightener.h +++ b/src/engine/RowBoundTightener.h @@ -56,12 +56,14 @@ class RowBoundTightener : public IRowBoundTightener */ inline unsigned registerTighterLowerBound( unsigned variable, double newLowerBound ) { - return _boundManager.tightenLowerBound( variable, newLowerBound ) ? 1u : 0u; + unsigned tighteningsToAdd = _boundManager.tightenLowerBound( variable, newLowerBound ) ? 1u : 0u; + return tighteningsToAdd; } inline unsigned registerTighterUpperBound( unsigned variable, double newUpperBound ) { - return _boundManager.tightenUpperBound( variable, newUpperBound ) ? 1u : 0u; + unsigned tighteningsToAdd = _boundManager.tightenUpperBound( variable, newUpperBound ) ? 1u : 0u; + return tighteningsToAdd; } /* @@ -69,12 +71,14 @@ class RowBoundTightener : public IRowBoundTightener */ inline unsigned registerTighterLowerBound( unsigned variable, double newLowerBound, const TableauRow &row ) { - return _boundManager.tightenLowerBound( variable, newLowerBound, row ) ? 1u : 0u; + unsigned tighteningsToAdd = _boundManager.tightenLowerBound( variable, newLowerBound, row ) ? 1u : 0u; + return tighteningsToAdd; } inline unsigned registerTighterUpperBound( unsigned variable, double newUpperBound, const TableauRow &row ) { - return _boundManager.tightenUpperBound( variable, newUpperBound, row ) ? 1u : 0u; + unsigned tighteningsToAdd = _boundManager.tightenUpperBound( variable, newUpperBound, row ) ? 1u : 0u; + return tighteningsToAdd; } /* @@ -82,12 +86,14 @@ class RowBoundTightener : public IRowBoundTightener */ inline unsigned registerTighterLowerBound( unsigned variable, double newLowerBound, const SparseUnsortedList &row ) { - return _boundManager.tightenLowerBound( variable, newLowerBound, row ) ? 1u : 0u; + unsigned tighteningsToAdd = _boundManager.tightenLowerBound( variable, newLowerBound, row ) ? 1u : 0u; + return tighteningsToAdd; } inline unsigned registerTighterUpperBound( unsigned variable, double newUpperBound, const SparseUnsortedList &row ) { - return _boundManager.tightenUpperBound( variable, newUpperBound, row ) ? 1u : 0u; + unsigned tighteningsToAdd = _boundManager.tightenUpperBound( variable, newUpperBound, row ) ? 1u : 0u; + return tighteningsToAdd; } /* diff --git a/src/engine/tests/MockBoundManager.h b/src/engine/tests/MockBoundManager.h index 54657f31b6..a470283371 100644 --- a/src/engine/tests/MockBoundManager.h +++ b/src/engine/tests/MockBoundManager.h @@ -216,12 +216,20 @@ class MockBoundManager : public IBoundManager { } - BoundExplainer* getBoundExplainer() const + const BoundExplainer* getBoundExplainer() const { return NULL; } - void setBoundExplainerContent(BoundExplainer* /* boundsExplanations */ ) + void copyBoundExplainerContent( const BoundExplainer* /* boundsExplanations */ ) + { + } + + void updateBoundExplanation( const TableauRow &/* row */, bool /* isUpper */, unsigned /* var */ ) + { + } + + void updateBoundExplanationSparse( const SparseUnsortedList &/* row */, bool /* isUpper */, unsigned /* var */ ) { } @@ -241,6 +249,7 @@ class MockBoundManager : public IBoundManager { return tightenLowerBound( variable, value ); } + bool tightenUpperBound( unsigned variable, double value, const TableauRow &/* row */ ) { return tightenUpperBound( variable, value ); @@ -267,9 +276,9 @@ class MockBoundManager : public IBoundManager { } - int getInconsistentVariable() const + unsigned getInconsistentVariable() const { - return 0; + return NO_VARIABLE_FOUND; } bool shouldProduceProofs() const diff --git a/src/engine/tests/Test_BoundManager.h b/src/engine/tests/Test_BoundManager.h index 05dee1ae60..24590d9072 100644 --- a/src/engine/tests/Test_BoundManager.h +++ b/src/engine/tests/Test_BoundManager.h @@ -296,7 +296,7 @@ class BoundManagerTestSuite : public CxxTest::TestSuite // Test boundExplainer setting and getting BoundExplainer secondExplainer( numberOfVariables, numberOfRows, *context ); - TS_ASSERT_THROWS_NOTHING( boundManager.setBoundExplainerContent(&secondExplainer) ); + TS_ASSERT_THROWS_NOTHING( boundManager.copyBoundExplainerContent( &secondExplainer ) ); // Setting is effective if the non-trivial explanation became trivial TS_ASSERT_THROWS_NOTHING( boundManager.isExplanationTrivial( 1, false ) ); From 078324429d9fab0ea87a8cd29d7133a2835fd7ee Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Sun, 11 Dec 2022 14:13:35 +0200 Subject: [PATCH 090/165] Minor --- src/engine/IBoundManager.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/engine/IBoundManager.h b/src/engine/IBoundManager.h index c4586138c7..bec7069712 100644 --- a/src/engine/IBoundManager.h +++ b/src/engine/IBoundManager.h @@ -26,6 +26,7 @@ #ifndef __IBoundManager_h__ #define __IBoundManager_h__ +#include #include "List.h" #include "Vector.h" #include "PiecewiseLinearFunctionType.h" From c90dedf1bb23915d584a578876bba2d38257d186 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 13 Dec 2022 14:01:00 +0200 Subject: [PATCH 091/165] Complete functionality of proof production code --- regress/CMakeLists.txt | 12 + regress/regress1/CMakeLists.txt | 12 + src/engine/BoundManager.cpp | 26 +- src/engine/BoundManager.h | 6 +- src/engine/CostFunctionManager.cpp | 20 + src/engine/CostFunctionManager.h | 4 + src/engine/Engine.cpp | 529 ++++++++++++++++++- src/engine/Engine.h | 125 +++++ src/engine/IBoundManager.h | 5 +- src/engine/ICostFunctionManager.h | 3 + src/engine/IEngine.h | 63 +++ src/engine/ITableau.h | 3 + src/engine/InputQuery.h | 3 + src/engine/Marabou.cpp | 3 + src/engine/PrecisionRestorer.cpp | 53 ++ src/engine/PrecisionRestorer.h | 1 + src/engine/SmtCore.cpp | 36 ++ src/engine/Tableau.cpp | 34 +- src/engine/Tableau.h | 5 + src/engine/tests/MockCostFunctionManager.h | 5 + src/engine/tests/MockEngine.h | 59 +++ src/engine/tests/MockTableau.h | 8 + src/engine/tests/Test_BoundManager.h | 2 +- src/engine/tests/Test_Tableau.h | 10 + src/proofs/BoundExplainer.h | 2 +- src/proofs/Checker.cpp | 2 +- src/proofs/tests/Test_UnsatCertificateNode.h | 2 +- 27 files changed, 980 insertions(+), 53 deletions(-) diff --git a/regress/CMakeLists.txt b/regress/CMakeLists.txt index 14fe5629f1..353d4bb4bd 100644 --- a/regress/CMakeLists.txt +++ b/regress/CMakeLists.txt @@ -81,6 +81,18 @@ macro(marabou_add_input_query_test level ipq_file result arguments ${result} ${test_properties}") endmacro() +macro(marabou_add_acasxu_proof_test level net_file prop_num result) + marabou_add_regress_test(${level} + "${CMAKE_SOURCE_DIR}/resources/nnet/acasxu/${net_file}.nnet" + "${CMAKE_SOURCE_DIR}/resources/properties/acas_property_${prop_num}.txt" "${result}" "--prove-unsat" "acasxu") +endmacro() + +macro(marabou_add_coav_proof_test level net_file result) + marabou_add_regress_test(${level} + "${CMAKE_SOURCE_DIR}/resources/nnet/coav/${net_file}" + "${CMAKE_SOURCE_DIR}/resources/properties/builtin_property.txt" "${result}" "--prove-unsat" "coav") +endmacro() + add_subdirectory(regress0) add_subdirectory(regress1) add_subdirectory(regress2) diff --git a/regress/regress1/CMakeLists.txt b/regress/regress1/CMakeLists.txt index f9f731e1a4..398a515d7d 100644 --- a/regress/regress1/CMakeLists.txt +++ b/regress/regress1/CMakeLists.txt @@ -138,3 +138,15 @@ foreach(file ${unsat_ipqs}) marabou_add_input_query_test(1 ${basename} unsat "--milp" "ipq") endif() endforeach() + +# Proof production tests +marabou_add_acasxu_proof_test(1 "ACASXU_experimental_v2a_5_9" "3" unsat) +marabou_add_acasxu_proof_test(1 "ACASXU_experimental_v2a_5_7" "3" unsat) +marabou_add_acasxu_proof_test(1 "ACASXU_experimental_v2a_3_7" "3" unsat) +marabou_add_acasxu_proof_test(1 "ACASXU_experimental_v2a_2_9" "4" unsat) +marabou_add_acasxu_proof_test(1 "ACASXU_experimental_v2a_2_9" "3" unsat) +marabou_add_coav_proof_test(1 "reluBenchmark1.30941200256s_UNSAT.nnet" unsat) +marabou_add_coav_proof_test(1 "reluBenchmark0.453322172165s_UNSAT.nnet" unsat) +marabou_add_coav_proof_test(1 "reluBenchmark0.30711388588s_UNSAT.nnet" unsat) +marabou_add_coav_proof_test(1 "reluBenchmark0.725997209549s_UNSAT.nnet" unsat) +marabou_add_coav_proof_test(1 "reluBenchmark1.81178617477s_UNSAT.nnet" unsat) diff --git a/src/engine/BoundManager.cpp b/src/engine/BoundManager.cpp index dba8f4bc2b..f2e4cd7077 100644 --- a/src/engine/BoundManager.cpp +++ b/src/engine/BoundManager.cpp @@ -305,9 +305,9 @@ void BoundManager::registerRowBoundTightener( IRowBoundTightener *ptrRowBoundTig _rowBoundTightener = ptrRowBoundTightener; } -void BoundManager::explainBound( unsigned variable, bool isUpper, Vector &explanation ) const +void BoundManager::getExplanation( unsigned variable, bool isUpper, Vector &explanation ) const { - ASSERT( shouldProduceProofs() && variable < _size ); + ASSERT( _engine->shouldProduceProofs() && variable < _size ); auto temp = _boundExplainer->getExplanation( variable, isUpper ); explanation = Vector( temp.size() ); for ( unsigned i = 0; i < temp.size(); ++i ) @@ -320,7 +320,7 @@ bool BoundManager::tightenLowerBound( unsigned variable, double value, const Tab if ( tightened ) { - if ( shouldProduceProofs() ) + if ( _engine->shouldProduceProofs() ) _boundExplainer->updateBoundExplanation( row, LOWER, variable ); if ( _tableau != nullptr ) @@ -335,7 +335,7 @@ bool BoundManager::tightenUpperBound( unsigned variable, double value, const Tab if ( tightened ) { - if ( shouldProduceProofs() ) + if ( _engine->shouldProduceProofs() ) _boundExplainer->updateBoundExplanation( row, UPPER, variable ); if ( _tableau != nullptr ) @@ -350,7 +350,7 @@ bool BoundManager::tightenLowerBound( unsigned variable, double value, const Spa if ( tightened ) { - if ( shouldProduceProofs() ) + if ( _engine->shouldProduceProofs() ) _boundExplainer->updateBoundExplanationSparse( row, LOWER, variable ); if ( _tableau != nullptr ) @@ -365,7 +365,7 @@ bool BoundManager::tightenUpperBound( unsigned variable, double value, const Spa if ( tightened ) { - if ( shouldProduceProofs() ) + if ( _engine->shouldProduceProofs() ) _boundExplainer->updateBoundExplanationSparse( row, UPPER, variable ); if ( _tableau != nullptr ) @@ -417,31 +417,29 @@ bool BoundManager::addLemmaExplanation( unsigned var, double value, BoundType af // Register new ground bound, update certificate, and reset explanation Vector explanation( 0 ); - explainBound( causingVar, causingVarBound, explanation ); + getExplanation( causingVar, causingVarBound, explanation ); bool tightened = affectedVarBound == UPPER ? tightenUpperBound( var, value ) : tightenLowerBound( var, value ); if ( tightened ) { std::shared_ptr PLCExpl = std::make_shared( causingVar, var, value, causingVarBound, affectedVarBound, explanation, constraintType ); - // TODO uncomment when proof producing engine is integrated - // _engine->getUNSATCertificateCurrentPointer()->addPLCExplanation( PLCExpl ); - // affectedVarBound == UPPER ? _engine->updateGroundUpperBound( var, value ) : _engine->updateGroundLowerBound( var, value ); + _engine->getUNSATCertificateCurrentPointer()->addPLCExplanation( PLCExpl ); + affectedVarBound == UPPER ? _engine->updateGroundUpperBound( var, value ) : _engine->updateGroundLowerBound( var, value ); resetExplanation( var, affectedVarBound ); } return true; } -void BoundManager::registerEngine( IEngine *engine ) +void BoundManager::registerEngine( IEngine *engine) { _engine = engine; } void BoundManager::initializeBoundExplainer( unsigned numberOfVariables, unsigned numberOfRows ) { - // TODO uncomment when proof producing engine is integrated - // if ( _engine->shouldProduceProofs() ) - _boundExplainer = new BoundExplainer( numberOfVariables, numberOfRows, _context ); + if ( _engine->shouldProduceProofs() ) + _boundExplainer = new BoundExplainer( numberOfVariables, numberOfRows, _context ); } unsigned BoundManager::getInconsistentVariable() const diff --git a/src/engine/BoundManager.h b/src/engine/BoundManager.h index eeda4f18b3..0b9d54e0a1 100644 --- a/src/engine/BoundManager.h +++ b/src/engine/BoundManager.h @@ -42,9 +42,9 @@ #include "context/cdo.h" #include "context/context.h" #include "IBoundManager.h" -#include "IEngine.h" #include "IRowBoundTightener.h" #include "ITableau.h" +#include "IEngine.h" #include "List.h" #include "PlcExplanation.h" #include "Tightening.h" @@ -177,7 +177,7 @@ class BoundManager : public IBoundManager /* Insert the bounds explanation of a variable in the tableau to the argument vector */ - void explainBound( unsigned variable, bool isUpper, Vector &explanation ) const; + void getExplanation( unsigned variable, bool isUpper, Vector &explanation ) const; /* Artificially update an explanation, without using the recursive rule @@ -187,7 +187,7 @@ class BoundManager : public IBoundManager /* Register Engine pointer for callbacks */ - void registerEngine( IEngine *engine ); + void registerEngine( IEngine *engine); /* Get the index of a variable with inconsistent bounds, if exists, or -1 otherwise diff --git a/src/engine/CostFunctionManager.cpp b/src/engine/CostFunctionManager.cpp index 2c3a2fff94..0c9d4470cb 100644 --- a/src/engine/CostFunctionManager.cpp +++ b/src/engine/CostFunctionManager.cpp @@ -439,6 +439,26 @@ double CostFunctionManager::getBasicCost( unsigned basicIndex ) const return _basicCosts[basicIndex]; } +SparseUnsortedList* CostFunctionManager::createRowOfCostFunction() const +{ + SparseUnsortedList* costRow = new SparseUnsortedList( 0 ); + for ( unsigned i = 0; i < _m; ++i ) + if ( !FloatUtils::isZero( _basicCosts[i] ) ) + { + costRow->append( _tableau->basicIndexToVariable( i ), -_basicCosts[i] ); //Minus sign since we are used to think about basics in lhs (while the row has all variables in rhs). + costRow->incrementSize(); + } + + for ( unsigned i = 0; i < _n - _m; ++i ) + if ( !FloatUtils::isZero( _costFunction[i] ) ) + { + costRow->append( _tableau->nonBasicIndexToVariable( i ), _costFunction[i] ); + costRow->incrementSize(); + } + + return costRow; +} + // // Local Variables: // compile-command: "make -C ../.. " diff --git a/src/engine/CostFunctionManager.h b/src/engine/CostFunctionManager.h index a74d822370..91659db587 100644 --- a/src/engine/CostFunctionManager.h +++ b/src/engine/CostFunctionManager.h @@ -93,6 +93,10 @@ class CostFunctionManager : public ICostFunctionManager */ void dumpCostFunction() const; + /* + Returns the cost function as a SparseUnsortedList object, so it can be viewed as a Tableau row. + */ + SparseUnsortedList* createRowOfCostFunction() const; private: /* The tableau. diff --git a/src/engine/Engine.cpp b/src/engine/Engine.cpp index 1b268cfff4..ec92e2b71d 100644 --- a/src/engine/Engine.cpp +++ b/src/engine/Engine.cpp @@ -2,7 +2,7 @@ /*! \file Engine.cpp ** \verbatim ** Top contributors (to current version): - ** Guy Katz, Duligur Ibeling, Andrew Wu + ** Guy Katz, Duligur Ibeling, Andrew Wu, Omri Isac ** This file is part of the Marabou project. ** Copyright (c) 2017-2019 by the authors listed in the file AUTHORS ** in the top-level source directory) and their institutional affiliations. @@ -67,6 +67,9 @@ Engine::Engine() , _milpSolverBoundTighteningType( Options::get()->getMILPSolverBoundTighteningType() ) , _sncMode( false ) , _queryId( "" ) + , _produceUNSATProofs( Options::get()->getBool( Options::PRODUCE_PROOFS ) ) + , _groundBoundManager( _context ) + , _UNSATCertificate( NULL ) { _smtCore.setStatistics( &_statistics ); _tableau->setStatistics( &_statistics ); @@ -78,10 +81,14 @@ Engine::Engine() _statistics.stampStartingTime(); setRandomSeed( Options::get()->getInt( Options::SEED ) ); + _boundManager.registerEngine( this ); + _groundBoundManager.registerEngine( this ); _statisticsPrintingFrequency = ( _lpSolverType == LPSolverType::NATIVE ) ? GlobalConfiguration::STATISTICS_PRINTING_FREQUENCY : - GlobalConfiguration::STATISTICS_PRINTING_FREQUENCY_GUROBI ; + GlobalConfiguration::STATISTICS_PRINTING_FREQUENCY_GUROBI; + + _produceUNSATProofs ? _UNSATCertificateCurrentPointer = new ( true ) CVC4::context::CDO( &_context, NULL ) : NULL; } Engine::~Engine() @@ -91,6 +98,15 @@ Engine::~Engine() delete[] _work; _work = NULL; } + + if ( _UNSATCertificate ) + { + delete _UNSATCertificate; + _UNSATCertificate = NULL; + } + + if ( _produceUNSATProofs && _UNSATCertificateCurrentPointer ) + _UNSATCertificateCurrentPointer->deleteSelf(); } void Engine::setVerbosity( unsigned verbosity ) @@ -111,13 +127,12 @@ void Engine::adjustWorkMemorySize() throw MarabouError( MarabouError::ALLOCATION_FAILED, "Engine::work" ); } - void Engine::applySnCSplit( PiecewiseLinearCaseSplit sncSplit, String queryId ) { - _sncMode = true; - _sncSplit = sncSplit; - _queryId = queryId; - applySplit( sncSplit ); + _sncMode = true; + _sncSplit = sncSplit; + _queryId = queryId; + applySplit( sncSplit ); } void Engine::setRandomSeed( unsigned seed ) @@ -247,7 +262,7 @@ bool Engine::solve( unsigned timeoutInSeconds ) if ( _tableau->basisMatrixAvailable() ) { explicitBasisBoundTightening(); - applyAllBoundTightenings(); + _boundManager.propagateTightenings(); applyAllValidConstraintCaseSplits(); } } @@ -282,7 +297,7 @@ bool Engine::solve( unsigned timeoutInSeconds ) adjustAssignmentToSatisfyNonLinearConstraints(); if ( solutionFound ) { - struct timespec mainLoopEnd = TimeUtils::sampleMicro(); + mainLoopEnd = TimeUtils::sampleMicro(); _statistics.incLongAttribute ( Statistics::TIME_MAIN_LOOP_MICRO, TimeUtils::timePassed( mainLoopStart, @@ -292,8 +307,14 @@ bool Engine::solve( unsigned timeoutInSeconds ) printf( "\nEngine::solve: sat assignment found\n" ); _statistics.print(); } - _exitCode = Engine::SAT; + // Allows checking proofs produced for UNSAT leaves of satisfiable query search tree + if ( _produceUNSATProofs ) + { + ASSERT( _UNSATCertificateCurrentPointer ); + ( **_UNSATCertificateCurrentPointer ).setSATSolutionFlag(); + } + _exitCode = Engine::SAT; return true; } else @@ -321,7 +342,7 @@ bool Engine::solve( unsigned timeoutInSeconds ) ASSERT( _lpSolverType == LPSolverType::NATIVE ); _exitCode = Engine::ERROR; exportInputQueryWithError( "Cannot restore tableau" ); - struct timespec mainLoopEnd = TimeUtils::sampleMicro(); + mainLoopEnd = TimeUtils::sampleMicro(); _statistics.incLongAttribute ( Statistics::TIME_MAIN_LOOP_MICRO, TimeUtils::timePassed( mainLoopStart, @@ -334,9 +355,12 @@ bool Engine::solve( unsigned timeoutInSeconds ) _tableau->toggleOptimization( false ); // The current query is unsat, and we need to pop. // If we're at level 0, the whole query is unsat. + if ( _produceUNSATProofs ) + explainSimplexFailure(); + if ( !_smtCore.popSplit() ) { - struct timespec mainLoopEnd = TimeUtils::sampleMicro(); + mainLoopEnd = TimeUtils::sampleMicro(); _statistics.incLongAttribute ( Statistics::TIME_MAIN_LOOP_MICRO, TimeUtils::timePassed( mainLoopStart, @@ -366,7 +390,7 @@ bool Engine::solve( unsigned timeoutInSeconds ) e.getCode(), e.getUserMessage() ); _exitCode = Engine::ERROR; exportInputQueryWithError( message ); - struct timespec mainLoopEnd = TimeUtils::sampleMicro(); + mainLoopEnd = TimeUtils::sampleMicro(); _statistics.incLongAttribute ( Statistics::TIME_MAIN_LOOP_MICRO, TimeUtils::timePassed( mainLoopStart, @@ -377,7 +401,7 @@ bool Engine::solve( unsigned timeoutInSeconds ) { _exitCode = Engine::ERROR; exportInputQueryWithError( "Unknown error" ); - struct timespec mainLoopEnd = TimeUtils::sampleMicro(); + mainLoopEnd = TimeUtils::sampleMicro(); _statistics.incLongAttribute ( Statistics::TIME_MAIN_LOOP_MICRO, TimeUtils::timePassed( mainLoopStart, @@ -460,7 +484,7 @@ bool Engine::adjustAssignmentToSatisfyNonLinearConstraints() // Finally, take this opporunity to tighten any bounds // and perform any valid case splits. tightenBoundsOnConstraintMatrix(); - applyAllBoundTightenings(); + _boundManager.propagateTightenings(); // For debugging purposes checkBoundCompliancyWithDebugSolution(); @@ -613,7 +637,7 @@ bool Engine::performSimplexStep() } }); - // Obtain all eligible entering varaibles + // Obtain all eligible entering variables List enteringVariableCandidates; _tableau->getEntryCandidates( enteringVariableCandidates ); @@ -754,6 +778,8 @@ bool Engine::performSimplexStep() _activeEntryStrategy->prePivotHook( _tableau, fakePivot ); _tableau->performPivot(); _activeEntryStrategy->postPivotHook( _tableau, fakePivot ); + _boundManager.propagateTightenings(); + _costFunctionManager->invalidateCostFunction(); struct timespec end = TimeUtils::sampleMicro(); _statistics.incLongAttribute( Statistics::TIME_SIMPLEX_STEPS_MICRO, TimeUtils::timePassed( start, end ) ); @@ -1199,6 +1225,8 @@ void Engine::addAuxiliaryVariables() for ( auto &eq : equations ) { unsigned auxVar = originalN + count; + if ( _produceUNSATProofs ) + _preprocessedQuery->_lastAddendToAux.insert( eq._addends.back()._variable, auxVar ); eq.addAddend( -1, auxVar ); _preprocessedQuery->setLowerBound( auxVar, eq._scalar ); _preprocessedQuery->setUpperBound( auxVar, eq._scalar ); @@ -1263,6 +1291,10 @@ void Engine::initializeBoundsAndConstraintWatchersInTableau( unsigned { constraint->registerAsWatcher( _tableau ); constraint->setStatistics( &_statistics ); + + // Assuming aux var is use, add the constraint's auxiliary variable assigned to it in the tableau, to the constraint + if ( _produceUNSATProofs && _preprocessedQuery->_lastAddendToAux.exists( constraint->getParticipatingVariables().back() ) ) + constraint->setTableauAuxVar( _preprocessedQuery->_lastAddendToAux.at( constraint->getParticipatingVariables().back() ) ); } _tsConstraints = _preprocessedQuery->getTranscendentalConstraints(); @@ -1315,6 +1347,20 @@ bool Engine::processInputQuery( InputQuery &inputQuery, bool preprocess ) plConstraint->addAuxiliaryEquationsAfterPreprocessing ( *_preprocessedQuery ); + if ( _produceUNSATProofs ) + { + for ( auto &plConstraint : _preprocessedQuery->getPiecewiseLinearConstraints() ) + { + if ( plConstraint->getType() != RELU ) + { + ENGINE_LOG( "Turning off proof production since activations not yet supported\n" ); + printf( "Turning off proof production since activations not yet supported\n" ); + _produceUNSATProofs = false; + Options::get()->setBool( Options::PRODUCE_PROOFS, false ); + } + } + } + if ( _lpSolverType == LPSolverType::NATIVE ) { double *constraintMatrix = createConstraintMatrix(); @@ -1340,8 +1386,22 @@ bool Engine::processInputQuery( InputQuery &inputQuery, bool preprocess ) _boundManager.initialize( n ); initializeTableau( constraintMatrix, initialBasis ); - + _boundManager.initializeBoundExplainer( n, _tableau->getM() ); delete[] constraintMatrix; + + if ( _produceUNSATProofs ) + { + _UNSATCertificate = new UnsatCertificateNode( NULL, PiecewiseLinearCaseSplit() ); + _UNSATCertificateCurrentPointer->set( _UNSATCertificate ); + _UNSATCertificate->setVisited(); + _groundBoundManager.initialize( n ); + + for ( unsigned i = 0; i < n; ++i ) + { + _groundBoundManager.setUpperBound( i, _preprocessedQuery->getUpperBound( i ) ); + _groundBoundManager.setLowerBound( i, _preprocessedQuery->getLowerBound( i ) ); + } + } } else { @@ -1430,6 +1490,9 @@ bool Engine::processInputQuery( InputQuery &inputQuery, bool preprocess ) void Engine::performMILPSolverBoundedTightening( InputQuery *inputQuery ) { + if ( _produceUNSATProofs ) + return; + if ( _networkLevelReasoner && Options::get()->gurobiEnabled() ) { // Obtain from and store bounds into inputquery if it is not null. @@ -1500,6 +1563,9 @@ void Engine::performMILPSolverBoundedTightening( InputQuery *inputQuery ) void Engine::performMILPSolverBoundedTighteningForSingleLayer( unsigned targetIndex ) { + if ( _produceUNSATProofs ) + return; + if ( _networkLevelReasoner && _isGurobyEnabled && !_performLpTighteningAfterSplit && _milpSolverBoundTighteningType != MILPSolverBoundTighteningType::NONE ) { @@ -1884,16 +1950,33 @@ void Engine::applySplit( const PiecewiseLinearCaseSplit &split ) if ( bound._type == Tightening::LB ) { ENGINE_LOG( Stringf( "x%u: lower bound set to %.3lf", variable, bound._value ).ascii() ); - _tableau->tightenLowerBound( variable, bound._value ); + if ( _produceUNSATProofs && FloatUtils::gt( bound._value, _boundManager.getLowerBound( bound._variable ) ) ) + { + _boundManager.resetExplanation( variable, LOWER ); + updateGroundLowerBound( variable, bound._value ); + _boundManager.tightenLowerBound( variable, bound._value ); + } + else if ( !_produceUNSATProofs ) + _boundManager.tightenLowerBound( variable, bound._value ); } else { ENGINE_LOG( Stringf( "x%u: upper bound set to %.3lf", variable, bound._value ).ascii() ); - _tableau->tightenUpperBound( variable, bound._value ); + if ( _produceUNSATProofs && FloatUtils::lt( bound._value, _boundManager.getUpperBound( bound._variable ) ) ) + { + _boundManager.resetExplanation( variable, UPPER ); + updateGroundUpperBound( variable, bound._value ); + _boundManager.tightenUpperBound( variable, bound._value ); + } + else if ( !_produceUNSATProofs ) + _boundManager.tightenUpperBound( variable, bound._value ); } } - DEBUG( _tableau->verifyInvariants() ); + if ( _produceUNSATProofs && _UNSATCertificateCurrentPointer ) + ( **_UNSATCertificateCurrentPointer ).setVisited(); + + DEBUG( _tableau->verifyInvariants() ); ENGINE_LOG( "Done with split\n" ); } @@ -1910,6 +1993,7 @@ void Engine::applyBoundTightenings() _tableau->tightenUpperBound( tightening._variable, tightening._value ); } } + void Engine::applyAllRowTightenings() { applyBoundTightenings(); @@ -2180,7 +2264,7 @@ List Engine::getInputVariables() const void Engine::performSimulation() { if ( _simulationSize == 0 || !_networkLevelReasoner || - _milpSolverBoundTighteningType == MILPSolverBoundTighteningType::NONE ) + _milpSolverBoundTighteningType == MILPSolverBoundTighteningType::NONE || _produceUNSATProofs ) { ENGINE_LOG( Stringf( "Skip simulation...").ascii() ); return; @@ -2208,7 +2292,7 @@ void Engine::performSimulation() void Engine::performSymbolicBoundTightening( InputQuery *inputQuery ) { if ( _symbolicBoundTighteningType == SymbolicBoundTighteningType::NONE || - ( !_networkLevelReasoner ) ) + ( !_networkLevelReasoner ) || _produceUNSATProofs ) return; struct timespec start = TimeUtils::sampleMicro(); @@ -2306,6 +2390,7 @@ void Engine::preContextPushHook() { struct timespec start = TimeUtils::sampleMicro(); _boundManager.storeLocalBounds(); + _groundBoundManager.storeLocalBounds(); struct timespec end = TimeUtils::sampleMicro(); _statistics.incLongAttribute( Statistics::TIME_CONTEXT_PUSH_HOOK, TimeUtils::timePassed( start, end ) ); @@ -2316,6 +2401,7 @@ void Engine::postContextPopHook() struct timespec start = TimeUtils::sampleMicro(); _boundManager.restoreLocalBounds(); + _groundBoundManager.restoreLocalBounds(); _tableau->postContextPopHook(); struct timespec end = TimeUtils::sampleMicro(); @@ -2645,7 +2731,7 @@ bool Engine::restoreSmtState( SmtState & smtState ) } tightenBoundsOnConstraintMatrix(); - applyAllBoundTightenings(); + _boundManager.propagateTightenings(); // For debugging purposes checkBoundCompliancyWithDebugSolution(); do @@ -2659,7 +2745,7 @@ bool Engine::restoreSmtState( SmtState & smtState ) // Do all the bound propagation, and set ReLU constraints to inactive (at // least the one corresponding to the _activeSplit applied above. tightenBoundsOnConstraintMatrix(); - applyAllBoundTightenings(); + // For debugging purposes checkBoundCompliancyWithDebugSolution(); do @@ -2667,11 +2753,15 @@ bool Engine::restoreSmtState( SmtState & smtState ) while ( applyAllValidConstraintCaseSplits() ); } + _boundManager.propagateTightenings(); } catch ( const InfeasibleQueryException & ) { // The current query is unsat, and we need to pop. // If we're at level 0, the whole query is unsat. + if ( _produceUNSATProofs ) + explainSimplexFailure(); + if ( !_smtCore.popSplit() ) { if ( _verbosity > 0 ) @@ -2735,7 +2825,7 @@ bool Engine::solveWithMILPEncoding( unsigned timeoutInSeconds ) // Return UNKNOWN if input query has transcendental constratints. if ( _preprocessedQuery->getTranscendentalConstraints().size() > 0 ) { - // TODO: Return UNKNOW exitCode insted of throwing Error after implementing python interface to support UNKNOWN. + // TODO: Return UNKNOWN exitCode instead of throwing Error after implementing python interface to support UNKNOWN. throw MarabouError( MarabouError::FEATURE_NOT_YET_SUPPORTED, "UNKNOWN (Marabou doesn't support UNKNOWN cases with exitCode yet.)" ); // _exitCode = IEngine::UNKNOWN; // return false; @@ -3106,4 +3196,391 @@ InputQuery Engine::buildQueryFromCurrentState() const { query.setUpperBound( i, _tableau->getUpperBound( i ) ); } return query; -} \ No newline at end of file +} + +void Engine::updateGroundUpperBound( const unsigned var, const double value ) +{ + ASSERT( var < _tableau->getN() && _produceUNSATProofs ); + if ( FloatUtils::lt( value, _groundBoundManager.getUpperBound( var ) ) ) + _groundBoundManager.setUpperBound( var, value ); +} + +void Engine::updateGroundLowerBound( const unsigned var, const double value ) +{ + ASSERT( var < _tableau->getN() && _produceUNSATProofs ); + if ( FloatUtils::gt( value, _groundBoundManager.getLowerBound( var ) ) ) + _groundBoundManager.setLowerBound( var, value ); +} + +double Engine::getGroundBound( unsigned var, bool isUpper ) const +{ + ASSERT( var < _tableau->getN() && _produceUNSATProofs ); + return isUpper ? _groundBoundManager.getUpperBound( var ) : _groundBoundManager.getLowerBound( var ); +} + +bool Engine::shouldProduceProofs() const +{ + return _produceUNSATProofs; +} + +void Engine::explainSimplexFailure() +{ + ASSERT( _produceUNSATProofs ); + + DEBUG( checkGroundBounds() ); + + unsigned infeasibleVar = _boundManager.getInconsistentVariable(); + + if ( infeasibleVar == IBoundManager::NO_VARIABLE_FOUND || !certifyInfeasibility( infeasibleVar ) ) + infeasibleVar = explainFailureWithTableau(); + + if ( infeasibleVar == IBoundManager::NO_VARIABLE_FOUND ) + infeasibleVar = explainFailureWithCostFunction(); + + if ( infeasibleVar == IBoundManager::NO_VARIABLE_FOUND ) + { + _costFunctionManager->computeCoreCostFunction(); + infeasibleVar = explainFailureWithCostFunction(); + } + + if ( infeasibleVar == IBoundManager::NO_VARIABLE_FOUND ) + { + markLeafToDelegate(); + return; + } + + ASSERT( infeasibleVar < _tableau->getN() ); + ASSERT( _UNSATCertificateCurrentPointer && !( **_UNSATCertificateCurrentPointer ).getContradiction() ); + _statistics.incUnsignedAttribute( Statistics::NUM_CERTIFIED_LEAVES ); + + writeContradictionToCertificate( infeasibleVar ); + + ( **_UNSATCertificateCurrentPointer ).makeLeaf(); +} + +bool Engine::certifyInfeasibility( unsigned var ) const +{ + ASSERT( _produceUNSATProofs ); + + Vector contradiction = computeContradiction( var ); + + if ( contradiction.empty() ) + return FloatUtils::isNegative( _groundBoundManager.getUpperBound( var ) - _groundBoundManager.getLowerBound( var ) ); + + double derivedBound = UNSATCertificateUtils::computeCombinationUpperBound( contradiction.data(), _tableau->getSparseA(), + _groundBoundManager.getUpperBounds(), _groundBoundManager.getLowerBounds(), + _tableau->getM(), _tableau->getN() ); + return FloatUtils::isNegative( derivedBound ); +} + +double Engine::explainBound( unsigned var, bool isUpper ) const +{ + ASSERT( _produceUNSATProofs ); + + Vector explanationVec( 0 ); + + if ( !_boundManager.isExplanationTrivial( var, isUpper ) ) + _boundManager.getExplanation( var, isUpper, explanationVec ); + + const double *explanation = explanationVec.empty() ? NULL : explanationVec.data(); + return UNSATCertificateUtils::computeBound( var, isUpper, explanation, _tableau->getSparseA(), + _groundBoundManager.getUpperBounds(), _groundBoundManager.getLowerBounds(), + _tableau->getM(), _tableau->getN() ); +} + +bool Engine::validateBounds( unsigned var, double epsilon, bool isUpper ) const +{ + ASSERT( _produceUNSATProofs ); + + double explained, real; + explained = explainBound( var, isUpper ); + if ( isUpper ) + { + real = _boundManager.getUpperBound( var ); + if ( explained - real > epsilon ) + { + printf( "Var %d. Computed Upper %.5lf, real %.5lf. Difference is %.10lf\n", var, explained, real, abs( explained - real ) ); + return false; + } + } + else + { + real = _boundManager.getLowerBound( var ); + if ( explained - real < -epsilon ) + { + printf( "Var %d. Computed Lower %.5lf, real %.5lf. Difference is %.10lf\n", var, explained, real, abs( explained - real ) ); + return false; + } + } + return true; +} + +bool Engine::validateAllBounds( double epsilon ) const +{ + ASSERT( _produceUNSATProofs ); + + bool res = true; + + for ( unsigned var = 0; var < _tableau->getN(); ++var ) + if ( !validateBounds( var, epsilon, UPPER ) || !validateBounds( var, epsilon, LOWER ) ) + res = false; + + return res; +} + +bool Engine::checkGroundBounds() const +{ + ASSERT( _produceUNSATProofs ); + + for ( unsigned i = 0; i < _tableau->getN(); ++i ) + { + if ( FloatUtils::gt( _groundBoundManager.getLowerBound( i ), _boundManager.getLowerBound( i ) ) || + FloatUtils::lt( _groundBoundManager.getUpperBound( i ), _boundManager.getUpperBound( i ) ) ) + return false; + } + return true; +} + +unsigned Engine::explainFailureWithTableau() +{ + ASSERT( _produceUNSATProofs ); + + // Failure of a simplex step implies infeasible bounds imposed by the row + TableauRow boundUpdateRow = TableauRow( _tableau->getN() ); + + // For every basic, check that is has no slack and its explanations indeed prove a contradiction + unsigned basicVar; + + for ( unsigned i = 0; i < _tableau->getM(); ++i ) + { + if ( _tableau->basicOutOfBounds( i ) ) + { + _tableau->getTableauRow( i, &boundUpdateRow ); + basicVar = boundUpdateRow._lhs; + + if ( FloatUtils::gt( _boundManager.computeRowBound( boundUpdateRow, LOWER ), _boundManager.getUpperBound( basicVar ) ) + && explainAndCheckContradiction( basicVar, LOWER, &boundUpdateRow ) ) + return basicVar; + + if ( FloatUtils::lt( _boundManager.computeRowBound( boundUpdateRow, UPPER ), _boundManager.getLowerBound( basicVar ) ) + && explainAndCheckContradiction( basicVar, UPPER, &boundUpdateRow ) ) + return basicVar; + } + } + + return IBoundManager::NO_VARIABLE_FOUND; +} + +unsigned Engine::explainFailureWithCostFunction() +{ + ASSERT( _produceUNSATProofs ); + + // Failure of a simplex step might imply infeasible bounds imposed by the cost function + unsigned curBasicVar; + unsigned infVar = IBoundManager::NO_VARIABLE_FOUND; + double curCost; + bool curUpper; + SparseUnsortedList *costRow = _costFunctionManager->createRowOfCostFunction(); + + for ( unsigned i = 0; i < _tableau->getM(); ++i ) + { + curBasicVar = _tableau->basicIndexToVariable( i ); + curCost = _costFunctionManager->getBasicCost( i ); + + if ( FloatUtils::isZero( curCost ) ) + continue; + + curUpper = ( curCost < 0 ); + + // Check the basic variable has no slack + if ( !( !curUpper && FloatUtils::gt( _boundManager.computeSparseRowBound( *costRow, LOWER, curBasicVar ), + _boundManager.getUpperBound( curBasicVar ) ) ) && + !( curUpper && FloatUtils::lt( _boundManager.computeSparseRowBound( *costRow, UPPER, curBasicVar ), + _boundManager.getLowerBound( curBasicVar ) ) ) ) + + continue; + + // Check the explanation indeed proves a contradiction + if ( explainAndCheckContradiction( curBasicVar, curUpper, costRow ) ) + { + infVar = curBasicVar; + break; + } + } + + delete costRow; + return infVar; +} + +bool Engine::explainAndCheckContradiction( unsigned var, bool isUpper, const TableauRow *row ) +{ + ASSERT( _produceUNSATProofs ); + + Vector backup( 0 ); + _boundManager.getExplanation( var, isUpper, backup ); + + _boundManager.updateBoundExplanation( *row, isUpper, var ); + + // Ensure the proof is correct + if ( certifyInfeasibility( var ) ) + return true; + + // If not, restores previous certificate if the proof is wrong + _boundManager.setExplanation( backup, var, isUpper ); + + return false; +} + +bool Engine::explainAndCheckContradiction( unsigned var, bool isUpper, const SparseUnsortedList *row ) +{ + ASSERT( _produceUNSATProofs ); + + Vector backup( 0 ); + _boundManager.getExplanation( var, isUpper, backup ); + + _boundManager.updateBoundExplanationSparse( *row, isUpper, var ); + + // Ensure the proof is correct + if ( certifyInfeasibility( var ) ) + return true; + + // If not, restores previous certificate if the proof is wrong + _boundManager.setExplanation( backup, var, isUpper ); + + return false; +} + + UnsatCertificateNode* Engine::getUNSATCertificateCurrentPointer() const +{ + return _UNSATCertificateCurrentPointer->get(); +} + +void Engine::setUNSATCertificateCurrentPointer( UnsatCertificateNode* node ) +{ + _UNSATCertificateCurrentPointer->set( node ); +} + +const UnsatCertificateNode* Engine::getUNSATCertificateRoot() const +{ + return _UNSATCertificate; +} + +bool Engine::certifyUNSATCertificate() +{ + ASSERT( _produceUNSATProofs && _UNSATCertificate && !_smtCore.getStackDepth() ); + + for ( auto &constraint : _plConstraints ) + { + if ( constraint->getType() != RELU ) + { + printf("Certification Error! Marabou doesn't support certification for none ReLU constraints.\n"); + return false; + } + } + + struct timespec certificationStart = TimeUtils::sampleMicro(); + _precisionRestorer.restoreInitialEngineState( *this ); + + Vector groundUpperBounds( _tableau->getN(), 0 ); + Vector groundLowerBounds( _tableau->getN(), 0 ); + + for ( unsigned i = 0; i < _tableau->getN(); ++i ) + { + groundUpperBounds[i] = _groundBoundManager.getUpperBound( i ); + groundLowerBounds[i] = _groundBoundManager.getLowerBound( i ); + } + + Checker unsatCertificateChecker( _UNSATCertificate, _tableau->getM(), _tableau->getSparseA(), + groundUpperBounds, groundLowerBounds, _plConstraints ); + bool certificationSucceeded = unsatCertificateChecker.check(); + + _statistics.setLongAttribute( Statistics::TOTAL_CERTIFICATION_TIME, TimeUtils::timePassed( certificationStart, TimeUtils::sampleMicro() ) ); + printf( "Certification time: " ); + _statistics.printLongAttributeAsTime( _statistics.getLongAttribute( Statistics::TOTAL_CERTIFICATION_TIME ) ); + + if ( certificationSucceeded ) + { + printf("Certified\n"); + if ( _statistics.getUnsignedAttribute( Statistics::NUM_DELEGATED_LEAVES ) ) + printf("Some leaves were delegated and need to be certified separately by an SMT solver\n"); + } + else + printf("Error certifying UNSAT certificate\n"); + + DEBUG({ + ASSERT( certificationSucceeded ); + if ( _statistics.getUnsignedAttribute( Statistics::NUM_POPS ) ) + { + double delegationRatio = _statistics.getUnsignedAttribute( Statistics::NUM_DELEGATED_LEAVES ) / _statistics.getUnsignedAttribute( Statistics::NUM_CERTIFIED_LEAVES ); + ASSERT( FloatUtils::lt( delegationRatio, 0.01 )); + } + }); + + return certificationSucceeded; +} + +void Engine::markLeafToDelegate() +{ + ASSERT( _produceUNSATProofs ); + + // Mark leaf with toDelegate Flag + UnsatCertificateNode *currentUnsatCertificateNode = _UNSATCertificateCurrentPointer->get(); + ASSERT( _UNSATCertificateCurrentPointer && ! currentUnsatCertificateNode->getContradiction() ); + currentUnsatCertificateNode->setDelegationStatus( DelegationStatus::DELEGATE_SAVE ); + currentUnsatCertificateNode->deletePLCExplanations(); + _statistics.incUnsignedAttribute( Statistics::NUM_DELEGATED_LEAVES ); + + if ( !currentUnsatCertificateNode->getChildren().empty() ) + currentUnsatCertificateNode->makeLeaf(); +} + +const Vector Engine::computeContradiction( unsigned infeasibleVar ) const +{ + ASSERT( _produceUNSATProofs ); + + unsigned m = _tableau->getM(); + Vector upperBoundExplanation( 0 ); + Vector lowerBoundExplanation( 0 ); + + if ( !_boundManager.isExplanationTrivial( infeasibleVar, UPPER ) ) + _boundManager.getExplanation( infeasibleVar, UPPER, upperBoundExplanation ); + + if( !_boundManager.isExplanationTrivial( infeasibleVar, LOWER ) ) + _boundManager.getExplanation( infeasibleVar, LOWER, lowerBoundExplanation ); + + if ( upperBoundExplanation.empty() && lowerBoundExplanation.empty() ) + return Vector( 0 ); + + Vector contradiction = upperBoundExplanation.empty() ? Vector( m, 0 ) : Vector( upperBoundExplanation ); + + if ( !lowerBoundExplanation.empty() ) + for ( unsigned i = 0; i < m; ++i ) + contradiction[i] -= lowerBoundExplanation[i]; + + return contradiction; +} + +void Engine::writeContradictionToCertificate( unsigned infeasibleVar ) const +{ + ASSERT( _produceUNSATProofs ); + + Vector leafContradictionVec = computeContradiction( infeasibleVar ); + + Contradiction *leafContradiction = leafContradictionVec.empty() ? new Contradiction( infeasibleVar ) : new Contradiction( leafContradictionVec ); + ( **_UNSATCertificateCurrentPointer ).setContradiction( leafContradiction ); +} + +const BoundExplainer *Engine::getBoundExplainer() const +{ + return _boundManager.getBoundExplainer(); +} + +void Engine::setBoundExplainerContent( BoundExplainer *boundExplainer ) +{ + _boundManager.copyBoundExplainerContent( boundExplainer ); +} + +void Engine::propagateBoundManagerTightenings() +{ + _boundManager.propagateTightenings(); +} diff --git a/src/engine/Engine.h b/src/engine/Engine.h index 5025484973..bca85262c6 100644 --- a/src/engine/Engine.h +++ b/src/engine/Engine.h @@ -22,6 +22,7 @@ #include "AutoTableau.h" #include "BlandsRule.h" #include "BoundManager.h" +#include "Checker.h" #include "DantzigsRule.h" #include "DegradationChecker.h" #include "DivideStrategy.h" @@ -42,6 +43,8 @@ #include "Statistics.h" #include "SumOfInfeasibilitiesManager.h" #include "SymbolicBoundTighteningType.h" +#include "SmtLibWriter.h" +#include "UnsatCertificateNode.h" #include #include @@ -229,6 +232,56 @@ class Engine : public IEngine, public SignalHandler::Signalable void setRandomSeed( unsigned seed ); + /* + Returns true iff the engine is in proof production mode + */ + bool shouldProduceProofs() const; + + /* + Update the ground bounds + */ + void updateGroundUpperBound( unsigned var, double value ); + void updateGroundLowerBound( unsigned var, double value ); + + /* + Return all ground bounds as a vector + */ + double getGroundBound( unsigned var, bool isUpper ) const; + + /* + Get the current pointer of the UNSAT certificate + */ + UnsatCertificateNode *getUNSATCertificateCurrentPointer() const; + + /* + Set the current pointer of the UNSAT certificate + */ + void setUNSATCertificateCurrentPointer( UnsatCertificateNode *node ); + + /* + Get the pointer to the root of the UNSAT certificate + */ + const UnsatCertificateNode *getUNSATCertificateRoot() const; + + /* + Certify the UNSAT certificate + */ + bool certifyUNSATCertificate(); + + /* + Get the boundExplainer + */ + const BoundExplainer *getBoundExplainer() const; + + /* + Set the boundExplainer + */ + void setBoundExplainerContent( BoundExplainer *boundExplainer ); + + /* + Propagate bound tightenings stored in the BoundManager + */ + void propagateBoundManagerTightenings(); private: enum BasisRestorationRequired { @@ -740,6 +793,78 @@ class Engine : public IEngine, public SignalHandler::Signalable Check that the variable bounds in Gurobi is up-to-date. */ void checkGurobiBoundConsistency() const; + + /* + Proof Production data structes + */ + + bool _produceUNSATProofs; + BoundManager _groundBoundManager; + UnsatCertificateNode *_UNSATCertificate; + CVC4::context::CDO *_UNSATCertificateCurrentPointer; + + /* + Returns true iff there is a variable with bounds that can explain infeasibility of the tableau + */ + bool certifyInfeasibility( unsigned var ) const; + + /* + Returns the value of a variable bound, as explained by the BoundExplainer + */ + double explainBound( unsigned var, bool isUpper ) const; + + /* + Returns true iff both bounds are epsilon close to their explained bounds + */ + bool validateBounds( unsigned var, double epsilon, bool isUpper ) const; + + /* + Returns true iff all bounds are epsilon-close to their explained bounds + */ + bool validateAllBounds( double epsilon ) const; + + /* + Finds the variable causing failure and updates its bounds explanations + */ + void explainSimplexFailure(); + + /* + Sanity check for ground bounds, returns true iff all bounds are at least as tight as their ground bounds + */ + bool checkGroundBounds() const; + + /* + Updates bounds after deducing Simplex infeasibility, according to a tableau row + */ + unsigned explainFailureWithTableau(); + + /* + Updates bounds after deducing Simplex infeasibility, according to the cost function + */ + unsigned explainFailureWithCostFunction(); + + /* + Updates an explanation of a bound according to a row, and checks for an explained contradiction. + If a contradiction can be deduced, return true. Else, revert and return false + */ + bool explainAndCheckContradiction( unsigned var, bool isUpper, const TableauRow *row ); + bool explainAndCheckContradiction( unsigned var, bool isUpper, const SparseUnsortedList *row ); + + /* + Delegates leaves with certification error to SMTLIB format + */ + void markLeafToDelegate(); + + /* + Return the vector given by upper bound explanation - lower bound explanation + Assuming infeasibleVar is indeed infeasible, then the result is a contradiction vector + */ + const Vector computeContradiction( unsigned infeasibleVar ) const; + + /* + Writes the details of a contradiction to the UNSAT certificate node + */ + void writeContradictionToCertificate( unsigned infeasibleVar ) const; }; #endif // __Engine_h__ diff --git a/src/engine/IBoundManager.h b/src/engine/IBoundManager.h index bec7069712..1f3c246af4 100644 --- a/src/engine/IBoundManager.h +++ b/src/engine/IBoundManager.h @@ -36,13 +36,12 @@ enum BoundType : unsigned LOWER = 0, UPPER = 1, }; - class BoundExplainer; -class IRowBoundTightener; -class ITableau; class SparseUnsortedList; class TableauRow; class Tightening; +class ITableau; +class IRowBoundTightener; class IBoundManager { public: diff --git a/src/engine/ICostFunctionManager.h b/src/engine/ICostFunctionManager.h index 9c7d517ffa..b2ee113e32 100644 --- a/src/engine/ICostFunctionManager.h +++ b/src/engine/ICostFunctionManager.h @@ -17,6 +17,7 @@ #define __ICostFunctionManager_h__ #include "Map.h" +#include "SparseUnsortedList.h" class TableauRow; @@ -51,6 +52,8 @@ class ICostFunctionManager virtual bool costFunctionInvalid() const = 0; virtual bool costFunctionJustComputed() const = 0; virtual void invalidateCostFunction() = 0; + + virtual SparseUnsortedList* createRowOfCostFunction() const = 0; }; #endif // __ICostFunctionManager_h__ diff --git a/src/engine/IEngine.h b/src/engine/IEngine.h index 8a5c4c4c1c..c9c52ed8e3 100644 --- a/src/engine/IEngine.h +++ b/src/engine/IEngine.h @@ -16,11 +16,13 @@ #ifndef __IEngine_h__ #define __IEngine_h__ +#include "BoundExplainer.h" #include "DivideStrategy.h" #include "SnCDivideStrategy.h" #include "TableauStateStorageLevel.h" #include "List.h" #include "context/context.h" +#include "Vector.h" #ifdef _WIN32 #undef ERROR @@ -32,6 +34,7 @@ class PiecewiseLinearCaseSplit; class SmtState; class String; class PiecewiseLinearConstraint; +class UnsatCertificateNode; class IEngine { @@ -111,6 +114,16 @@ class IEngine */ virtual PiecewiseLinearConstraint *pickSplitPLConstraintSnC( SnCDivideStrategy strategy ) = 0; + /* + Return the value of a variable bound, as expressed by the bounds explainer and the initial bounds + */ + virtual double explainBound( unsigned var, bool isUpper ) const = 0; + + /* + * Update the ground bounds + */ + virtual void updateGroundUpperBound( unsigned var, double value ) = 0; + virtual void updateGroundLowerBound( unsigned var, double value ) = 0; virtual void applyAllBoundTightenings() = 0; @@ -121,6 +134,56 @@ class IEngine virtual CVC4::context::Context &getContext() = 0; virtual bool consistentBounds() const = 0; + + /* + Returns true iff the engine is in proof production mode + */ + virtual bool shouldProduceProofs() const = 0; + + /* + Get the ground bound of the variable + */ + virtual double getGroundBound( unsigned var, bool isUpper ) const = 0; + + /* + Get the current pointer in the UNSAT certificate node + */ + virtual UnsatCertificateNode *getUNSATCertificateCurrentPointer() const = 0; + + /* + Set the current pointer in the UNSAT certificate + */ + virtual void setUNSATCertificateCurrentPointer( UnsatCertificateNode *node ) = 0; + + /* + Get the root of the UNSAT certificate proof tree + */ + virtual const UnsatCertificateNode *getUNSATCertificateRoot() const = 0; + + /* + Certify the UNSAT certificate + */ + virtual bool certifyUNSATCertificate() = 0; + + /* + Finds the variable causing failure and updates its bounds explanations + */ + virtual void explainSimplexFailure() = 0; + + /* + Get the boundExplainer + */ + virtual const BoundExplainer *getBoundExplainer() const = 0; + + /* + Set the boundExplainer content + */ + virtual void setBoundExplainerContent( BoundExplainer *boundExplainer ) = 0; + + /* + Propagate bound tightenings stored in the BoundManager + */ + virtual void propagateBoundManagerTightenings() = 0; }; #endif // __IEngine_h__ diff --git a/src/engine/ITableau.h b/src/engine/ITableau.h index cd3ecc58c9..16c3d9d4bf 100644 --- a/src/engine/ITableau.h +++ b/src/engine/ITableau.h @@ -196,6 +196,9 @@ class ITableau _optimizing = optimizing; } + virtual void tightenUpperBoundNaively( unsigned variable, double value ) = 0; + virtual void tightenLowerBoundNaively( unsigned variable, double value ) = 0; + protected: bool _optimizing = false; }; diff --git a/src/engine/InputQuery.h b/src/engine/InputQuery.h index e2af8e2b09..0e11e0cae0 100644 --- a/src/engine/InputQuery.h +++ b/src/engine/InputQuery.h @@ -140,6 +140,9 @@ class InputQuery void setNetworkLevelReasoner( NLR::NetworkLevelReasoner *nlr ); NLR::NetworkLevelReasoner *getNetworkLevelReasoner() const; + // A map for storing the tableau aux variable assigned to each PLC + Map _lastAddendToAux; + private: unsigned _numberOfVariables; List _equations; diff --git a/src/engine/Marabou.cpp b/src/engine/Marabou.cpp index cfaa14e9d0..8b2aa297d7 100644 --- a/src/engine/Marabou.cpp +++ b/src/engine/Marabou.cpp @@ -199,6 +199,9 @@ void Marabou::solveQuery() if ( _engine.processInputQuery( _inputQuery ) ) _engine.solve( Options::get()->getInt( Options::TIMEOUT ) ); + if ( _engine.shouldProduceProofs() && _engine.getExitCode() == Engine::UNSAT ) + _engine.certifyUNSATCertificate(); + if ( _engine.getExitCode() == Engine::SAT ) _engine.extractSolution( _inputQuery ); } diff --git a/src/engine/PrecisionRestorer.cpp b/src/engine/PrecisionRestorer.cpp index 61a65a35a8..729cd069f5 100644 --- a/src/engine/PrecisionRestorer.cpp +++ b/src/engine/PrecisionRestorer.cpp @@ -20,6 +20,7 @@ #include "MarabouError.h" #include "SmtCore.h" #include "TableauStateStorageLevel.h" +#include "UnsatCertificateNode.h" void PrecisionRestorer::storeInitialEngineState( const IEngine &engine ) { @@ -27,6 +28,11 @@ void PrecisionRestorer::storeInitialEngineState( const IEngine &engine ) TableauStateStorageLevel::STORE_ENTIRE_TABLEAU_STATE ); } +void PrecisionRestorer::restoreInitialEngineState( const IEngine &engine ) +{ + engine.restoreState( _initialEngineState ); +} + void PrecisionRestorer::restorePrecision( IEngine &engine, ITableau &tableau, SmtCore &smtCore, @@ -43,6 +49,34 @@ void PrecisionRestorer::restorePrecision( IEngine &engine, engine.storeState( targetEngineState, TableauStateStorageLevel::STORE_NONE ); + BoundExplainer boundExplainerBackup( targetN, targetM, engine.getContext() ); + Vector groundUpperBoundsBackup; + Vector groundLowerBoundsBackup; + + Vector upperBoundsBackup; + Vector lowerBoundsBackup; + + if ( engine.shouldProduceProofs() ) + { + groundUpperBoundsBackup = Vector( targetN, 0 ); + groundLowerBoundsBackup = Vector( targetN, 0 ); + + upperBoundsBackup = Vector( targetN, 0 ); + lowerBoundsBackup = Vector( targetN, 0 ); + + boundExplainerBackup = *engine.getBoundExplainer(); + + for ( unsigned i = 0; i < targetN; ++i ) + { + lowerBoundsBackup[i] = tableau.getLowerBound( i ); + upperBoundsBackup[i] = tableau.getUpperBound( i ); + + groundUpperBoundsBackup[i] = engine.getGroundBound( i, UPPER ); + groundLowerBoundsBackup[i] = engine.getGroundBound( i, LOWER ); + } + } + + // Store the case splits performed so far List targetSplits; smtCore.allSplitsSoFar( targetSplits ); @@ -105,6 +139,25 @@ void PrecisionRestorer::restorePrecision( IEngine &engine, } } + if ( engine.shouldProduceProofs() ) + { + engine.setBoundExplainerContent( &boundExplainerBackup ); + + for ( unsigned i = 0; i < targetN; ++i ) + { + engine.updateGroundUpperBound( i, groundUpperBoundsBackup[i] ); + engine.updateGroundLowerBound( i, groundLowerBoundsBackup[i] ); + } + + for ( unsigned i = 0; i < targetN; ++i ) + { + tableau.tightenUpperBoundNaively( i, upperBoundsBackup[i] ); + tableau.tightenLowerBoundNaively( i, lowerBoundsBackup[i] ); + } + + engine.propagateBoundManagerTightenings(); + } + // Restore constraint status for ( const auto &pair : targetEngineState._plConstraintToState ) pair.first->setActiveConstraint( pair.second->isActive() ); diff --git a/src/engine/PrecisionRestorer.h b/src/engine/PrecisionRestorer.h index e0e04bc065..bc4cc5c827 100644 --- a/src/engine/PrecisionRestorer.h +++ b/src/engine/PrecisionRestorer.h @@ -29,6 +29,7 @@ class PrecisionRestorer }; void storeInitialEngineState( const IEngine &engine ); + void restoreInitialEngineState( const IEngine &engine ); void restorePrecision( IEngine &engine, ITableau &tableau, diff --git a/src/engine/SmtCore.cpp b/src/engine/SmtCore.cpp index 0da2f5be06..22d1cb3025 100644 --- a/src/engine/SmtCore.cpp +++ b/src/engine/SmtCore.cpp @@ -25,6 +25,7 @@ #include "PseudoImpactTracker.h" #include "ReluConstraint.h" #include "SmtCore.h" +#include "UnsatCertificateNode.h" SmtCore::SmtCore( IEngine *engine ) : _statistics( NULL ) @@ -171,10 +172,31 @@ void SmtCore::performSplit() TableauStateStorageLevel::STORE_BOUNDS_ONLY ); _engine->preContextPushHook(); pushContext(); + + UnsatCertificateNode* certificateNode = NULL; + if ( _engine->shouldProduceProofs() && _engine->getUNSATCertificateRoot() ) + { + certificateNode = _engine->getUNSATCertificateCurrentPointer(); + // Create children for UNSATCertificate current node, and assign a split to each of them + ASSERT( certificateNode ); + for ( PiecewiseLinearCaseSplit& childSplit : splits ) + new UnsatCertificateNode( certificateNode, childSplit ); + } + SmtStackEntry *stackEntry = new SmtStackEntry; // Perform the first split: add bounds and equations List::iterator split = splits.begin(); ASSERT( split->getEquations().size() == 0 ); + + if ( _engine->shouldProduceProofs() && _engine->getUNSATCertificateRoot() ) + { + //Set the current node of the UNSAT certificate to be the child corresponding to the first split + UnsatCertificateNode *firstSplitChild = certificateNode->getChildBySplit( *split ); + ASSERT( firstSplitChild ); + _engine->setUNSATCertificateCurrentPointer( firstSplitChild ); + ASSERT( _engine->getUNSATCertificateCurrentPointer()->getSplit() == *split ); + } + _engine->applySplit( *split ); stackEntry->_activeSplit = *split; @@ -301,6 +323,17 @@ bool SmtCore::popSplit() // popped stackEntry->_impliedValidSplits.clear(); + // Set the current node of the UNSAT certificate to be the child corresponding to the chosen split + if ( _engine->shouldProduceProofs() && _engine->getUNSATCertificateCurrentPointer() ) + { + UnsatCertificateNode *certificateNode = _engine->getUNSATCertificateCurrentPointer(); + ASSERT( certificateNode ); + UnsatCertificateNode *splitChild = certificateNode->getChildBySplit( *split ); + ASSERT( splitChild ); + _engine->setUNSATCertificateCurrentPointer( splitChild ); + ASSERT( _engine->getUNSATCertificateCurrentPointer()->getSplit() == *split ); + } + SMT_LOG( "\tApplying new split..." ); ASSERT( split->getEquations().size() == 0 ); _engine->preContextPushHook(); @@ -312,6 +345,9 @@ bool SmtCore::popSplit() stackEntry->_alternativeSplits.erase( split ); inconsistent = !_engine->consistentBounds(); + + if ( _engine->shouldProduceProofs() && inconsistent ) + _engine->explainSimplexFailure(); } if ( _statistics ) diff --git a/src/engine/Tableau.cpp b/src/engine/Tableau.cpp index edbb8b9d5a..e9331e82d3 100644 --- a/src/engine/Tableau.cpp +++ b/src/engine/Tableau.cpp @@ -1621,7 +1621,8 @@ void Tableau::storeState( TableauState &state, TableauStateStorageLevel level ) { if ( level == TableauStateStorageLevel::STORE_BOUNDS_ONLY || _lpSolverType != LPSolverType::NATIVE ) - {} + { + } else if ( level == TableauStateStorageLevel::STORE_ENTIRE_TABLEAU_STATE ) { // Set the dimensions @@ -1687,7 +1688,8 @@ void Tableau::restoreState( const TableauState &state, { if ( level == TableauStateStorageLevel::STORE_BOUNDS_ONLY || _lpSolverType != LPSolverType::NATIVE ) - {} + { + } else if ( level == TableauStateStorageLevel::STORE_ENTIRE_TABLEAU_STATE ) { freeMemoryIfNeeded(); @@ -1721,7 +1723,7 @@ void Tableau::restoreState( const TableauState &state, // Restore the basis factorization _basisFactorization->restoreFactorization( state._basisFactorization ); - // Restore the merged varaibles + // Restore the merged variables _mergedVariables = state._mergedVariables; computeAssignment(); @@ -2613,3 +2615,29 @@ void Tableau::setBoundsPointers( const double *lower, const double *upper ) _lowerBounds = lower; _upperBounds = upper; } + +void Tableau::tightenUpperBoundNaively( unsigned variable, double value ) +{ + ASSERT( variable < _n ); + + if ( _statistics ) + _statistics->incLongAttribute( Statistics::NUM_TIGHTENED_BOUNDS ); + + _boundManager.setUpperBound( variable, value ); + + if ( _lpSolverType == LPSolverType::NATIVE ) + updateVariableToComplyWithUpperBoundUpdate( variable, value ); +} + +void Tableau::tightenLowerBoundNaively( unsigned variable, double value ) +{ + ASSERT( variable < _n ); + + if ( _statistics ) + _statistics->incLongAttribute( Statistics::NUM_TIGHTENED_BOUNDS ); + + _boundManager.setLowerBound( variable, value ); + + if ( _lpSolverType == LPSolverType::NATIVE ) + updateVariableToComplyWithLowerBoundUpdate( variable, value ); +} diff --git a/src/engine/Tableau.h b/src/engine/Tableau.h index eb6e55ec27..4f097f9125 100644 --- a/src/engine/Tableau.h +++ b/src/engine/Tableau.h @@ -470,6 +470,11 @@ class Tableau : public ITableau, public IBasisFactorization::BasisColumnOracle */ void postContextPopHook(); + /* + Tighten bounds without notifying watchers + */ + void tightenUpperBoundNaively( unsigned variable, double value ); + void tightenLowerBoundNaively( unsigned variable, double value ); private: /* Variable watchers diff --git a/src/engine/tests/MockCostFunctionManager.h b/src/engine/tests/MockCostFunctionManager.h index aecb266007..ab15cb8b6a 100644 --- a/src/engine/tests/MockCostFunctionManager.h +++ b/src/engine/tests/MockCostFunctionManager.h @@ -138,6 +138,11 @@ class MockCostFunctionManager : public ICostFunctionManager void invalidateCostFunction() { } + + SparseUnsortedList* createRowOfCostFunction() const + { + return NULL; + } }; #endif // __MockCostFunctionManager_h__ diff --git a/src/engine/tests/MockEngine.h b/src/engine/tests/MockEngine.h index 7b429ded5f..d992eab251 100644 --- a/src/engine/tests/MockEngine.h +++ b/src/engine/tests/MockEngine.h @@ -209,6 +209,65 @@ class MockEngine : public IEngine CVC4::context::Context &getContext() { return _dontCare; } bool consistentBounds() const { return true; } + + double explainBound( unsigned /* var */, bool /* isUpper */ ) const + { + return 0.0; + } + + void updateGroundUpperBound(unsigned /* var */, double /* value */ ) + { + } + + void updateGroundLowerBound(unsigned /*var*/, double /*value*/ ) + { + } + + double getGroundBound( unsigned /*var*/, bool /*isUpper*/ ) const + { + return 0; + } + + UnsatCertificateNode *getUNSATCertificateCurrentPointer() const + { + return NULL; + } + + void setUNSATCertificateCurrentPointer( UnsatCertificateNode */* node*/ ) + { + } + + const UnsatCertificateNode *getUNSATCertificateRoot() const + { + return NULL; + } + + bool certifyUNSATCertificate() + { + return true; + } + + void explainSimplexFailure() + { + } + + const BoundExplainer *getBoundExplainer() const + { + return NULL; + } + + void setBoundExplainerContent( BoundExplainer * /*boundExplainer */ ) + { + } + + void propagateBoundManagerTightenings() + { + } + + bool shouldProduceProofs() const + { + return true; + } }; #endif // __MockEngine_h__ diff --git a/src/engine/tests/MockTableau.h b/src/engine/tests/MockTableau.h index 32e017b68d..4d696c79c8 100644 --- a/src/engine/tests/MockTableau.h +++ b/src/engine/tests/MockTableau.h @@ -666,6 +666,14 @@ class MockTableau : public ITableau void updateVariableToComplyWithUpperBoundUpdate( unsigned /*variable*/, double /*value*/ ) { } + + void tightenUpperBoundNaively( unsigned /*variable*/, double /*value*/ ) + { + } + + void tightenLowerBoundNaively( unsigned /*variable*/, double /*value*/ ) + { + } }; #endif // __MockTableau_h__ diff --git a/src/engine/tests/Test_BoundManager.h b/src/engine/tests/Test_BoundManager.h index 24590d9072..190cf1f8fd 100644 --- a/src/engine/tests/Test_BoundManager.h +++ b/src/engine/tests/Test_BoundManager.h @@ -287,7 +287,7 @@ class BoundManagerTestSuite : public CxxTest::TestSuite TS_ASSERT( !boundManager.isExplanationTrivial( 0, true ) ); boundManager.setExplanation( expl, 1, false ); - boundManager.explainBound( 1, false, explained ); + boundManager.getExplanation( 1, false, explained ); TS_ASSERT( explained == expl ); // Test explanation resetting diff --git a/src/engine/tests/Test_Tableau.h b/src/engine/tests/Test_Tableau.h index 14f5efd262..6f535e1514 100644 --- a/src/engine/tests/Test_Tableau.h +++ b/src/engine/tests/Test_Tableau.h @@ -1328,6 +1328,16 @@ class TableauTestSuite : public CxxTest::TestSuite TS_ASSERT_THROWS_NOTHING( tableau->tightenLowerBound( 5, 111 ) ); TS_ASSERT_EQUALS( tableau->getValue( 5 ), 110.0 ); + TS_ASSERT_THROWS_NOTHING( tableau->tightenUpperBoundNaively( 1, 6 ) ); + TS_ASSERT_EQUALS( tableau->getLowerBound( 1 ), 4 ); + TS_ASSERT_EQUALS( tableau->getUpperBound( 1 ), 6 ); + TS_ASSERT_EQUALS( tableau->getValue( 1 ), 4.0 ); + + TS_ASSERT_THROWS_NOTHING( tableau->tightenLowerBoundNaively( 1, 5 ) ); + TS_ASSERT_EQUALS( tableau->getLowerBound( 1 ), 5 ); + TS_ASSERT_EQUALS( tableau->getUpperBound( 1 ), 6 ); + TS_ASSERT_EQUALS( tableau->getValue( 1 ), 5.0 ); + TS_ASSERT_THROWS_NOTHING( delete tableau ); } diff --git a/src/proofs/BoundExplainer.h b/src/proofs/BoundExplainer.h index 34858721f1..fc1a83fcdc 100644 --- a/src/proofs/BoundExplainer.h +++ b/src/proofs/BoundExplainer.h @@ -54,7 +54,7 @@ class BoundExplainer /* Given a row, updates the values of the bound explanations of a var according to the row */ - void updateBoundExplanation( const TableauRow &row, bool isUpper, unsigned varIndex ); + void updateBoundExplanation( const TableauRow &row, bool isUpper, unsigned var ); /* Given a row as SparseUnsortedList, updates the values of the bound explanations of a var according to the row diff --git a/src/proofs/Checker.cpp b/src/proofs/Checker.cpp index 42e1f8b41b..557ba5b2cb 100644 --- a/src/proofs/Checker.cpp +++ b/src/proofs/Checker.cpp @@ -134,7 +134,7 @@ bool Checker::checkContradiction( const UnsatCertificateNode *node ) const if ( contradiction == NULL ) { - double infeasibleVar = node->getContradiction()->getVar(); + unsigned infeasibleVar = node->getContradiction()->getVar(); return FloatUtils::isNegative( _groundUpperBounds[infeasibleVar] - _groundLowerBounds[infeasibleVar] ); } diff --git a/src/proofs/tests/Test_UnsatCertificateNode.h b/src/proofs/tests/Test_UnsatCertificateNode.h index d97b5579cc..d2e5eedc17 100644 --- a/src/proofs/tests/Test_UnsatCertificateNode.h +++ b/src/proofs/tests/Test_UnsatCertificateNode.h @@ -24,7 +24,7 @@ class UnsatCertificateNodeTestSuite : public CxxTest::TestSuite /* Tests a simple tree construction */ - void test_tree_telations() + void test_tree_relations() { Vector groundUpperBounds( 6, 1 ); Vector groundLowerBounds( 6, 0 ); From 926f5032f99f0502083fada6bcb9358c74b36c10 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 13 Dec 2022 14:26:43 +0200 Subject: [PATCH 092/165] Minor --- src/engine/CostFunctionManager.cpp | 2 +- src/engine/CostFunctionManager.h | 2 +- src/engine/Engine.cpp | 2 +- src/engine/ICostFunctionManager.h | 2 +- src/engine/PrecisionRestorer.cpp | 2 +- src/engine/PrecisionRestorer.h | 2 +- src/engine/tests/MockCostFunctionManager.h | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/engine/CostFunctionManager.cpp b/src/engine/CostFunctionManager.cpp index 0c9d4470cb..2cb7fda9cb 100644 --- a/src/engine/CostFunctionManager.cpp +++ b/src/engine/CostFunctionManager.cpp @@ -439,7 +439,7 @@ double CostFunctionManager::getBasicCost( unsigned basicIndex ) const return _basicCosts[basicIndex]; } -SparseUnsortedList* CostFunctionManager::createRowOfCostFunction() const +const SparseUnsortedList* CostFunctionManager::createRowOfCostFunction() const { SparseUnsortedList* costRow = new SparseUnsortedList( 0 ); for ( unsigned i = 0; i < _m; ++i ) diff --git a/src/engine/CostFunctionManager.h b/src/engine/CostFunctionManager.h index 91659db587..56359e19d7 100644 --- a/src/engine/CostFunctionManager.h +++ b/src/engine/CostFunctionManager.h @@ -96,7 +96,7 @@ class CostFunctionManager : public ICostFunctionManager /* Returns the cost function as a SparseUnsortedList object, so it can be viewed as a Tableau row. */ - SparseUnsortedList* createRowOfCostFunction() const; + const SparseUnsortedList* createRowOfCostFunction() const; private: /* The tableau. diff --git a/src/engine/Engine.cpp b/src/engine/Engine.cpp index ec92e2b71d..f176f54a64 100644 --- a/src/engine/Engine.cpp +++ b/src/engine/Engine.cpp @@ -3380,7 +3380,7 @@ unsigned Engine::explainFailureWithCostFunction() unsigned infVar = IBoundManager::NO_VARIABLE_FOUND; double curCost; bool curUpper; - SparseUnsortedList *costRow = _costFunctionManager->createRowOfCostFunction(); + const SparseUnsortedList *costRow = _costFunctionManager->createRowOfCostFunction(); for ( unsigned i = 0; i < _tableau->getM(); ++i ) { diff --git a/src/engine/ICostFunctionManager.h b/src/engine/ICostFunctionManager.h index b2ee113e32..5df9eaecb8 100644 --- a/src/engine/ICostFunctionManager.h +++ b/src/engine/ICostFunctionManager.h @@ -53,7 +53,7 @@ class ICostFunctionManager virtual bool costFunctionJustComputed() const = 0; virtual void invalidateCostFunction() = 0; - virtual SparseUnsortedList* createRowOfCostFunction() const = 0; + virtual const SparseUnsortedList* createRowOfCostFunction() const = 0; }; #endif // __ICostFunctionManager_h__ diff --git a/src/engine/PrecisionRestorer.cpp b/src/engine/PrecisionRestorer.cpp index 729cd069f5..6f06f741eb 100644 --- a/src/engine/PrecisionRestorer.cpp +++ b/src/engine/PrecisionRestorer.cpp @@ -28,7 +28,7 @@ void PrecisionRestorer::storeInitialEngineState( const IEngine &engine ) TableauStateStorageLevel::STORE_ENTIRE_TABLEAU_STATE ); } -void PrecisionRestorer::restoreInitialEngineState( const IEngine &engine ) +void PrecisionRestorer::restoreInitialEngineState( IEngine &engine ) { engine.restoreState( _initialEngineState ); } diff --git a/src/engine/PrecisionRestorer.h b/src/engine/PrecisionRestorer.h index bc4cc5c827..ff75354636 100644 --- a/src/engine/PrecisionRestorer.h +++ b/src/engine/PrecisionRestorer.h @@ -29,7 +29,7 @@ class PrecisionRestorer }; void storeInitialEngineState( const IEngine &engine ); - void restoreInitialEngineState( const IEngine &engine ); + void restoreInitialEngineState( IEngine &engine ); void restorePrecision( IEngine &engine, ITableau &tableau, diff --git a/src/engine/tests/MockCostFunctionManager.h b/src/engine/tests/MockCostFunctionManager.h index ab15cb8b6a..b491ed0031 100644 --- a/src/engine/tests/MockCostFunctionManager.h +++ b/src/engine/tests/MockCostFunctionManager.h @@ -139,7 +139,7 @@ class MockCostFunctionManager : public ICostFunctionManager { } - SparseUnsortedList* createRowOfCostFunction() const + const SparseUnsortedList* createRowOfCostFunction() const { return NULL; } From 19d42904f818f258386ea34b5283616413550351 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Wed, 14 Dec 2022 14:15:24 +0200 Subject: [PATCH 093/165] Minor --- src/engine/SmtCore.cpp | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/engine/SmtCore.cpp b/src/engine/SmtCore.cpp index 22d1cb3025..40c28313b1 100644 --- a/src/engine/SmtCore.cpp +++ b/src/engine/SmtCore.cpp @@ -175,27 +175,27 @@ void SmtCore::performSplit() UnsatCertificateNode* certificateNode = NULL; if ( _engine->shouldProduceProofs() && _engine->getUNSATCertificateRoot() ) - { - certificateNode = _engine->getUNSATCertificateCurrentPointer(); - // Create children for UNSATCertificate current node, and assign a split to each of them - ASSERT( certificateNode ); - for ( PiecewiseLinearCaseSplit& childSplit : splits ) - new UnsatCertificateNode( certificateNode, childSplit ); - } + { + certificateNode = _engine->getUNSATCertificateCurrentPointer(); + // Create children for UNSATCertificate current node, and assign a split to each of them + ASSERT( certificateNode ); + for ( PiecewiseLinearCaseSplit& childSplit : splits ) + new UnsatCertificateNode( certificateNode, childSplit ); + } SmtStackEntry *stackEntry = new SmtStackEntry; // Perform the first split: add bounds and equations List::iterator split = splits.begin(); ASSERT( split->getEquations().size() == 0 ); - if ( _engine->shouldProduceProofs() && _engine->getUNSATCertificateRoot() ) - { + if ( _engine->shouldProduceProofs() && _engine->getUNSATCertificateRoot() ) + { //Set the current node of the UNSAT certificate to be the child corresponding to the first split - UnsatCertificateNode *firstSplitChild = certificateNode->getChildBySplit( *split ); - ASSERT( firstSplitChild ); - _engine->setUNSATCertificateCurrentPointer( firstSplitChild ); - ASSERT( _engine->getUNSATCertificateCurrentPointer()->getSplit() == *split ); - } + UnsatCertificateNode *firstSplitChild = certificateNode->getChildBySplit( *split ); + ASSERT( firstSplitChild ); + _engine->setUNSATCertificateCurrentPointer( firstSplitChild ); + ASSERT( _engine->getUNSATCertificateCurrentPointer()->getSplit() == *split ); + } _engine->applySplit( *split ); stackEntry->_activeSplit = *split; From 4024225fa52ddf79cfee80475c5d58fc38f61897 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Wed, 14 Dec 2022 16:29:20 +0200 Subject: [PATCH 094/165] Minor --- src/engine/Engine.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/engine/Engine.cpp b/src/engine/Engine.cpp index f176f54a64..eae6c737b8 100644 --- a/src/engine/Engine.cpp +++ b/src/engine/Engine.cpp @@ -1349,16 +1349,22 @@ bool Engine::processInputQuery( InputQuery &inputQuery, bool preprocess ) if ( _produceUNSATProofs ) { + bool containsNonReLUs = false; for ( auto &plConstraint : _preprocessedQuery->getPiecewiseLinearConstraints() ) { if ( plConstraint->getType() != RELU ) { - ENGINE_LOG( "Turning off proof production since activations not yet supported\n" ); - printf( "Turning off proof production since activations not yet supported\n" ); + containsNonReLUs = true; _produceUNSATProofs = false; Options::get()->setBool( Options::PRODUCE_PROOFS, false ); } } + + if ( containsNonReLUs ) + { + ENGINE_LOG( "Turning off proof production since activations are not yet supported\n" ); + printf( "Turning off proof production since activations not are yet supported\n" ); + } } if ( _lpSolverType == LPSolverType::NATIVE ) From bd4de46f05db9cfe9966fbc0060be0fa2447cb1a Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Fri, 16 Dec 2022 11:34:28 +0200 Subject: [PATCH 095/165] Answers to comments --- src/engine/Engine.cpp | 45 +++++++++++++------------- src/engine/ICostFunctionManager.h | 2 +- src/engine/IEngine.h | 8 ++--- src/engine/PrecisionRestorer.cpp | 1 - src/engine/SmtCore.cpp | 10 +++--- src/engine/tests/MockEngine.h | 52 +++++++++++++++---------------- 6 files changed, 60 insertions(+), 58 deletions(-) diff --git a/src/engine/Engine.cpp b/src/engine/Engine.cpp index eae6c737b8..d3f9137089 100644 --- a/src/engine/Engine.cpp +++ b/src/engine/Engine.cpp @@ -88,7 +88,10 @@ Engine::Engine() GlobalConfiguration::STATISTICS_PRINTING_FREQUENCY : GlobalConfiguration::STATISTICS_PRINTING_FREQUENCY_GUROBI; - _produceUNSATProofs ? _UNSATCertificateCurrentPointer = new ( true ) CVC4::context::CDO( &_context, NULL ) : NULL; + if ( _produceUNSATProofs ) + _UNSATCertificateCurrentPointer = new ( true ) CVC4::context::CDO( &_context, NULL ); + else + _UNSATCertificateCurrentPointer = NULL; } Engine::~Engine() @@ -100,10 +103,10 @@ Engine::~Engine() } if ( _UNSATCertificate ) - { - delete _UNSATCertificate; - _UNSATCertificate = NULL; - } + { + delete _UNSATCertificate; + _UNSATCertificate = NULL; + } if ( _produceUNSATProofs && _UNSATCertificateCurrentPointer ) _UNSATCertificateCurrentPointer->deleteSelf(); @@ -310,10 +313,10 @@ bool Engine::solve( unsigned timeoutInSeconds ) // Allows checking proofs produced for UNSAT leaves of satisfiable query search tree if ( _produceUNSATProofs ) - { - ASSERT( _UNSATCertificateCurrentPointer ); + { + ASSERT( _UNSATCertificateCurrentPointer ); ( **_UNSATCertificateCurrentPointer ).setSATSolutionFlag(); - } + } _exitCode = Engine::SAT; return true; } @@ -1404,8 +1407,8 @@ bool Engine::processInputQuery( InputQuery &inputQuery, bool preprocess ) for ( unsigned i = 0; i < n; ++i ) { - _groundBoundManager.setUpperBound( i, _preprocessedQuery->getUpperBound( i ) ); - _groundBoundManager.setLowerBound( i, _preprocessedQuery->getLowerBound( i ) ); + _groundBoundManager.setUpperBound( i, _preprocessedQuery->getUpperBound( i ) ); + _groundBoundManager.setLowerBound( i, _preprocessedQuery->getLowerBound( i ) ); } } } @@ -1982,7 +1985,7 @@ void Engine::applySplit( const PiecewiseLinearCaseSplit &split ) if ( _produceUNSATProofs && _UNSATCertificateCurrentPointer ) ( **_UNSATCertificateCurrentPointer ).setVisited(); - DEBUG( _tableau->verifyInvariants() ); + DEBUG( _tableau->verifyInvariants() ); ENGINE_LOG( "Done with split\n" ); } @@ -3266,7 +3269,7 @@ void Engine::explainSimplexFailure() bool Engine::certifyInfeasibility( unsigned var ) const { - ASSERT( _produceUNSATProofs ); + ASSERT( _produceUNSATProofs ); Vector contradiction = computeContradiction( var ); @@ -3305,7 +3308,7 @@ bool Engine::validateBounds( unsigned var, double epsilon, bool isUpper ) const real = _boundManager.getUpperBound( var ); if ( explained - real > epsilon ) { - printf( "Var %d. Computed Upper %.5lf, real %.5lf. Difference is %.10lf\n", var, explained, real, abs( explained - real ) ); + ENGINE_LOG( "Var %d. Computed Upper %.5lf, real %.5lf. Difference is %.10lf\n", var, explained, real, abs( explained - real ) ); return false; } } @@ -3314,7 +3317,7 @@ bool Engine::validateBounds( unsigned var, double epsilon, bool isUpper ) const real = _boundManager.getLowerBound( var ); if ( explained - real < -epsilon ) { - printf( "Var %d. Computed Lower %.5lf, real %.5lf. Difference is %.10lf\n", var, explained, real, abs( explained - real ) ); + ENGINE_LOG( "Var %d. Computed Lower %.5lf, real %.5lf. Difference is %.10lf\n", var, explained, real, abs( explained - real ) ); return false; } } @@ -3456,17 +3459,17 @@ bool Engine::explainAndCheckContradiction( unsigned var, bool isUpper, const Spa return false; } - UnsatCertificateNode* Engine::getUNSATCertificateCurrentPointer() const +UnsatCertificateNode *Engine::getUNSATCertificateCurrentPointer() const { return _UNSATCertificateCurrentPointer->get(); } -void Engine::setUNSATCertificateCurrentPointer( UnsatCertificateNode* node ) +void Engine::setUNSATCertificateCurrentPointer( UnsatCertificateNode *node ) { _UNSATCertificateCurrentPointer->set( node ); } -const UnsatCertificateNode* Engine::getUNSATCertificateRoot() const +const UnsatCertificateNode *Engine::getUNSATCertificateRoot() const { return _UNSATCertificate; } @@ -3479,7 +3482,7 @@ bool Engine::certifyUNSATCertificate() { if ( constraint->getType() != RELU ) { - printf("Certification Error! Marabou doesn't support certification for none ReLU constraints.\n"); + printf( "Certification Error! Marabou doesn't support certification for none ReLU constraints.\n" ); return false; } } @@ -3508,10 +3511,10 @@ bool Engine::certifyUNSATCertificate() { printf("Certified\n"); if ( _statistics.getUnsignedAttribute( Statistics::NUM_DELEGATED_LEAVES ) ) - printf("Some leaves were delegated and need to be certified separately by an SMT solver\n"); + printf( "Some leaves were delegated and need to be certified separately by an SMT solver\n" ); } else - printf("Error certifying UNSAT certificate\n"); + printf( "Error certifying UNSAT certificate\n" ); DEBUG({ ASSERT( certificationSucceeded ); @@ -3527,7 +3530,7 @@ bool Engine::certifyUNSATCertificate() void Engine::markLeafToDelegate() { - ASSERT( _produceUNSATProofs ); + ASSERT( _produceUNSATProofs ); // Mark leaf with toDelegate Flag UnsatCertificateNode *currentUnsatCertificateNode = _UNSATCertificateCurrentPointer->get(); diff --git a/src/engine/ICostFunctionManager.h b/src/engine/ICostFunctionManager.h index 5df9eaecb8..f92bed624c 100644 --- a/src/engine/ICostFunctionManager.h +++ b/src/engine/ICostFunctionManager.h @@ -53,7 +53,7 @@ class ICostFunctionManager virtual bool costFunctionJustComputed() const = 0; virtual void invalidateCostFunction() = 0; - virtual const SparseUnsortedList* createRowOfCostFunction() const = 0; + virtual const SparseUnsortedList *createRowOfCostFunction() const = 0; }; #endif // __ICostFunctionManager_h__ diff --git a/src/engine/IEngine.h b/src/engine/IEngine.h index c9c52ed8e3..19a8f0f728 100644 --- a/src/engine/IEngine.h +++ b/src/engine/IEngine.h @@ -114,10 +114,10 @@ class IEngine */ virtual PiecewiseLinearConstraint *pickSplitPLConstraintSnC( SnCDivideStrategy strategy ) = 0; - /* - Return the value of a variable bound, as expressed by the bounds explainer and the initial bounds - */ - virtual double explainBound( unsigned var, bool isUpper ) const = 0; + /* + Return the value of a variable bound, as expressed by the bounds explainer and the initial bounds + */ + virtual double explainBound( unsigned var, bool isUpper ) const = 0; /* * Update the ground bounds diff --git a/src/engine/PrecisionRestorer.cpp b/src/engine/PrecisionRestorer.cpp index 6f06f741eb..88e424bb2a 100644 --- a/src/engine/PrecisionRestorer.cpp +++ b/src/engine/PrecisionRestorer.cpp @@ -76,7 +76,6 @@ void PrecisionRestorer::restorePrecision( IEngine &engine, } } - // Store the case splits performed so far List targetSplits; smtCore.allSplitsSoFar( targetSplits ); diff --git a/src/engine/SmtCore.cpp b/src/engine/SmtCore.cpp index 40c28313b1..d8601f9e99 100644 --- a/src/engine/SmtCore.cpp +++ b/src/engine/SmtCore.cpp @@ -176,11 +176,11 @@ void SmtCore::performSplit() UnsatCertificateNode* certificateNode = NULL; if ( _engine->shouldProduceProofs() && _engine->getUNSATCertificateRoot() ) { - certificateNode = _engine->getUNSATCertificateCurrentPointer(); - // Create children for UNSATCertificate current node, and assign a split to each of them - ASSERT( certificateNode ); - for ( PiecewiseLinearCaseSplit& childSplit : splits ) - new UnsatCertificateNode( certificateNode, childSplit ); + certificateNode = _engine->getUNSATCertificateCurrentPointer(); + // Create children for UNSATCertificate current node, and assign a split to each of them + ASSERT( certificateNode ); + for ( PiecewiseLinearCaseSplit& childSplit : splits ) + new UnsatCertificateNode( certificateNode, childSplit ); } SmtStackEntry *stackEntry = new SmtStackEntry; diff --git a/src/engine/tests/MockEngine.h b/src/engine/tests/MockEngine.h index d992eab251..7fc214f084 100644 --- a/src/engine/tests/MockEngine.h +++ b/src/engine/tests/MockEngine.h @@ -210,42 +210,42 @@ class MockEngine : public IEngine bool consistentBounds() const { return true; } - double explainBound( unsigned /* var */, bool /* isUpper */ ) const - { - return 0.0; - } + double explainBound( unsigned /* var */, bool /* isUpper */ ) const + { + return 0.0; + } - void updateGroundUpperBound(unsigned /* var */, double /* value */ ) - { - } + void updateGroundUpperBound(unsigned /* var */, double /* value */ ) + { + } - void updateGroundLowerBound(unsigned /*var*/, double /*value*/ ) - { - } + void updateGroundLowerBound(unsigned /*var*/, double /*value*/ ) + { + } double getGroundBound( unsigned /*var*/, bool /*isUpper*/ ) const { - return 0; - } + return 0; + } UnsatCertificateNode *getUNSATCertificateCurrentPointer() const - { - return NULL; - } + { + return NULL; + } - void setUNSATCertificateCurrentPointer( UnsatCertificateNode */* node*/ ) - { - } + void setUNSATCertificateCurrentPointer( UnsatCertificateNode */* node*/ ) + { + } const UnsatCertificateNode *getUNSATCertificateRoot() const - { - return NULL; - } + { + return NULL; + } - bool certifyUNSATCertificate() - { - return true; - } + bool certifyUNSATCertificate() + { + return true; + } void explainSimplexFailure() { @@ -253,7 +253,7 @@ class MockEngine : public IEngine const BoundExplainer *getBoundExplainer() const { - return NULL; + return NULL; } void setBoundExplainerContent( BoundExplainer * /*boundExplainer */ ) From 1c0851d6bbc95b8ee5c4a42b1348544ed85b3520 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Fri, 16 Dec 2022 13:04:48 +0200 Subject: [PATCH 096/165] Minor --- src/engine/Engine.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/engine/Engine.cpp b/src/engine/Engine.cpp index d3f9137089..5a8dfe78fb 100644 --- a/src/engine/Engine.cpp +++ b/src/engine/Engine.cpp @@ -88,10 +88,7 @@ Engine::Engine() GlobalConfiguration::STATISTICS_PRINTING_FREQUENCY : GlobalConfiguration::STATISTICS_PRINTING_FREQUENCY_GUROBI; - if ( _produceUNSATProofs ) - _UNSATCertificateCurrentPointer = new ( true ) CVC4::context::CDO( &_context, NULL ); - else - _UNSATCertificateCurrentPointer = NULL; + _UNSATCertificateCurrentPointer = _produceUNSATProofs ? new ( true ) CVC4::context::CDO( &_context, NULL ) : NULL; } Engine::~Engine() From 08673fd07146461956f0d9269e01f5d1a094044b Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Wed, 1 Feb 2023 13:03:28 +0200 Subject: [PATCH 097/165] Fix bug in SmtLibWriter --- src/proofs/SmtLibWriter.cpp | 5 ++++- src/proofs/SmtLibWriter.h | 4 +++- src/proofs/tests/Test_SmtLibWriter.h | 10 +++++----- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/proofs/SmtLibWriter.cpp b/src/proofs/SmtLibWriter.cpp index 845f1d65dc..4003b6a36a 100644 --- a/src/proofs/SmtLibWriter.cpp +++ b/src/proofs/SmtLibWriter.cpp @@ -12,6 +12,7 @@ ** [[ Add lengthier description here ]] **/ +#include #include "SmtLibWriter.h" void SmtLibWriter::addHeader( unsigned numberOfVariables, List &instance ) @@ -91,5 +92,7 @@ void SmtLibWriter::writeInstanceToFile( IFile &file, const List &instanc String SmtLibWriter::signedValue( double val ) { - return val > 0 ? std::to_string( val ) : "( - " + std::to_string( abs( val ) ) + " )"; + std::stringstream s; + s << std::fixed << std::setprecision( SmtLibWriter::_accuracy ) << abs( val ); + return val > 0 ? s.str() : "( - " + s.str() + " )"; } \ No newline at end of file diff --git a/src/proofs/SmtLibWriter.h b/src/proofs/SmtLibWriter.h index 9b15b20a24..8a477b5ea8 100644 --- a/src/proofs/SmtLibWriter.h +++ b/src/proofs/SmtLibWriter.h @@ -63,11 +63,13 @@ class SmtLibWriter */ static void writeInstanceToFile( IFile &file, const List &instance ); -private: /* Returns a string representing the value of a double */ static String signedValue( double val ); + +private: + static const unsigned _accuracy = 8; }; #endif //__SmtLibWriter_h__ \ No newline at end of file diff --git a/src/proofs/tests/Test_SmtLibWriter.h b/src/proofs/tests/Test_SmtLibWriter.h index 13bc2ce5d8..5262988294 100644 --- a/src/proofs/tests/Test_SmtLibWriter.h +++ b/src/proofs/tests/Test_SmtLibWriter.h @@ -60,23 +60,23 @@ class SmtLibWriterTestSuite : public CxxTest::TestSuite TS_ASSERT_EQUALS( line, expectedLine ); line = file->readLine( '\n' ); - expectedLine = "( assert ( <= x0 1.000000 ) )"; + expectedLine = String("( assert ( <= x0 ") + SmtLibWriter::signedValue( 1 ) + " ) )"; TS_ASSERT_EQUALS( line, expectedLine ); line = file->readLine( '\n' ); - expectedLine = "( assert ( <= x1 1.000000 ) )"; + expectedLine = String("( assert ( <= x1 ") + SmtLibWriter::signedValue( 1 ) + " ) )"; TS_ASSERT_EQUALS( line, expectedLine ); line = file->readLine( '\n' ); - expectedLine = "( assert ( >= x0 1.000000 ) )"; + expectedLine = String("( assert ( >= x0 ") + SmtLibWriter::signedValue( 1 ) + " ) )"; TS_ASSERT_EQUALS( line, expectedLine ); line = file->readLine( '\n' ); - expectedLine = "( assert ( >= x1 ( - 1.000000 ) ) )"; + expectedLine = String("( assert ( >= x1 ") + SmtLibWriter::signedValue( -1 ) + " ) )"; TS_ASSERT_EQUALS( line, expectedLine ); line = file->readLine( '\n' ); - expectedLine = "( assert ( = 0 ( + ( * 1.000000 x0 ) ( * 1.000000 x1 ) ) ) )"; + expectedLine = String("( assert ( = 0 ( + ( * ") + SmtLibWriter::signedValue( 1 ) + " x0 ) ( * " + SmtLibWriter::signedValue( 1 ) + " x1 ) ) ) )"; TS_ASSERT_EQUALS( line, expectedLine ); line = file->readLine( '\n' ); From dcc9fa1d3b4aa6b411d306260b4f613aad0b9be2 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Wed, 1 Feb 2023 13:39:12 +0200 Subject: [PATCH 098/165] Minor --- src/proofs/SmtLibWriter.cpp | 2 +- src/proofs/SmtLibWriter.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/proofs/SmtLibWriter.cpp b/src/proofs/SmtLibWriter.cpp index 4003b6a36a..b382cd174c 100644 --- a/src/proofs/SmtLibWriter.cpp +++ b/src/proofs/SmtLibWriter.cpp @@ -93,6 +93,6 @@ void SmtLibWriter::writeInstanceToFile( IFile &file, const List &instanc String SmtLibWriter::signedValue( double val ) { std::stringstream s; - s << std::fixed << std::setprecision( SmtLibWriter::_accuracy ) << abs( val ); + s << std::fixed << std::setprecision( SmtLibWriter::_precision ) << abs( val ); return val > 0 ? s.str() : "( - " + s.str() + " )"; } \ No newline at end of file diff --git a/src/proofs/SmtLibWriter.h b/src/proofs/SmtLibWriter.h index 8a477b5ea8..c81ac7dfdc 100644 --- a/src/proofs/SmtLibWriter.h +++ b/src/proofs/SmtLibWriter.h @@ -69,7 +69,7 @@ class SmtLibWriter static String signedValue( double val ); private: - static const unsigned _accuracy = 8; + static const unsigned _precision = 8; }; #endif //__SmtLibWriter_h__ \ No newline at end of file From bc13795166faa79a46313dc061e18cb6edc6ccda Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Wed, 1 Feb 2023 18:58:55 +0200 Subject: [PATCH 099/165] Minor --- src/proofs/SmtLibWriter.cpp | 2 +- src/proofs/SmtLibWriter.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/proofs/SmtLibWriter.cpp b/src/proofs/SmtLibWriter.cpp index b382cd174c..8576d7af24 100644 --- a/src/proofs/SmtLibWriter.cpp +++ b/src/proofs/SmtLibWriter.cpp @@ -93,6 +93,6 @@ void SmtLibWriter::writeInstanceToFile( IFile &file, const List &instanc String SmtLibWriter::signedValue( double val ) { std::stringstream s; - s << std::fixed << std::setprecision( SmtLibWriter::_precision ) << abs( val ); + s << std::fixed << std::setprecision( SmtLibWriter::NUMERICAL_PRECISION ) << abs( val ); return val > 0 ? s.str() : "( - " + s.str() + " )"; } \ No newline at end of file diff --git a/src/proofs/SmtLibWriter.h b/src/proofs/SmtLibWriter.h index c81ac7dfdc..7b47d3ede8 100644 --- a/src/proofs/SmtLibWriter.h +++ b/src/proofs/SmtLibWriter.h @@ -69,7 +69,7 @@ class SmtLibWriter static String signedValue( double val ); private: - static const unsigned _precision = 8; + static const unsigned NUMERICAL_PRECISION = 8; }; #endif //__SmtLibWriter_h__ \ No newline at end of file From 9076288c77a318edc3cf7ac10ce2e966d35e0fc3 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 7 Feb 2023 12:49:00 +0200 Subject: [PATCH 100/165] Use GlobalConfigurations for setting percision for SmtLibWriter --- src/proofs/SmtLibWriter.cpp | 3 ++- src/proofs/SmtLibWriter.h | 3 --- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/proofs/SmtLibWriter.cpp b/src/proofs/SmtLibWriter.cpp index 8576d7af24..a46974c6ea 100644 --- a/src/proofs/SmtLibWriter.cpp +++ b/src/proofs/SmtLibWriter.cpp @@ -92,7 +92,8 @@ void SmtLibWriter::writeInstanceToFile( IFile &file, const List &instanc String SmtLibWriter::signedValue( double val ) { + unsigned precision = ( unsigned ) std::log10 ( 1 / GlobalConfiguration::DEFAULT_EPSILON_FOR_COMPARISONS ); std::stringstream s; - s << std::fixed << std::setprecision( SmtLibWriter::NUMERICAL_PRECISION ) << abs( val ); + s << std::fixed << std::setprecision( precision ) << abs( val ); return val > 0 ? s.str() : "( - " + s.str() + " )"; } \ No newline at end of file diff --git a/src/proofs/SmtLibWriter.h b/src/proofs/SmtLibWriter.h index 7b47d3ede8..c9800296fe 100644 --- a/src/proofs/SmtLibWriter.h +++ b/src/proofs/SmtLibWriter.h @@ -67,9 +67,6 @@ class SmtLibWriter Returns a string representing the value of a double */ static String signedValue( double val ); - -private: - static const unsigned NUMERICAL_PRECISION = 8; }; #endif //__SmtLibWriter_h__ \ No newline at end of file From 552cbd8739e4dd91577d8933cb91b2e3b3fb06f0 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 14 Mar 2023 12:45:22 +0200 Subject: [PATCH 101/165] Trim zeros from right when writing to SMTLIB format --- src/common/MString.cpp | 17 +++++++++++++++++ src/common/MString.h | 1 + src/proofs/Checker.cpp | 2 +- src/proofs/SmtLibWriter.cpp | 2 +- 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/common/MString.cpp b/src/common/MString.cpp index 21892e47ba..56a93b038d 100644 --- a/src/common/MString.cpp +++ b/src/common/MString.cpp @@ -175,6 +175,23 @@ String String::trim() const return substring( firstNonSpace, lastNonSpace - firstNonSpace + 1 ); } +String String::trimZerosFromRight() const +{ + unsigned lastNonZero = 0; + + for ( unsigned i = 0; i < length(); ++i ) + if ( ( _super[i] != ' ' ) && ( _super[i] != '\n' ) && ( _super[i] != '0' ) ) + lastNonZero = i; + + if ( _super[lastNonZero] == '.' ) + --lastNonZero; + + if ( substring( 0, lastNonZero + 1 ) == "" ) + return "0"; + + return substring( 0, lastNonZero + 1 ); +} + void String::replaceAll( const String &toReplace, const String &replaceWith ) { while ( find( toReplace ) != Super::npos ) diff --git a/src/common/MString.h b/src/common/MString.h index dbd2254830..790ad0ec06 100644 --- a/src/common/MString.h +++ b/src/common/MString.h @@ -53,6 +53,7 @@ class String bool endsWith( const String &suffix ); void replace( const String &toReplace, const String &replaceWith ); String trim() const; + String trimZerosFromRight() const; void replaceAll( const String &toReplace, const String &replaceWith ); protected: diff --git a/src/proofs/Checker.cpp b/src/proofs/Checker.cpp index 557ba5b2cb..fb0262b0ee 100644 --- a/src/proofs/Checker.cpp +++ b/src/proofs/Checker.cpp @@ -205,7 +205,7 @@ bool Checker::checkAllPLCExplanations( const UnsatCertificateNode *node, double else if ( causingVar == f && causingVarBound == LOWER && affectedVar == aux && affectedVarBound == UPPER && FloatUtils::isZero( bound ) && FloatUtils::isPositive( explainedBound + epsilon ) ) tighteningMatched = true; - // If lb of b is positive x, then lb of aux is -x + // If lb of b is positive x, then ub of aux is -x else if ( causingVar == b && causingVarBound == LOWER && affectedVar == aux &&affectedVarBound == UPPER && FloatUtils::gte(explainedBound, - bound - epsilon ) && bound > 0 ) tighteningMatched = true; diff --git a/src/proofs/SmtLibWriter.cpp b/src/proofs/SmtLibWriter.cpp index a46974c6ea..788ebe8b2d 100644 --- a/src/proofs/SmtLibWriter.cpp +++ b/src/proofs/SmtLibWriter.cpp @@ -95,5 +95,5 @@ String SmtLibWriter::signedValue( double val ) unsigned precision = ( unsigned ) std::log10 ( 1 / GlobalConfiguration::DEFAULT_EPSILON_FOR_COMPARISONS ); std::stringstream s; s << std::fixed << std::setprecision( precision ) << abs( val ); - return val > 0 ? s.str() : "( - " + s.str() + " )"; + return val >= 0 ? String ( s.str() ).trimZerosFromRight() : String("( - " + s.str()).trimZerosFromRight() + " )"; } \ No newline at end of file From 9edb774afca2ea45f171babb2b46842d903a292a Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Thu, 18 May 2023 10:59:48 +0300 Subject: [PATCH 102/165] minor --- src/proofs/SmtLibWriter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/proofs/SmtLibWriter.cpp b/src/proofs/SmtLibWriter.cpp index 788ebe8b2d..ad57b022d3 100644 --- a/src/proofs/SmtLibWriter.cpp +++ b/src/proofs/SmtLibWriter.cpp @@ -95,5 +95,5 @@ String SmtLibWriter::signedValue( double val ) unsigned precision = ( unsigned ) std::log10 ( 1 / GlobalConfiguration::DEFAULT_EPSILON_FOR_COMPARISONS ); std::stringstream s; s << std::fixed << std::setprecision( precision ) << abs( val ); - return val >= 0 ? String ( s.str() ).trimZerosFromRight() : String("( - " + s.str()).trimZerosFromRight() + " )"; + return val >= 0 ? String ( s.str() ).trimZerosFromRight() : String( "( - " + s.str() ).trimZerosFromRight() + " )"; } \ No newline at end of file From 9fde5074918968dc90ab7c971dc58cfcf1f50fee Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Thu, 18 May 2023 13:45:28 +0300 Subject: [PATCH 103/165] Minor --- src/common/MString.cpp | 12 +++++++++--- src/proofs/SmtLibWriter.cpp | 4 ++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/common/MString.cpp b/src/common/MString.cpp index 56a93b038d..91c5e16c98 100644 --- a/src/common/MString.cpp +++ b/src/common/MString.cpp @@ -177,16 +177,22 @@ String String::trim() const String String::trimZerosFromRight() const { - unsigned lastNonZero = 0; + if ( !find( "." ) ) + return _super; - for ( unsigned i = 0; i < length(); ++i ) + int lastNonZero = length() - 1; + + for ( int i = length() - 1; i >= 0; --i ) if ( ( _super[i] != ' ' ) && ( _super[i] != '\n' ) && ( _super[i] != '0' ) ) + { lastNonZero = i; + break; + } if ( _super[lastNonZero] == '.' ) --lastNonZero; - if ( substring( 0, lastNonZero + 1 ) == "" ) + if ( lastNonZero < 0 ) return "0"; return substring( 0, lastNonZero + 1 ); diff --git a/src/proofs/SmtLibWriter.cpp b/src/proofs/SmtLibWriter.cpp index ad57b022d3..0977563995 100644 --- a/src/proofs/SmtLibWriter.cpp +++ b/src/proofs/SmtLibWriter.cpp @@ -92,8 +92,8 @@ void SmtLibWriter::writeInstanceToFile( IFile &file, const List &instanc String SmtLibWriter::signedValue( double val ) { - unsigned precision = ( unsigned ) std::log10 ( 1 / GlobalConfiguration::DEFAULT_EPSILON_FOR_COMPARISONS ); + unsigned precision = ( unsigned ) std::log10( 1 / GlobalConfiguration::DEFAULT_EPSILON_FOR_COMPARISONS ); std::stringstream s; s << std::fixed << std::setprecision( precision ) << abs( val ); - return val >= 0 ? String ( s.str() ).trimZerosFromRight() : String( "( - " + s.str() ).trimZerosFromRight() + " )"; + return val >= 0 ? String( s.str() ).trimZerosFromRight() : String( "( - " + s.str() ).trimZerosFromRight() + " )"; } \ No newline at end of file From 5166888efb7aa01f8734c90f3c2c42c20d13d0b2 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Thu, 18 May 2023 13:55:56 +0300 Subject: [PATCH 104/165] minor --- src/common/MString.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/MString.cpp b/src/common/MString.cpp index 91c5e16c98..3f4dcf570f 100644 --- a/src/common/MString.cpp +++ b/src/common/MString.cpp @@ -177,7 +177,7 @@ String String::trim() const String String::trimZerosFromRight() const { - if ( !find( "." ) ) + if ( !contains( "." ) ) return _super; int lastNonZero = length() - 1; From 207c5bfb6092aed7a7e4870637317ff399d82d62 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Sun, 26 Nov 2023 14:14:56 +0200 Subject: [PATCH 105/165] Proofs support all PL constraints --- src/common/MString.cpp | 2 - src/common/MString.h | 1 - src/common/Statistics.h | 2 +- src/configuration/GlobalConfiguration.cpp | 4 +- src/engine/AbsoluteValueConstraint.cpp | 166 ++++- src/engine/AbsoluteValueConstraint.h | 17 + src/engine/BoundManager.cpp | 47 +- src/engine/BoundManager.h | 4 +- src/engine/DisjunctionConstraint.cpp | 42 ++ src/engine/DisjunctionConstraint.h | 17 + src/engine/Engine.cpp | 24 +- src/engine/IBoundManager.h | 4 +- src/engine/Marabou.cpp | 7 +- src/engine/MaxConstraint.cpp | 133 +++- src/engine/MaxConstraint.h | 71 +- src/engine/PiecewiseLinearConstraint.cpp | 2 +- src/engine/PiecewiseLinearConstraint.h | 17 +- src/engine/ReluConstraint.cpp | 29 +- src/engine/ReluConstraint.h | 2 +- src/engine/SignConstraint.cpp | 49 +- src/engine/SmtCore.cpp | 11 + src/engine/T/TableauFactory.h | 3 +- src/engine/TableauState.cpp | 10 - src/engine/TableauState.h | 5 - src/engine/tests/MockBoundManager.h | 4 +- src/engine/tests/Test_SmtCore.h | 4 + src/proofs/CMakeLists.txt | 2 +- src/proofs/Checker.cpp | 680 +++++++++++++++---- src/proofs/Checker.h | 54 +- src/proofs/PlcLemma.cpp | 117 ++++ src/proofs/PlcLemma.h | 60 ++ src/proofs/SmtLibWriter.cpp | 212 +++++- src/proofs/SmtLibWriter.h | 37 +- src/proofs/UnsatCertificateNode.cpp | 4 +- src/proofs/UnsatCertificateNode.h | 10 +- src/proofs/UnsatCertificateUtils.cpp | 20 +- src/proofs/UnsatCertificateUtils.h | 3 + src/proofs/tests/Test_SmtLibWriter.h | 193 +++++- src/proofs/tests/Test_UnsatCertificateNode.h | 20 +- 39 files changed, 1795 insertions(+), 294 deletions(-) create mode 100644 src/proofs/PlcLemma.cpp create mode 100644 src/proofs/PlcLemma.h diff --git a/src/common/MString.cpp b/src/common/MString.cpp index 3f4dcf570f..9c2773942a 100644 --- a/src/common/MString.cpp +++ b/src/common/MString.cpp @@ -211,8 +211,6 @@ bool String::endsWith( const String &suffix ) return l1 >= l2 && _super.compare(l1 - l2, l2, suffix._super) == 0; } -std::ostream &operator<<( std::ostream &stream, const String &string ); - // // Local Variables: // compile-command: "make -C ../.. " diff --git a/src/common/MString.h b/src/common/MString.h index 790ad0ec06..d72132846e 100644 --- a/src/common/MString.h +++ b/src/common/MString.h @@ -60,7 +60,6 @@ class String Super _super; }; -std::ostream &operator<<( std::ostream &stream, const String &string ); #ifdef CXXTEST_RUNNING #include diff --git a/src/common/Statistics.h b/src/common/Statistics.h index 85d5f1f3ac..512633e32d 100644 --- a/src/common/Statistics.h +++ b/src/common/Statistics.h @@ -320,7 +320,7 @@ class Statistics /* Print a long attribute in time format - */ + */ void printLongAttributeAsTime( unsigned long long longAsNumber ) const; private: diff --git a/src/configuration/GlobalConfiguration.cpp b/src/configuration/GlobalConfiguration.cpp index 890bfb7eaa..c721ce0cf1 100644 --- a/src/configuration/GlobalConfiguration.cpp +++ b/src/configuration/GlobalConfiguration.cpp @@ -91,7 +91,7 @@ const bool GlobalConfiguration::ONLY_AUX_INITIAL_BASIS = false; const GlobalConfiguration::ExplicitBasisBoundTighteningType GlobalConfiguration::EXPLICIT_BASIS_BOUND_TIGHTENING_TYPE = GlobalConfiguration::COMPUTE_INVERTED_BASIS_MATRIX; -const bool GlobalConfiguration::EXPLICIT_BOUND_TIGHTENING_UNTIL_SATURATION = false; +const bool GlobalConfiguration::EXPLICIT_BOUND_TIGHTENING_UNTIL_SATURATION = true; const unsigned GlobalConfiguration::REFACTORIZATION_THRESHOLD = 100; const GlobalConfiguration::BasisFactorizationType GlobalConfiguration::BASIS_FACTORIZATION_TYPE = @@ -102,7 +102,7 @@ const unsigned GlobalConfiguration::POLARITY_CANDIDATES_THRESHOLD = 5; const unsigned GlobalConfiguration::DNC_DEPTH_THRESHOLD = 5; const double GlobalConfiguration::MINIMAL_COEFFICIENT_FOR_TIGHTENING = 0.01; -const double GlobalConfiguration::LEMMA_CERTIFICATION_TOLERANCE = 0.0000001; +const double GlobalConfiguration::LEMMA_CERTIFICATION_TOLERANCE = 0.000001; #ifdef ENABLE_GUROBI const unsigned GlobalConfiguration::GUROBI_NUMBER_OF_THREADS = 1; diff --git a/src/engine/AbsoluteValueConstraint.cpp b/src/engine/AbsoluteValueConstraint.cpp index 41944d27e9..52a1ea64c1 100644 --- a/src/engine/AbsoluteValueConstraint.cpp +++ b/src/engine/AbsoluteValueConstraint.cpp @@ -135,18 +135,27 @@ void AbsoluteValueConstraint::notifyLowerBound( unsigned variable, double bound // Update partner's bound if ( isActive() && _boundManager ) { + bool proofs = _boundManager->shouldProduceProofs(); + + if ( proofs ) + createPosTighteningRow(); + if ( variable == _b ) { - if ( bound < 0 ) + if ( FloatUtils::lt( bound, 0 ) && ( !proofs || !phaseFixed() ) ) { - double fUpperBound = - FloatUtils::max( -bound, getUpperBound( _b ) ); - _boundManager->tightenUpperBound( _f, fUpperBound ); + double fUpperBound = FloatUtils::max( -bound, getUpperBound( _b ) ) ; + if ( proofs ) + _boundManager->addLemmaExplanation( _f, fUpperBound, UPPER, { variable, variable }, UPPER, getType() ); + else + _boundManager->tightenUpperBound( _f, fUpperBound ); if ( _auxVarsInUse ) { - _boundManager->tightenUpperBound( _posAux, - fUpperBound - bound ); + if ( proofs ) + _boundManager->tightenUpperBound( _posAux, fUpperBound - bound , *_posTighteningRow ); + else + _boundManager->tightenUpperBound( _posAux, fUpperBound - bound ); } } else @@ -161,7 +170,10 @@ void AbsoluteValueConstraint::notifyLowerBound( unsigned variable, double bound // bother. The only exception is if the lower bound is, // for some reason, negative if ( bound < 0 ) - _boundManager->tightenLowerBound( _f, 0 ); + { + if ( !proofs ) + _boundManager->tightenLowerBound( _f, 0 ); + } } // Any lower bound tightening on the aux variables, if they @@ -179,24 +191,38 @@ void AbsoluteValueConstraint::notifyUpperBound( unsigned variable, double bound !FloatUtils::lt( bound, getUpperBound( variable ) ) ) return; - setUpperBound( variable, bound ); + setUpperBound( variable, bound ); // Check whether the phase has become fixed fixPhaseIfNeeded(); // Update partner's bound if ( isActive() && _boundManager ) { + + bool proofs = _boundManager->shouldProduceProofs(); + + if ( proofs ) + { + createPosTighteningRow(); + createNegTighteningRow(); + } + if ( variable == _b ) { - if ( bound > 0 ) + if ( FloatUtils::gt( bound, 0 ) && ( !proofs || !phaseFixed() ) ) { - double fUpperBound = FloatUtils::max( bound, -getLowerBound( _b ) ); - _boundManager->tightenUpperBound( _f, fUpperBound ); + double fUpperBound = FloatUtils::max( bound, -getLowerBound( _b ) ) ; + if ( proofs ) + _boundManager->addLemmaExplanation( _f, fUpperBound, UPPER, { variable, variable }, UPPER, getType() ); + else + _boundManager->tightenUpperBound( _f, fUpperBound ); if ( _auxVarsInUse ) { - _boundManager-> - tightenUpperBound( _negAux, fUpperBound + bound ); + if ( proofs ) + _boundManager->tightenUpperBound( _negAux, fUpperBound + bound, *_negTighteningRow ); + else + _boundManager->tightenUpperBound( _negAux, fUpperBound + bound ); } } else @@ -207,24 +233,38 @@ void AbsoluteValueConstraint::notifyUpperBound( unsigned variable, double bound else if ( variable == _f ) { // F's upper bound can restrict both bounds of B - if ( bound < getUpperBound( _b ) ) - _boundManager->tightenUpperBound( _b, bound ); + if ( FloatUtils::lt( bound, getUpperBound( _b ) ) ) + { + if ( proofs ) + _boundManager->tightenUpperBound( _b, bound, *_posTighteningRow ); + else + _boundManager->tightenUpperBound( _b, bound ); + } - if ( -bound > getLowerBound( _b ) ) - _boundManager->tightenLowerBound( _b, -bound ); + if ( FloatUtils::gt( -bound, getLowerBound( _b ) ) ) + { + if ( proofs ) + _boundManager->tightenLowerBound( _b, -bound, *_negTighteningRow ); + else + _boundManager->tightenLowerBound( _b, -bound ); + } if ( _auxVarsInUse ) { if ( existsLowerBound( _b ) ) { - _boundManager-> - tightenUpperBound( _posAux, bound - getLowerBound( _b ) ); + if ( proofs ) + _boundManager->tightenUpperBound( _posAux, bound - getLowerBound( _b ), *_posTighteningRow ); + else + _boundManager->tightenUpperBound( _posAux, bound - getLowerBound( _b ) ); } if ( existsUpperBound( _b ) ) { - _boundManager-> - tightenUpperBound( _negAux, bound + getUpperBound( _b ) ); + if ( proofs ) + _boundManager->tightenUpperBound( _negAux, bound + getUpperBound( _b ), *_negTighteningRow ); + else + _boundManager->tightenUpperBound( _negAux, bound + getUpperBound( _b ) ); } } } @@ -234,28 +274,36 @@ void AbsoluteValueConstraint::notifyUpperBound( unsigned variable, double bound { if ( existsUpperBound( _b ) ) { - _boundManager-> - tightenUpperBound( _f, getUpperBound( _b ) + bound ); + if ( proofs ) + _boundManager->tightenUpperBound( _f, getUpperBound( _b ) + bound, *_posTighteningRow ); + else + _boundManager->tightenUpperBound( _f, getUpperBound( _b ) + bound ); } if ( existsLowerBound( _f ) ) { - _boundManager-> - tightenLowerBound( _b, getLowerBound( _f ) - bound ); + if ( proofs ) + _boundManager->tightenLowerBound( _b, getLowerBound( _f ) - bound, *_posTighteningRow ); + else + _boundManager->tightenLowerBound( _b, getLowerBound( _f ) - bound ); } } else if ( variable == _negAux ) { if ( existsLowerBound( _b ) ) { - _boundManager-> - tightenUpperBound( _f, bound - getLowerBound( _b ) ); + if ( proofs ) + _boundManager->tightenUpperBound( _f, bound - getLowerBound( _b ), *_negTighteningRow ); + else + _boundManager->tightenUpperBound( _f, bound - getLowerBound( _b ) ); } if ( existsLowerBound( _f ) ) { - _boundManager-> - tightenUpperBound( _b, bound - getLowerBound( _f ) ); + if ( proofs ) + _boundManager->tightenUpperBound( _b, bound - getLowerBound( _f ), *_negTighteningRow ); + else + _boundManager->tightenUpperBound( _b, bound - getLowerBound( _f ) ); } } } @@ -729,10 +777,24 @@ String AbsoluteValueConstraint::serializeToString() const void AbsoluteValueConstraint::fixPhaseIfNeeded() { + + if ( phaseFixed() ) + return; + + bool proofs = _boundManager && _boundManager->shouldProduceProofs(); + + if ( proofs ) + { + createPosTighteningRow(); + createNegTighteningRow(); + } + // Option 1: b's range is strictly positive if ( existsLowerBound( _b ) && getLowerBound( _b ) >= 0 ) { setPhaseStatus( ABS_PHASE_POSITIVE ); + if ( proofs ) + _boundManager->addLemmaExplanation( _posAux, 0, UPPER, { _b }, LOWER, getType() ); return; } @@ -740,6 +802,8 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() if ( existsUpperBound( _b ) && getUpperBound( _b ) <= 0 ) { setPhaseStatus( ABS_PHASE_NEGATIVE ); + if ( proofs ) + _boundManager->addLemmaExplanation( _negAux, 0, UPPER, { _b }, UPPER, getType() ); return; } @@ -751,6 +815,8 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() if ( existsUpperBound( _b ) && getLowerBound( _f ) > getUpperBound( _b ) ) { setPhaseStatus( ABS_PHASE_NEGATIVE ); + if ( proofs ) + _boundManager->addLemmaExplanation( _negAux, 0, UPPER, { _b, _f }, UPPER, getType() ); return; } @@ -759,6 +825,8 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() if ( existsLowerBound( _b ) && getLowerBound( _f ) > -getLowerBound( _b ) ) { setPhaseStatus( ABS_PHASE_POSITIVE ); + if ( proofs ) + _boundManager->addLemmaExplanation( _posAux, 0, UPPER, { _b, _f }, LOWER, getType() ); return; } @@ -775,6 +843,8 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() if ( existsLowerBound( _posAux ) && FloatUtils::isPositive( getLowerBound( _posAux ) ) ) { setPhaseStatus( ABS_PHASE_NEGATIVE ); + if ( proofs ) + _boundManager->addLemmaExplanation( _negAux, 0, UPPER, { _posAux }, LOWER, getType() ); return; } @@ -789,6 +859,8 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() if ( existsLowerBound( _negAux ) && FloatUtils::isPositive( getLowerBound( _negAux ) ) ) { setPhaseStatus( ABS_PHASE_POSITIVE ); + if ( proofs ) + _boundManager->addLemmaExplanation( _posAux, 0, UPPER, { _negAux }, LOWER, getType() ); return; } } @@ -811,3 +883,39 @@ String AbsoluteValueConstraint::phaseToString( PhaseStatus phase ) return "UNKNOWN"; } }; + +void AbsoluteValueConstraint::createPosTighteningRow() +{ + // Create the row only when needed and when not already created + if ( !_boundManager->getBoundExplainer() || _posTighteningRow || !_auxVarsInUse || _tableauAuxVars.empty() ) + return; + _posTighteningRow = std::unique_ptr( new TableauRow ( 3 ) ); + + // f = b + aux + counterpart (an additional aux variable of tableau) + _posTighteningRow->_lhs = _f; + _posTighteningRow->_row[0] = TableauRow::Entry( _b, 1 ); + _posTighteningRow->_row[1] = TableauRow::Entry( _posAux, 1 ); + _posTighteningRow->_row[2] = TableauRow::Entry( _tableauAuxVars.front(), 1 ); +} + +void AbsoluteValueConstraint::createNegTighteningRow() +{ + // Create the row only when needed and when not already created + if ( !_boundManager->getBoundExplainer() || _negTighteningRow || !_auxVarsInUse || _tableauAuxVars.empty() ) + return; + + _negTighteningRow = std::unique_ptr( new TableauRow ( 3 ) ); + + // f = b + aux + counterpart (an additional aux variable of tableau) + _negTighteningRow->_lhs = _f; + _negTighteningRow->_row[0] = TableauRow::Entry( _b, -1 ); + _negTighteningRow->_row[1] = TableauRow::Entry( _negAux, 1 ); + _negTighteningRow->_row[2] = TableauRow::Entry( _tableauAuxVars.back(), 1 ); +} + +const List AbsoluteValueConstraint::getNativeAuxVars() const +{ + if ( _auxVarsInUse ) + return { _posAux, _negAux }; + return {}; +} diff --git a/src/engine/AbsoluteValueConstraint.h b/src/engine/AbsoluteValueConstraint.h index 5d01c00d77..da1640a0c4 100644 --- a/src/engine/AbsoluteValueConstraint.h +++ b/src/engine/AbsoluteValueConstraint.h @@ -201,6 +201,7 @@ class AbsoluteValueConstraint : public PiecewiseLinearConstraint inline unsigned getPosAux() const { return _posAux; }; inline unsigned getNegAux() const { return _negAux; }; + const List getNativeAuxVars() const override; private: /* The variables that make up this constraint; _f = | _b |. @@ -230,6 +231,22 @@ class AbsoluteValueConstraint : public PiecewiseLinearConstraint Return true iff _b and _f are not both within bounds. */ bool haveOutOfBoundVariables() const; + + std::shared_ptr _posTighteningRow; + std::shared_ptr _negTighteningRow; + + /* + Create a the tableau row used for explaining bound tightening caused by the constraint + Stored in _posTighteningRow + */ + void createPosTighteningRow(); + + /* + Create a the tableau row used for explaining bound tightening caused by the constraint + Stored in _negTighteningRow + */ + void createNegTighteningRow(); + }; #endif // __AbsoluteValueConstraint_h__ diff --git a/src/engine/BoundManager.cpp b/src/engine/BoundManager.cpp index f2e4cd7077..a15bfd7507 100644 --- a/src/engine/BoundManager.cpp +++ b/src/engine/BoundManager.cpp @@ -407,24 +407,61 @@ void BoundManager::updateBoundExplanationSparse( const SparseUnsortedList &row, } bool BoundManager::addLemmaExplanation( unsigned var, double value, BoundType affectedVarBound, - unsigned causingVar, BoundType causingVarBound, + const List &causingVars, BoundType causingVarBound, PiecewiseLinearFunctionType constraintType ) { if ( !shouldProduceProofs() ) return false; - ASSERT( causingVar < _tableau->getN() && var < _tableau->getN() ); + ASSERT( var < _tableau->getN() ); // Register new ground bound, update certificate, and reset explanation Vector explanation( 0 ); - getExplanation( causingVar, causingVarBound, explanation ); + Vector> allExplanations( 0 ); bool tightened = affectedVarBound == UPPER ? tightenUpperBound( var, value ) : tightenLowerBound( var, value ); if ( tightened ) { - std::shared_ptr PLCExpl = std::make_shared( causingVar, var, value, causingVarBound, affectedVarBound, explanation, constraintType ); - _engine->getUNSATCertificateCurrentPointer()->addPLCExplanation( PLCExpl ); + if ( constraintType == RELU || constraintType == SIGN ) + { + ASSERT( causingVars.size() == 1 ); + getExplanation( causingVars.front(), causingVarBound, explanation ); + allExplanations.append( explanation ); + } + else if ( constraintType == ABSOLUTE_VALUE ) + { + if ( causingVars.size() == 1 ) + { + getExplanation( causingVars.front(), causingVarBound, explanation ); + allExplanations.append( explanation ); + } + else + { + // Add zero vectors to maintain consistency of explanations size + getExplanation( causingVars.front(), causingVarBound == UPPER, explanation ); + allExplanations.append( explanation.empty() ? Vector( _tableau->getM(), 0 ) : explanation ); + explanation.clear(); + + getExplanation( causingVars.back(), LOWER, explanation ); + allExplanations.append( explanation.empty() ? Vector( _tableau->getM(), 0 ) : explanation ); + } + } + else if ( constraintType == MAX ) + { + for ( const auto &element : causingVars ) + { + // Add zero vectors to maintain consistency of explanations size + getExplanation( element, UPPER, explanation ); + allExplanations.append( explanation.empty() ? Vector( _tableau->getM(), 0 ) : explanation ); + explanation.clear(); + } + } + else + throw MarabouError( MarabouError::FEATURE_NOT_YET_SUPPORTED ); + + std::shared_ptr PLCExpl = std::make_shared( causingVars, var, value, causingVarBound, affectedVarBound, allExplanations, constraintType ); + _engine->getUNSATCertificateCurrentPointer()->addPLCLemma(PLCExpl ); affectedVarBound == UPPER ? _engine->updateGroundUpperBound( var, value ) : _engine->updateGroundLowerBound( var, value ); resetExplanation( var, affectedVarBound ); } diff --git a/src/engine/BoundManager.h b/src/engine/BoundManager.h index 0b9d54e0a1..65ba25f8c3 100644 --- a/src/engine/BoundManager.h +++ b/src/engine/BoundManager.h @@ -46,7 +46,7 @@ #include "ITableau.h" #include "IEngine.h" #include "List.h" -#include "PlcExplanation.h" +#include "PlcLemma.h" #include "Tightening.h" #include "UnsatCertificateNode.h" #include "Vector.h" @@ -254,7 +254,7 @@ class BoundManager : public IBoundManager Adds a lemma to the UNSATCertificateNode object */ bool addLemmaExplanation( unsigned var, double value, BoundType affectedVarBound, - unsigned causingVar, BoundType causingVarBound, + const List &causingVars, BoundType causingVarBound, PiecewiseLinearFunctionType constraintType ); /* diff --git a/src/engine/DisjunctionConstraint.cpp b/src/engine/DisjunctionConstraint.cpp index 650f6ed901..459891c8ee 100644 --- a/src/engine/DisjunctionConstraint.cpp +++ b/src/engine/DisjunctionConstraint.cpp @@ -513,3 +513,45 @@ bool DisjunctionConstraint::caseSplitIsFeasible( const PiecewiseLinearCaseSplit return true; } + +List DisjunctionConstraint::getFeasibleDisjuncts() const +{ + List validDisjuncts = List(); + + for ( const auto feasibleDisjunct : _feasibleDisjuncts ) + validDisjuncts.append( _disjuncts.get( feasibleDisjunct ) ); + + return validDisjuncts; +} + +bool DisjunctionConstraint::removeFeasibleDisjunct(const PiecewiseLinearCaseSplit &disjunct ) +{ + for ( unsigned i = 0; i < _disjuncts.size(); ++i ) + if ( _disjuncts[i] == disjunct ) + { + _feasibleDisjuncts.erase( i ); + return true; + } + + return false; +} + +bool DisjunctionConstraint::addFeasibleDisjunct( const PiecewiseLinearCaseSplit &disjunct ) +{ + for ( unsigned i = 0; i < _disjuncts.size(); ++i ) + if ( _disjuncts[i] == disjunct ) + { + _feasibleDisjuncts.append( i ); + return true; + } + + return false; +} + +// +// Local Variables: +// compile-command: "make -C ../.. " +// tags-file-name: "../../TAGS" +// c-basic-offset: 4 +// End: +// diff --git a/src/engine/DisjunctionConstraint.h b/src/engine/DisjunctionConstraint.h index e39448ffa1..d215bbe281 100644 --- a/src/engine/DisjunctionConstraint.h +++ b/src/engine/DisjunctionConstraint.h @@ -172,6 +172,23 @@ class DisjunctionConstraint : public PiecewiseLinearConstraint */ String serializeToString() const override; + /* + Returns the list of feasible disjuncts + */ + List getFeasibleDisjuncts() const; + + /* + Removes a disjunct from the list of feasible disjuncts + Returns true iff disjunct was found. + */ + bool removeFeasibleDisjunct( const PiecewiseLinearCaseSplit &disjunct ); + + /* + Adds a disjunct from the list of feasible disjuncts + Returns true iff disjunct was found. + */ + bool addFeasibleDisjunct( const PiecewiseLinearCaseSplit &disjunct ); + private: /* The disjuncts that form this PL constraint diff --git a/src/engine/Engine.cpp b/src/engine/Engine.cpp index 72543ebfc0..6021a46590 100644 --- a/src/engine/Engine.cpp +++ b/src/engine/Engine.cpp @@ -1343,8 +1343,10 @@ void Engine::initializeBoundsAndConstraintWatchersInTableau( unsigned constraint->setStatistics( &_statistics ); // Assuming aux var is use, add the constraint's auxiliary variable assigned to it in the tableau, to the constraint - if ( _produceUNSATProofs && _preprocessedQuery->_lastAddendToAux.exists( constraint->getParticipatingVariables().back() ) ) - constraint->setTableauAuxVar( _preprocessedQuery->_lastAddendToAux.at( constraint->getParticipatingVariables().back() ) ); + if ( _produceUNSATProofs ) + for ( unsigned var : constraint->getNativeAuxVars() ) + if ( _preprocessedQuery->_lastAddendToAux.exists( var ) ) + constraint->addTableauAuxVar( _preprocessedQuery->_lastAddendToAux.at( var ), var ); } _tsConstraints = _preprocessedQuery->getTranscendentalConstraints(); @@ -1399,22 +1401,20 @@ bool Engine::processInputQuery( InputQuery &inputQuery, bool preprocess ) if ( _produceUNSATProofs ) { - bool containsNonReLUs = false; + bool containsUnsupportedConstraints = false; for ( auto &plConstraint : _preprocessedQuery->getPiecewiseLinearConstraints() ) { - if ( plConstraint->getType() != RELU ) + if ( !UNSATCertificateUtils::getSupportedActivations().exists( plConstraint->getType() ) ) { - containsNonReLUs = true; + containsUnsupportedConstraints = true; _produceUNSATProofs = false; Options::get()->setBool( Options::PRODUCE_PROOFS, false ); } } - if ( containsNonReLUs ) - { + if ( containsUnsupportedConstraints ) ENGINE_LOG( "Turning off proof production since activations are not yet supported\n" ); - printf( "Turning off proof production since activations not are yet supported\n" ); - } + } if ( _lpSolverType == LPSolverType::NATIVE ) @@ -3527,9 +3527,9 @@ bool Engine::certifyUNSATCertificate() for ( auto &constraint : _plConstraints ) { - if ( constraint->getType() != RELU ) + if ( !UNSATCertificateUtils::getSupportedActivations().exists( constraint->getType() ) ) { - printf( "Certification Error! Marabou doesn't support certification for none ReLU constraints.\n" ); + printf( "Certification Error! Network contains activation function that is not yet supported by Marabou certification.\n" ); return false; } } @@ -3568,7 +3568,7 @@ bool Engine::certifyUNSATCertificate() if ( _statistics.getUnsignedAttribute( Statistics::NUM_POPS ) ) { double delegationRatio = _statistics.getUnsignedAttribute( Statistics::NUM_DELEGATED_LEAVES ) / _statistics.getUnsignedAttribute( Statistics::NUM_CERTIFIED_LEAVES ); - ASSERT( FloatUtils::lt( delegationRatio, 0.01 )); + ASSERT( FloatUtils::lt( delegationRatio, 0.01 ) ); } }); diff --git a/src/engine/IBoundManager.h b/src/engine/IBoundManager.h index 1f3c246af4..2660c614bb 100644 --- a/src/engine/IBoundManager.h +++ b/src/engine/IBoundManager.h @@ -127,10 +127,10 @@ class IBoundManager /* Add a lemma to the UNSATCertificateNode object - Return true iff adding the lemma has succeeded + Return true iff adding the lemma was successful */ virtual bool addLemmaExplanation( unsigned var, double value, BoundType affectedVarBound, - unsigned causingVar, BoundType causingVarBound, + const List &causingVars, BoundType causingVarBound, PiecewiseLinearFunctionType constraintType ) = 0; /* diff --git a/src/engine/Marabou.cpp b/src/engine/Marabou.cpp index 7b2c24381f..66489d77c1 100644 --- a/src/engine/Marabou.cpp +++ b/src/engine/Marabou.cpp @@ -203,10 +203,11 @@ void Marabou::exportAssignment() const void Marabou::solveQuery() { if ( _engine.processInputQuery( _inputQuery ) ) + { _engine.solve( Options::get()->getInt( Options::TIMEOUT ) ); - - if ( _engine.shouldProduceProofs() && _engine.getExitCode() == Engine::UNSAT ) - _engine.certifyUNSATCertificate(); + if ( _engine.shouldProduceProofs() && _engine.getExitCode() == Engine::UNSAT ) + _engine.certifyUNSATCertificate(); + } if ( _engine.getExitCode() == Engine::SAT ) _engine.extractSolution( _inputQuery ); diff --git a/src/engine/MaxConstraint.cpp b/src/engine/MaxConstraint.cpp index 3ec796e2e4..064a868fe4 100644 --- a/src/engine/MaxConstraint.cpp +++ b/src/engine/MaxConstraint.cpp @@ -77,6 +77,8 @@ MaxConstraint::MaxConstraint( const String &serializedMax ) MaxConstraint::~MaxConstraint() { + _elementToTighteningRow.clear(); + _elementToTableauAux.clear(); _elements.clear(); } @@ -147,6 +149,8 @@ void MaxConstraint::notifyLowerBound( unsigned variable, double value ) setLowerBound( variable, value ); } + bool proofs = _boundManager && _boundManager->shouldProduceProofs(); + /* See if we can eliminate any cases. */ @@ -190,18 +194,26 @@ void MaxConstraint::notifyLowerBound( unsigned variable, double value ) if ( isActive() && _boundManager ) { + if ( proofs ) + for ( const auto &element : _elements ) + createElementTighteningRow( element ); + // TODO: optimize this. Don't need to recompute ALL possible bounds, // Can focus only on the newly learned bound and possible consequences. List tightenings; getEntailedTightenings( tightenings ); - for ( const auto &tightening : tightenings ) + + if ( !proofs ) { - if ( tightening._type == Tightening::LB ) - _boundManager->tightenLowerBound( tightening._variable, - tightening._value ); - else if ( tightening._type == Tightening::UB ) - _boundManager->tightenUpperBound( tightening._variable, - tightening._value ); + for ( const auto &tightening : tightenings ) + { + if ( tightening._type == Tightening::LB ) + _boundManager->tightenLowerBound( tightening._variable, + tightening._value ); + else if ( tightening._type == Tightening::UB ) + _boundManager->tightenUpperBound( tightening._variable, + tightening._value ); + } } } } @@ -220,6 +232,9 @@ void MaxConstraint::notifyUpperBound( unsigned variable, double value ) setUpperBound( variable, value ); } + + bool proofs = _boundManager && _boundManager->shouldProduceProofs(); + /* See if we can eliminate any cases. */ @@ -257,24 +272,34 @@ void MaxConstraint::notifyUpperBound( unsigned variable, double value ) if ( isActive() && _boundManager ) { + if ( proofs ) + for ( const auto &element : _elements ) + createElementTighteningRow( element ); + // TODO: optimize this. Don't need to recompute ALL possible bounds, // Can focus only on the newly learned bound and possible consequences. List tightenings; getEntailedTightenings( tightenings ); - for ( const auto &tightening : tightenings ) + if ( !proofs ) { - if ( tightening._type == Tightening::LB ) - _boundManager->tightenLowerBound( tightening._variable, - tightening._value ); - else if ( tightening._type == Tightening::UB ) - _boundManager->tightenUpperBound( tightening._variable, - tightening._value ); + for ( const auto &tightening : tightenings ) + { + if ( tightening._type == Tightening::LB ) + _boundManager->tightenLowerBound( tightening._variable, + tightening._value ); + else if ( tightening._type == Tightening::UB ) + _boundManager->tightenUpperBound( tightening._variable, + tightening._value ); + } } } } void MaxConstraint::getEntailedTightenings( List &tightenings ) const { + bool proofs = _boundManager && _boundManager->shouldProduceProofs(); + unsigned maxElementForLB = _f; + // Lower and upper bounds for the f variable double fLB = existsLowerBound( _f ) ? getLowerBound( _f ) : FloatUtils::negativeInfinity(); double fUB = existsUpperBound( _f ) ? getUpperBound( _f ) : FloatUtils::infinity(); @@ -286,7 +311,11 @@ void MaxConstraint::getEntailedTightenings( List &tightenings ) cons for ( const auto &element : _elements ) { if ( existsLowerBound( element ) ) + { maxElementLB = FloatUtils::max( getLowerBound( element ), maxElementLB ); + if ( maxElementLB == getLowerBound( element ) ) + maxElementForLB = element; + } if ( !existsUpperBound( element ) ) maxElementUB = FloatUtils::infinity(); @@ -297,12 +326,18 @@ void MaxConstraint::getEntailedTightenings( List &tightenings ) cons maxElementLB = FloatUtils::max( _maxValueOfEliminatedPhases, maxElementLB ); maxElementUB = FloatUtils::max( _maxValueOfEliminatedPhases, maxElementUB ); + if ( maxElementLB == _maxValueOfEliminatedPhases ) + maxElementForLB = _f; + // f_UB and maxElementUB need to be equal. If not, the lower of the two wins. if ( FloatUtils::areDisequal( fUB, maxElementUB ) ) { if ( FloatUtils::gt( fUB, maxElementUB ) ) { - tightenings.append( Tightening( _f, maxElementUB, Tightening::UB ) ); + if ( proofs ) + _boundManager->addLemmaExplanation( _f, maxElementUB, UPPER, getElements(), UPPER, getType() ); + else + tightenings.append( Tightening( _f, maxElementUB, Tightening::UB ) ); } else { @@ -311,15 +346,31 @@ void MaxConstraint::getEntailedTightenings( List &tightenings ) cons { if ( !existsUpperBound( element ) || FloatUtils::gt( getUpperBound( element ), fUB ) ) - tightenings.append - ( Tightening( element, fUB, Tightening::UB ) ); + { + if ( proofs ) + { + ASSERT( _elementToTighteningRow[element] != NULL ); + _boundManager->tightenUpperBound( element, fUB, *_elementToTighteningRow[element] ); + } + else + tightenings.append( Tightening( element, fUB, Tightening::UB ) ); + + } } } } // fLB cannot be smaller than maxElementLB if ( FloatUtils::lt( fLB, maxElementLB ) ) - tightenings.append( Tightening( _f, maxElementLB, Tightening::LB ) ); + { + if ( proofs && maxElementForLB != _f ) + { + ASSERT(_elements.exists( maxElementForLB ) && _elementToTighteningRow[maxElementForLB] != NULL ); + _boundManager->tightenLowerBound( _f, maxElementLB, *_elementToTighteningRow[maxElementForLB] ); + } + else + tightenings.append( Tightening( _f, maxElementLB, Tightening::LB ) ); + } // TODO: bound tightening for aux vars. } @@ -674,6 +725,9 @@ String MaxConstraint::serializeToString() const void MaxConstraint::eliminateCase( unsigned variable ) { + if ( _boundManager && _boundManager->shouldProduceProofs() ) + return; + if ( _cdInfeasibleCases ) { markInfeasible( variableToPhase( variable ) ); @@ -681,12 +735,23 @@ void MaxConstraint::eliminateCase( unsigned variable ) else { _elements.erase( variable ); + _eliminatedElements.insert( variable ); + if ( _elementToAux.exists( variable ) ) { unsigned aux = _elementToAux[variable]; _elementToAux.erase( variable ); _auxToElement.erase( aux ); } + + if ( _elementToTighteningRow.exists( variable ) && _elementToTighteningRow[variable] != NULL ) + { + _elementToTighteningRow[variable] = NULL; + _elementToTighteningRow.erase( variable ); + } + + if ( _elementToTableauAux.exists( variable ) ) + _elementToTableauAux.erase( variable ); } } @@ -712,3 +777,35 @@ bool MaxConstraint::haveOutOfBoundVariables() const } return false; } + +void MaxConstraint::createElementTighteningRow( unsigned element ) +{ + + // Create the row only when needed and when not already create + if ( !_boundManager->getBoundExplainer() || _elementToTighteningRow[element] != NULL ) + return; + + _elementToTighteningRow[element] = std::make_shared( 3 ); + + // f = element + aux + counterpart (an additional aux variable of tableau) + _elementToTighteningRow[element]->_lhs = _f; + _elementToTighteningRow[element]->_row[0] = TableauRow::Entry( element, 1 ); + _elementToTighteningRow[element]->_row[1] = TableauRow::Entry( _elementToAux[element], 1 ); + _elementToTighteningRow[element]->_row[2] = TableauRow::Entry( _elementToTableauAux[element], 1 ); +} + +const List MaxConstraint::getNativeAuxVars() const +{ + List auxVars = {}; + for ( const auto &element : _elements ) + auxVars.append( _elementToAux[element]); + + return auxVars; +} + +void MaxConstraint::addTableauAuxVar( unsigned tableauAuxVar, unsigned constraintAuxVar ) +{ + unsigned element = _auxToElement[constraintAuxVar]; + _elementToTableauAux[element] = tableauAuxVar; + _elementToTighteningRow[element] = nullptr; +} \ No newline at end of file diff --git a/src/engine/MaxConstraint.h b/src/engine/MaxConstraint.h index fa36337eb0..e9d9aff426 100644 --- a/src/engine/MaxConstraint.h +++ b/src/engine/MaxConstraint.h @@ -205,7 +205,51 @@ class MaxConstraint : public PiecewiseLinearConstraint bool isImplication() const override; -private: + inline Set getEliminatedElements() const + { + return _eliminatedElements; + } + + inline Set getParticipatingElements() const + { + Set participatingElements = {}; + for ( const auto &element : _elements ) + participatingElements.insert( element ); + + for ( const auto &element : _eliminatedElements ) + participatingElements.insert( element ); + + return participatingElements; + } + + inline double getMaxValueOfEliminatedPhases() const + { + return _maxValueOfEliminatedPhases; + } + + inline unsigned getAuxToElement( unsigned element ) + { + return _auxToElement[element]; + } + + /* + Conversion functions between variables and PhaseStatus. + */ + inline PhaseStatus variableToPhase( unsigned variable ) const + { + return ( variable == MAX_PHASE_ELIMINATED ) + ? MAX_PHASE_ELIMINATED + : static_cast( variable + MAX_VARIABLE_TO_PHASE_OFFSET ); + } + + inline unsigned phaseToVariable( PhaseStatus phase ) const + { + return ( phase == MAX_PHASE_ELIMINATED ) + ? MAX_PHASE_ELIMINATED + : static_cast( phase ) - MAX_VARIABLE_TO_PHASE_OFFSET; + } + + private: unsigned _f; Set _elements; Set _initialElements; @@ -213,6 +257,11 @@ class MaxConstraint : public PiecewiseLinearConstraint Map _auxToElement; Map _elementToAux; + Map _elementToTableauAux; + Map> _elementToTighteningRow; + Set _eliminatedElements; + Set _proofEliminatedElements; + bool _obsolete; /* @@ -234,22 +283,6 @@ class MaxConstraint : public PiecewiseLinearConstraint */ PiecewiseLinearCaseSplit getSplit( unsigned argMax ) const; - /* - Conversion functions between variables and PhaseStatus. - */ - inline PhaseStatus variableToPhase( unsigned variable ) const - { - return ( variable == MAX_PHASE_ELIMINATED ) - ? MAX_PHASE_ELIMINATED - : static_cast( variable + MAX_VARIABLE_TO_PHASE_OFFSET ); - } - - inline unsigned phaseToVariable( PhaseStatus phase ) const - { - return ( phase == MAX_PHASE_ELIMINATED ) - ? MAX_PHASE_ELIMINATED - : static_cast( phase ) - MAX_VARIABLE_TO_PHASE_OFFSET; - } /* Eliminate the case corresponding to the given input variable to Max. @@ -260,6 +293,10 @@ class MaxConstraint : public PiecewiseLinearConstraint Return true iff f or the elements are not all within bounds. */ bool haveOutOfBoundVariables() const; + + void createElementTighteningRow( unsigned element ); + const List getNativeAuxVars() const override; + void addTableauAuxVar( unsigned tableauAuxVar, unsigned constraintAuxVar ) override; }; #endif // __MaxConstraint_h__ diff --git a/src/engine/PiecewiseLinearConstraint.cpp b/src/engine/PiecewiseLinearConstraint.cpp index a02d29e2b4..7ee5132043 100644 --- a/src/engine/PiecewiseLinearConstraint.cpp +++ b/src/engine/PiecewiseLinearConstraint.cpp @@ -29,7 +29,7 @@ PiecewiseLinearConstraint::PiecewiseLinearConstraint() , _score( FloatUtils::negativeInfinity() ) , _statistics( NULL ) , _gurobi( NULL ) - , _tableauAuxVar( 0 ) + , _tableauAuxVars() { } diff --git a/src/engine/PiecewiseLinearConstraint.h b/src/engine/PiecewiseLinearConstraint.h index 1bbe26accb..7fbbac1b37 100644 --- a/src/engine/PiecewiseLinearConstraint.h +++ b/src/engine/PiecewiseLinearConstraint.h @@ -453,11 +453,22 @@ class PiecewiseLinearConstraint : public ITableau::VariableWatcher return _cdInfeasibleCases; } - void setTableauAuxVar( unsigned var ) + /* + Add a variable to the list of aux vars designated in the Tableau + second argument is used for MaxConstraints + */ + virtual void addTableauAuxVar( unsigned tableauAuxVar, unsigned /*constraintAuxVar*/ ) { - _tableauAuxVar = var; + _tableauAuxVars.append( tableauAuxVar ); } + /* + Get the native auxiliary vars + */ + virtual const List getNativeAuxVars() const + { + return {}; + } protected: unsigned _numCases; // Number of possible cases/phases for this constraint // (e.g. 2 for ReLU, ABS, SIGN; >=2 for Max and Disjunction ) @@ -603,7 +614,7 @@ class PiecewiseLinearConstraint : public ITableau::VariableWatcher return _gurobi->getAssignment( Stringf( "x%u", variable ) ); } - unsigned _tableauAuxVar; + List _tableauAuxVars; }; diff --git a/src/engine/ReluConstraint.cpp b/src/engine/ReluConstraint.cpp index 09d59aeee9..ea17215256 100644 --- a/src/engine/ReluConstraint.cpp +++ b/src/engine/ReluConstraint.cpp @@ -172,7 +172,7 @@ void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) { // If we're in the active phase, aux should be 0 if ( proofs && _auxVarInUse ) - _boundManager->addLemmaExplanation( _aux, 0, UPPER, variable, LOWER, getType() ); + _boundManager->addLemmaExplanation( _aux, 0, UPPER, { variable }, LOWER, getType() ); else if ( !proofs && _auxVarInUse ) _boundManager->tightenUpperBound( _aux, 0 ); @@ -185,7 +185,7 @@ void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) else if ( _auxVarInUse && variable == _b && FloatUtils::isZero( bound ) ) { if ( proofs && _auxVarInUse ) - _boundManager->addLemmaExplanation( _aux, 0, UPPER, variable, LOWER, getType() ); + _boundManager->addLemmaExplanation( _aux, 0, UPPER, { variable }, LOWER, getType() ); else if ( !proofs && _auxVarInUse ) _boundManager->tightenUpperBound( _aux, 0 ); } @@ -195,7 +195,7 @@ void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) else if ( _auxVarInUse && variable == _aux && bound > 0 ) { if ( proofs ) - _boundManager->addLemmaExplanation( _f, 0, UPPER, variable, LOWER, getType() ); + _boundManager->addLemmaExplanation( _f, 0, UPPER, { variable }, LOWER, getType() ); else _boundManager->tightenUpperBound( _f, 0 ); @@ -212,7 +212,7 @@ void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) if ( _phaseStatus == RELU_PHASE_INACTIVE ) _boundManager->tightenUpperBound( _aux, -bound, *_tighteningRow ); else if ( _phaseStatus == PHASE_NOT_FIXED ) - _boundManager->addLemmaExplanation( _aux, -bound, UPPER, variable, LOWER, getType() ); + _boundManager->addLemmaExplanation( _aux, -bound, UPPER, { variable }, LOWER, getType() ); } else _boundManager->tightenUpperBound( _aux, -bound ); @@ -223,7 +223,7 @@ void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) else if ( bound < 0 && variable == _f ) { if ( proofs ) - _boundManager->addLemmaExplanation( _f, 0, LOWER, variable, LOWER, getType() ); + _boundManager->addLemmaExplanation( _f, 0, LOWER, { variable }, LOWER, getType() ); else _boundManager->tightenLowerBound( _f, 0 ); } @@ -267,7 +267,7 @@ void ReluConstraint::notifyUpperBound( unsigned variable, double newBound ) else { if ( FloatUtils::isZero( bound ) ) - _boundManager->addLemmaExplanation( _b, 0, UPPER, variable, UPPER, getType() ); + _boundManager->addLemmaExplanation( _b, 0, UPPER, { variable }, UPPER, getType() ); // Bound cannot be negative if ReLU is inactive else if ( FloatUtils::isNegative( bound ) ) throw InfeasibleQueryException(); @@ -283,7 +283,7 @@ void ReluConstraint::notifyUpperBound( unsigned variable, double newBound ) { // If b has a non-positive upper bound, f's upper bound is 0 if ( proofs ) - _boundManager->addLemmaExplanation( _f, 0, UPPER, variable, UPPER, getType() ); + _boundManager->addLemmaExplanation( _f, 0, UPPER, { variable }, UPPER, getType() ); else _boundManager->tightenUpperBound( _f, 0 ); @@ -301,7 +301,7 @@ void ReluConstraint::notifyUpperBound( unsigned variable, double newBound ) if ( _phaseStatus == RELU_PHASE_ACTIVE ) _boundManager->tightenUpperBound( _f, bound, *_tighteningRow ); else if ( _phaseStatus == PHASE_NOT_FIXED ) - _boundManager->addLemmaExplanation( _f, bound, UPPER, variable, UPPER, getType() ); + _boundManager->addLemmaExplanation( _f, bound, UPPER, { variable }, UPPER, getType() ); } else _boundManager->tightenUpperBound( _f, bound ); @@ -316,7 +316,7 @@ void ReluConstraint::notifyUpperBound( unsigned variable, double newBound ) else { if ( FloatUtils::isZero( bound ) ) - _boundManager->addLemmaExplanation( _b, 0, LOWER, variable, UPPER, getType() ); + _boundManager->addLemmaExplanation( _b, 0, LOWER, { variable }, UPPER, getType() ); // Bound cannot be negative if ReLU is active else if ( FloatUtils::isNegative( bound ) ) throw InfeasibleQueryException(); @@ -1044,7 +1044,7 @@ void ReluConstraint::updateScoreBasedOnPolarity() void ReluConstraint::createTighteningRow() { // Create the row only when needed and when not already created - if ( !_boundManager->getBoundExplainer() || _tighteningRow || !_auxVarInUse || !_tableauAuxVar ) + if ( !_boundManager->getBoundExplainer() || _tighteningRow || !_auxVarInUse || _tableauAuxVars.empty() ) return; _tighteningRow = std::unique_ptr( new TableauRow ( 3 ) ); @@ -1053,7 +1053,14 @@ void ReluConstraint::createTighteningRow() _tighteningRow->_lhs = _f; _tighteningRow->_row[0] = TableauRow::Entry( _b, 1 ); _tighteningRow->_row[1] = TableauRow::Entry( _aux, 1 ); - _tighteningRow->_row[2] = TableauRow::Entry( _tableauAuxVar, 1 ); + _tighteningRow->_row[2] = TableauRow::Entry( _tableauAuxVars.back(), 1 ); +} + +const List ReluConstraint::getNativeAuxVars() const +{ + if ( _auxVarInUse ) + return { _aux }; + return {}; } // diff --git a/src/engine/ReluConstraint.h b/src/engine/ReluConstraint.h index 4eede4cdd3..f7191de529 100644 --- a/src/engine/ReluConstraint.h +++ b/src/engine/ReluConstraint.h @@ -239,7 +239,7 @@ class ReluConstraint : public PiecewiseLinearConstraint void updateScoreBasedOnPolarity() override; - + const List getNativeAuxVars() const override; private: unsigned _b, _f; bool _auxVarInUse; diff --git a/src/engine/SignConstraint.cpp b/src/engine/SignConstraint.cpp index bf3d3492f1..efac927216 100644 --- a/src/engine/SignConstraint.cpp +++ b/src/engine/SignConstraint.cpp @@ -17,6 +17,7 @@ #include "Debug.h" #include "FloatUtils.h" #include "GlobalConfiguration.h" +#include "InfeasibleQueryException.h" #include "InputQuery.h" #include "ITableau.h" #include "MStringf.h" @@ -393,17 +394,36 @@ void SignConstraint::notifyLowerBound( unsigned variable, double bound ) if ( variable == _f && FloatUtils::gt( bound, -1 ) ) { setPhaseStatus( PhaseStatus::SIGN_PHASE_POSITIVE ); + + if ( _boundManager != nullptr ) { - _boundManager->tightenLowerBound( _f, 1 ); - _boundManager->tightenLowerBound( _b, 0 ); + if ( _boundManager->shouldProduceProofs() ) + { + // If lb of f is > 1, we have a contradiction + if ( FloatUtils::gt( bound, 1 ) ) + throw InfeasibleQueryException(); + + _boundManager->addLemmaExplanation( _f, 1, LOWER, { variable }, LOWER, getType() ); + _boundManager->addLemmaExplanation( _b, 0, LOWER, { variable }, LOWER, getType() ); + } + else + { + _boundManager->tightenLowerBound( _f, 1 ); + _boundManager->tightenLowerBound( _b, 0 ); + } } } else if ( variable == _b && !FloatUtils::isNegative( bound ) ) { setPhaseStatus( PhaseStatus::SIGN_PHASE_POSITIVE ); if ( _boundManager != nullptr ) - _boundManager->tightenLowerBound( _f, 1 ); + { + if ( _boundManager->shouldProduceProofs() ) + _boundManager->addLemmaExplanation( _f, 1, LOWER, { variable }, LOWER, getType() ); + else + _boundManager->tightenLowerBound( _f, 1 ); + } } } @@ -422,11 +442,25 @@ void SignConstraint::notifyUpperBound( unsigned variable, double bound ) if ( variable == _f && FloatUtils::lt( bound, 1 ) ) { + + setPhaseStatus( PhaseStatus::SIGN_PHASE_NEGATIVE ); if ( _boundManager != nullptr ) { - _boundManager->tightenUpperBound( _f, -1 ); - _boundManager->tightenUpperBound( _b, 0 ); + if ( _boundManager->shouldProduceProofs() ) + { + // If ub of f is < -1, we have a contradiction + if ( FloatUtils::lt( bound, -1 ) ) + throw InfeasibleQueryException(); + + _boundManager->addLemmaExplanation( _f, -1, UPPER, { variable }, UPPER, getType() ); + _boundManager->addLemmaExplanation( _b, 0, UPPER, { variable }, UPPER, getType() ); + } + else + { + _boundManager->tightenUpperBound( _f, -1 ); + _boundManager->tightenUpperBound( _b, 0 ); + } } } else if ( variable == _b && FloatUtils::isNegative( bound ) ) @@ -434,7 +468,10 @@ void SignConstraint::notifyUpperBound( unsigned variable, double bound ) setPhaseStatus( PhaseStatus::SIGN_PHASE_NEGATIVE ); if ( _boundManager != nullptr ) { - _boundManager->tightenUpperBound( _f, -1 ); + if ( _boundManager->shouldProduceProofs() ) + _boundManager->addLemmaExplanation( _f, -1, UPPER, { variable }, UPPER, getType() ); + else + _boundManager->tightenUpperBound( _f, -1 ); } } } diff --git a/src/engine/SmtCore.cpp b/src/engine/SmtCore.cpp index d8601f9e99..0bfdd8e02e 100644 --- a/src/engine/SmtCore.cpp +++ b/src/engine/SmtCore.cpp @@ -295,6 +295,11 @@ bool SmtCore::popSplit() _stack.popBack(); popContext(); + if ( _engine->shouldProduceProofs() && _engine->getUNSATCertificateCurrentPointer() ) + { + UnsatCertificateNode *certificateNode = _engine->getUNSATCertificateCurrentPointer(); + _engine->setUNSATCertificateCurrentPointer( certificateNode->getParent() ); + } if ( _stack.empty() ) return false; @@ -329,6 +334,12 @@ bool SmtCore::popSplit() UnsatCertificateNode *certificateNode = _engine->getUNSATCertificateCurrentPointer(); ASSERT( certificateNode ); UnsatCertificateNode *splitChild = certificateNode->getChildBySplit( *split ); + while ( !splitChild ) + { + certificateNode = certificateNode->getParent(); + ASSERT( certificateNode ); + splitChild = certificateNode->getChildBySplit( *split ); + } ASSERT( splitChild ); _engine->setUNSATCertificateCurrentPointer( splitChild ); ASSERT( _engine->getUNSATCertificateCurrentPointer()->getSplit() == *split ); diff --git a/src/engine/T/TableauFactory.h b/src/engine/T/TableauFactory.h index bb5e353e76..ef3d8e017f 100644 --- a/src/engine/T/TableauFactory.h +++ b/src/engine/T/TableauFactory.h @@ -16,11 +16,10 @@ #ifndef __T__TableauFactory_h__ #define __T__TableauFactory_h__ -#include "IBoundManager.h" - #include "cxxtest/Mock.h" class ITableau; +class IBoundManager; class ISelector; namespace T diff --git a/src/engine/TableauState.cpp b/src/engine/TableauState.cpp index 4d9dab95d4..fdaeb2b670 100644 --- a/src/engine/TableauState.cpp +++ b/src/engine/TableauState.cpp @@ -205,17 +205,7 @@ void TableauState::setDimensions( unsigned m, unsigned n, const IBasisFactorizat _basisFactorization = BasisFactorizationFactory::createBasisFactorization( m, oracle ); if ( !_basisFactorization ) throw MarabouError( MarabouError::ALLOCATION_FAILED, "TableauState::basisFactorization" ); -} -void TableauState::initializeBounds( unsigned n ) -{ - _lowerBounds = new double[n]; - if ( !_lowerBounds ) - throw MarabouError( MarabouError::ALLOCATION_FAILED, "TableauState::lowerBounds" ); - - _upperBounds = new double[n]; - if ( !_upperBounds ) - throw MarabouError( MarabouError::ALLOCATION_FAILED, "TableauState::upperBounds" ); } // diff --git a/src/engine/TableauState.h b/src/engine/TableauState.h index d54d3e4fdf..a83ff6b6ed 100644 --- a/src/engine/TableauState.h +++ b/src/engine/TableauState.h @@ -43,11 +43,6 @@ class TableauState void setDimensions( unsigned m, unsigned n, const IBasisFactorization::BasisColumnOracle &oracle ); - /* - Just create the bounds array. - */ - void initializeBounds( unsigned n ); - /* The dimensions of matrix A */ diff --git a/src/engine/tests/MockBoundManager.h b/src/engine/tests/MockBoundManager.h index a470283371..c9b22941d9 100644 --- a/src/engine/tests/MockBoundManager.h +++ b/src/engine/tests/MockBoundManager.h @@ -266,7 +266,7 @@ class MockBoundManager : public IBoundManager } bool addLemmaExplanation( unsigned /* var */, double /* value */, BoundType /* affectedVarBound */, - unsigned /* causingVar */, BoundType /* causingVarBound */, + const List &/* causingVar */, BoundType /* causingVarBound */, PiecewiseLinearFunctionType /* constraintType */ ) { return true; @@ -283,7 +283,7 @@ class MockBoundManager : public IBoundManager bool shouldProduceProofs() const { - return true; + return false; } }; diff --git a/src/engine/tests/Test_SmtCore.h b/src/engine/tests/Test_SmtCore.h index 51a9f4404e..6a03bc3d76 100644 --- a/src/engine/tests/Test_SmtCore.h +++ b/src/engine/tests/Test_SmtCore.h @@ -169,6 +169,10 @@ class SmtCoreTestSuite : public CxxTest::TestSuite { return ""; } + + void initTighteningRow( const unsigned /*counterpart*/ ) + { + } }; void setUp() diff --git a/src/proofs/CMakeLists.txt b/src/proofs/CMakeLists.txt index ad7aca42d1..5ff7fc58e1 100644 --- a/src/proofs/CMakeLists.txt +++ b/src/proofs/CMakeLists.txt @@ -22,4 +22,4 @@ proofs_add_unit_test(UnsatCertificateUtils) if (${BUILD_PYTHON}) target_include_directories(${MARABOU_PY} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") -endif() +endif() \ No newline at end of file diff --git a/src/proofs/Checker.cpp b/src/proofs/Checker.cpp index fb0262b0ee..e4130017e3 100644 --- a/src/proofs/Checker.cpp +++ b/src/proofs/Checker.cpp @@ -87,9 +87,7 @@ bool Checker::checkNode( const UnsatCertificateNode *node ) for ( const auto &child : node->getChildren() ) childrenSplits.append( child->getSplit() ); - auto *childrenSplitConstraint = getCorrespondingReLUConstraint( childrenSplits ); - - ASSERT( !childrenSplitConstraint || childrenSplitConstraint->getType() == RELU ); + PiecewiseLinearConstraint *childrenSplitConstraint = getCorrespondingConstraint( childrenSplits ); if ( !checkSingleVarSplits( childrenSplits ) && !childrenSplitConstraint ) return false; @@ -99,13 +97,43 @@ bool Checker::checkNode( const UnsatCertificateNode *node ) // Fix the phase of the constraint corresponding to the children if ( childrenSplitConstraint && childrenSplitConstraint->getType() == PiecewiseLinearFunctionType::RELU ) { - auto tightenings = child->getSplit().getBoundTightenings(); + List tightenings = child->getSplit().getBoundTightenings(); if ( tightenings.front()._type == Tightening::LB || tightenings.back()._type == Tightening::LB ) childrenSplitConstraint->setPhaseStatus( RELU_PHASE_ACTIVE ); else childrenSplitConstraint->setPhaseStatus( RELU_PHASE_INACTIVE ); } + else if ( childrenSplitConstraint && childrenSplitConstraint->getType() == PiecewiseLinearFunctionType::SIGN ) + { + List tightenings = child->getSplit().getBoundTightenings(); + if ( tightenings.front()._type == Tightening::LB ) + childrenSplitConstraint->setPhaseStatus( SIGN_PHASE_POSITIVE ); + else + childrenSplitConstraint->setPhaseStatus( SIGN_PHASE_NEGATIVE ); + } + else if ( childrenSplitConstraint && childrenSplitConstraint->getType() == PiecewiseLinearFunctionType::ABSOLUTE_VALUE ) + { + List tightenings = child->getSplit().getBoundTightenings(); + if ( tightenings.front()._type == Tightening::LB ) + childrenSplitConstraint->setPhaseStatus( ABS_PHASE_POSITIVE ); + else + childrenSplitConstraint->setPhaseStatus( ABS_PHASE_NEGATIVE ); + } + else if ( childrenSplitConstraint && childrenSplitConstraint->getType() == PiecewiseLinearFunctionType::MAX ) + { + List tightenings = child->getSplit().getBoundTightenings(); + if ( tightenings.size() == 2 ) + childrenSplitConstraint->setPhaseStatus( MAX_PHASE_ELIMINATED ); + else + { + PhaseStatus phase = ( ( MaxConstraint * )childrenSplitConstraint )->variableToPhase( tightenings.back()._variable ); + childrenSplitConstraint->setPhaseStatus( phase ); + } + } + else if ( childrenSplitConstraint && childrenSplitConstraint->getType() == PiecewiseLinearFunctionType::DISJUNCTION ) + ( ( DisjunctionConstraint * )childrenSplitConstraint )->removeFeasibleDisjunct( child->getSplit() ); + if ( !checkNode( child ) ) answer = false; } @@ -114,11 +142,17 @@ bool Checker::checkNode( const UnsatCertificateNode *node ) if ( childrenSplitConstraint ) childrenSplitConstraint->setPhaseStatus( PHASE_NOT_FIXED ); + if ( childrenSplitConstraint && childrenSplitConstraint->getType() == PiecewiseLinearFunctionType::DISJUNCTION ) + { + for ( const auto &child : node->getChildren() ) + ( ( DisjunctionConstraint * )childrenSplitConstraint )->addFeasibleDisjunct( child->getSplit() ); + } + // Revert only bounds that where changed during checking the current node - for ( unsigned i : _upperBoundChanges.top() ) + for ( const auto &i : _upperBoundChanges.top() ) _groundUpperBounds[i] = groundUpperBoundsBackup[i]; - for ( unsigned i : _lowerBoundChanges.top() ) + for ( const auto &i : _lowerBoundChanges.top() ) _groundLowerBounds[i] = groundLowerBoundsBackup[i]; _upperBoundChanges.pop(); @@ -147,105 +181,60 @@ bool Checker::checkAllPLCExplanations( const UnsatCertificateNode *node, double { // Create copies of the gb, check for their validity, and pass these changes to all the children // Assuming the splits of the children are ok. - // NOTE, this will change as PLCExplanation will - for ( const auto &plcExplanation : node->getPLCExplanations() ) + // NOTE, this will change as PLCLemma will + for ( const auto &plcLemma : node->getPLCLemmas() ) { - bool constraintMatched = false; - bool tighteningMatched = false; - auto explanationVector = Vector( 0, 0 ); - List constraintVars; - - unsigned causingVar = plcExplanation->getCausingVar(); - unsigned affectedVar = plcExplanation->getAffectedVar(); - double bound = plcExplanation->getBound(); - const double *explanation = plcExplanation->getExplanation(); - BoundType causingVarBound = plcExplanation->getCausingVarBound(); - BoundType affectedVarBound = plcExplanation->getAffectedVarBound(); - PiecewiseLinearFunctionType constraintType = plcExplanation->getConstraintType(); - - double explainedBound = UNSATCertificateUtils::computeBound( causingVar, causingVarBound == UPPER, explanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); - unsigned b = 0; - unsigned f = 0; - unsigned aux = 0; + PiecewiseLinearConstraint *matchedConstraint = NULL; + BoundType affectedVarBound = plcLemma->getAffectedVarBound(); + double explainedBound = affectedVarBound == UPPER ? FloatUtils::infinity() : FloatUtils::negativeInfinity(); + const List causingVars = plcLemma->getCausingVars(); + unsigned affectedVar = plcLemma->getAffectedVar(); + List participatingVars; // Make sure propagation was made by a problem constraint for ( const auto &constraint : _problemConstraints ) { - constraintVars = constraint->getParticipatingVariables(); - if ( constraintType == PiecewiseLinearFunctionType::RELU && constraintVars.exists( affectedVar ) && constraintVars.exists( causingVar ) ) + if ( constraint->getType() != plcLemma->getConstraintType() ) + continue; + + participatingVars = constraint->getParticipatingVariables(); + if ( constraint->getType() == MAX ) { - Vector conVec( constraintVars.begin(), constraintVars.end() ); - b = conVec[0]; - f = conVec[1]; - aux = conVec[2]; - constraintMatched = true; - - // If explanation is phase fixing, mark it - if ( ( affectedVarBound == LOWER && affectedVar == f && FloatUtils::isPositive( bound ) ) || ( affectedVarBound == UPPER && affectedVar == aux && FloatUtils::isZero( bound ) ) ) - constraint->setPhaseStatus( RELU_PHASE_ACTIVE ); - else if ( ( affectedVarBound == LOWER && affectedVar == aux && FloatUtils::isPositive( bound ) ) || ( affectedVarBound == UPPER && affectedVar == f && FloatUtils::isZero( bound ) ) ) - constraint->setPhaseStatus( RELU_PHASE_INACTIVE ); + MaxConstraint *maxConstraint = ( MaxConstraint * ) constraint; + for ( auto const &element : maxConstraint->getEliminatedElements() ) + { + participatingVars.append( element ); + participatingVars.append( maxConstraint->getAuxToElement( element ) ); + } } - } - if ( !constraintMatched ) - return false; + if ( participatingVars.exists( affectedVar ) ) + matchedConstraint = constraint; + } - if ( causingVar != b && causingVar != f && causingVar != aux ) + if ( !matchedConstraint ) return false; - // Make sure the explanation is explained using a ReLU bound tightening. Cases are matching each rule in ReluConstraint.cpp - // We allow explained bound to be tighter than the ones recorded (since an explanation can explain tighter bounds), and an epsilon sized error is tolerated. - - // If lb of b is non negative, then ub of aux is 0 - if ( causingVar == b && causingVarBound == LOWER && affectedVar == aux && affectedVarBound == UPPER && FloatUtils::isZero( bound ) && !FloatUtils::isNegative( explainedBound + epsilon ) ) - tighteningMatched = true; - - // If lb of f is positive, then ub if aux is 0 - else if ( causingVar == f && causingVarBound == LOWER && affectedVar == aux && affectedVarBound == UPPER && FloatUtils::isZero( bound ) && FloatUtils::isPositive( explainedBound + epsilon ) ) - tighteningMatched = true; - - // If lb of b is positive x, then ub of aux is -x - else if ( causingVar == b && causingVarBound == LOWER && affectedVar == aux &&affectedVarBound == UPPER && FloatUtils::gte(explainedBound, - bound - epsilon ) && bound > 0 ) - tighteningMatched = true; - - // If lb of aux is positive, then ub of f is 0 - else if ( causingVar == aux && causingVarBound ==LOWER && affectedVar == f && affectedVarBound == UPPER && FloatUtils::isZero( bound ) && FloatUtils::isPositive( explainedBound + epsilon ) ) - tighteningMatched = true; - - // If lb of f is negative, then it is 0 - else if ( causingVar == f && causingVarBound == LOWER && affectedVar == f && affectedVarBound == LOWER && FloatUtils::isZero( bound ) && FloatUtils::isNegative( explainedBound - epsilon ) ) - tighteningMatched = true; - - // Propagate ub from f to b - else if ( causingVar == f && causingVarBound == UPPER && affectedVar == b && affectedVarBound == UPPER && FloatUtils::lte( explainedBound, bound + epsilon ) ) - tighteningMatched = true; - - // If ub of b is non positive, then ub of f is 0 - else if ( causingVar == b && causingVarBound == UPPER && affectedVar == f && affectedVarBound == UPPER && FloatUtils::isZero( bound ) && !FloatUtils::isPositive( explainedBound - epsilon ) ) - tighteningMatched = true; - - // If ub of b is non positive x, then lb of aux is -x - else if ( causingVar == b && causingVarBound == UPPER && affectedVar == aux && affectedVarBound == LOWER && bound > 0 && !FloatUtils::isPositive( explainedBound - epsilon ) && FloatUtils::lte( explainedBound, -bound + epsilon) ) - tighteningMatched = true; - - // If ub of b is positive, then propagate to f ( positivity of explained bound is not checked since negative explained ub can always explain positive bound ) - else if ( causingVar == b && causingVarBound == UPPER && affectedVar == f && affectedVarBound == UPPER && FloatUtils::isPositive( bound ) && FloatUtils::lte( explainedBound, bound + epsilon ) ) - tighteningMatched = true; - - // If ub of aux is x, then lb of b is -x - else if ( causingVar == aux && causingVarBound == UPPER && affectedVar == b && affectedVarBound == LOWER && FloatUtils::lte( explainedBound, -bound + epsilon ) ) - tighteningMatched = true; - - if ( !tighteningMatched ) + PiecewiseLinearFunctionType constraintType = matchedConstraint->getType(); + + if ( constraintType == RELU ) + explainedBound = checkReluLemma( *plcLemma, *matchedConstraint, epsilon ); + else if ( constraintType == SIGN ) + explainedBound = checkSignLemma( *plcLemma, *matchedConstraint, epsilon ); + else if ( constraintType == ABSOLUTE_VALUE ) + explainedBound = checkAbsLemma( *plcLemma, *matchedConstraint, epsilon ); + else if ( constraintType == MAX ) + explainedBound = checkMaxLemma( *plcLemma, *matchedConstraint ); + else return false; // If so, update the ground bounds and continue + auto &temp = affectedVarBound == UPPER ? _groundUpperBounds : _groundLowerBounds; - bool isTighter = affectedVarBound ? FloatUtils::lt( bound, temp[affectedVar] ) : FloatUtils::gt( bound, temp[affectedVar] ); + bool isTighter = affectedVarBound == UPPER ? FloatUtils::lt( explainedBound, temp[affectedVar] ) : FloatUtils::gt( explainedBound, temp[affectedVar] ); if ( isTighter ) { - temp[affectedVar] = bound; + temp[affectedVar] = explainedBound; ASSERT( !_upperBoundChanges.empty() && !_lowerBoundChanges.empty() ); affectedVarBound == UPPER ? _upperBoundChanges.top().insert( affectedVar ) : _lowerBoundChanges.top().insert( affectedVar ); } @@ -258,40 +247,19 @@ double Checker::explainBound( unsigned var, bool isUpper, const double *explanat return UNSATCertificateUtils::computeBound( var, isUpper, explanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); } -PiecewiseLinearConstraint *Checker::getCorrespondingReLUConstraint( const List &splits ) +PiecewiseLinearConstraint *Checker::getCorrespondingConstraint( const List &splits ) { - if ( splits.size() != 2 ) - return NULL; - - auto firstSplitTightenings = splits.front().getBoundTightenings(); - auto secondSplitTightenings = splits.back().getBoundTightenings(); - - // Find the LB tightening, its var is b - auto &activeSplit = firstSplitTightenings.front()._type == Tightening::LB ? firstSplitTightenings : secondSplitTightenings; - auto &inactiveSplit = firstSplitTightenings.front()._type == Tightening::LB ? secondSplitTightenings : firstSplitTightenings; - - unsigned b = activeSplit.front()._variable; - unsigned aux = activeSplit.back()._variable; - unsigned f = inactiveSplit.back()._variable; - - // Aux var may or may not be used - if ( ( activeSplit.size() != 2 && activeSplit.size() != 1 ) || inactiveSplit.size() != 2 ) - return NULL; - - if ( FloatUtils::areDisequal( inactiveSplit.back()._value, 0.0 ) || FloatUtils::areDisequal( inactiveSplit.front()._value, 0.0 ) || FloatUtils::areDisequal( activeSplit.back()._value, 0.0 ) || FloatUtils::areDisequal( activeSplit.front()._value, 0.0 ) ) - return NULL; - - // Check that f = b + aux corresponds to a problem constraints - PiecewiseLinearConstraint *correspondingConstraint = NULL; - for ( auto &constraint : _problemConstraints ) - { - auto constraintVars = constraint->getParticipatingVariables(); - if ( constraint->getType() == PiecewiseLinearFunctionType::RELU && constraintVars.front() == b && constraintVars.exists( f ) && ( activeSplit.size() == 1 || constraintVars.back() == aux ) ) - correspondingConstraint = constraint; - } - - // Return the constraint for which f=relu(b) - return correspondingConstraint; + PiecewiseLinearConstraint *constraint = getCorrespondingReluConstraint( splits ); + if ( !constraint ) + constraint = getCorrespondingSignConstraint( splits ); + if ( !constraint ) + constraint = getCorrespondingAbsConstraint( splits ); + if ( !constraint ) + constraint = getCorrespondingMaxConstraint( splits ); + if ( !constraint ) + constraint = getCorrespondingDisjunctionConstraint( splits ); + + return constraint; } void Checker::writeToFile() @@ -311,19 +279,59 @@ void Checker::writeToFile() for ( unsigned i = 0; i < m; ++i ) { + tableauRow = SparseUnsortedList(); _initialTableau->getRow( i, &tableauRow ); - SmtLibWriter::addTableauRow( tableauRow , leafInstance ); + + // Fix correct size + if ( !tableauRow.getSize() && !tableauRow.empty() ) + for ( auto it = tableauRow.begin(); it != tableauRow.end(); ++it ) + tableauRow.incrementSize(); + + SmtLibWriter::addTableauRow( tableauRow , leafInstance ); } for ( auto &constraint : _problemConstraints ) - if ( constraint->getType() == PiecewiseLinearFunctionType::RELU ) + { + auto vars = constraint->getParticipatingVariables(); + if ( constraint->getType() == RELU ) { - auto vars = constraint->getParticipatingVariables(); b = vars.front(); vars.popBack(); f = vars.back(); SmtLibWriter::addReLUConstraint( b, f, constraint->getPhaseStatus(), leafInstance ); } + else if ( constraint->getType() == SIGN ) + { + b = vars.front(); + f = vars.back(); + SmtLibWriter::addSignConstraint( b, f, constraint->getPhaseStatus(), leafInstance ); + } + else if ( constraint->getType() == ABSOLUTE_VALUE ) + { + b = vars.front(); + f = vars.back(); + SmtLibWriter::addAbsConstraint( b, f, constraint->getPhaseStatus(), leafInstance ); + } + else if ( constraint->getType() == MAX ) + { + MaxConstraint *maxConstraint = ( MaxConstraint * ) constraint; + + Set elements = maxConstraint->getParticipatingElements(); + double info = 0; + + if ( constraint->getPhaseStatus() == MAX_PHASE_ELIMINATED ) + info = maxConstraint->getMaxValueOfEliminatedPhases(); + else if ( constraint->phaseFixed() ) + info = maxConstraint->phaseToVariable( constraint->getPhaseStatus() ); + else + for ( const auto &element : maxConstraint->getParticipatingVariables() ) + elements.erase( element ); + + SmtLibWriter::addMaxConstraint( constraint->getParticipatingVariables().back(), elements, constraint->getPhaseStatus(), info ,leafInstance ); + } + else if ( constraint->getType() == DISJUNCTION ) + SmtLibWriter::addDisjunctionConstraint( ( ( DisjunctionConstraint * )constraint )->getFeasibleDisjuncts(), leafInstance ); + } SmtLibWriter::addFooter( leafInstance ); File file ( "delegated" + std::to_string( _delegationCounter ) + ".smtlib" ); @@ -360,3 +368,427 @@ bool Checker::checkSingleVarSplits( const List &splits return true; } + +PiecewiseLinearConstraint *Checker::getCorrespondingReluConstraint( const List &splits ) +{ + if ( splits.size() != 2 ) + return NULL; + + auto firstSplitTightenings = splits.front().getBoundTightenings(); + auto secondSplitTightenings = splits.back().getBoundTightenings(); + + // Find the LB tightening, its var is b + auto &activeSplit = firstSplitTightenings.front()._type == Tightening::LB ? firstSplitTightenings : secondSplitTightenings; + auto &inactiveSplit = firstSplitTightenings.front()._type == Tightening::LB ? secondSplitTightenings : firstSplitTightenings; + + unsigned b = activeSplit.front()._variable; + unsigned aux = activeSplit.back()._variable; + unsigned f = inactiveSplit.back()._variable; + + // Aux var may or may not be used + if ( ( activeSplit.size() != 2 && activeSplit.size() != 1 ) || inactiveSplit.size() != 2 ) + return NULL; + + if ( FloatUtils::areDisequal( inactiveSplit.back()._value, 0.0 ) || FloatUtils::areDisequal( inactiveSplit.front()._value, 0.0 ) || FloatUtils::areDisequal( activeSplit.back()._value, 0.0 ) || FloatUtils::areDisequal( activeSplit.front()._value, 0.0 ) ) + return NULL; + + // Check that f = b + aux corresponds to a problem constraints + PiecewiseLinearConstraint *correspondingConstraint = NULL; + for ( auto &constraint : _problemConstraints ) + { + auto constraintVars = constraint->getParticipatingVariables(); + if ( constraint->getType() == PiecewiseLinearFunctionType::RELU && constraintVars.front() == b && constraintVars.exists( f ) && ( activeSplit.size() == 1 || constraintVars.back() == aux ) ) + correspondingConstraint = constraint; + } + + // Return the constraint for which f=relu(b) + return correspondingConstraint; +} + +PiecewiseLinearConstraint *Checker::getCorrespondingSignConstraint( const List &splits ) +{ + if ( splits.size() != 2 ) + return NULL; + + auto firstSplitTightenings = splits.front().getBoundTightenings(); + auto secondSplitTightenings = splits.back().getBoundTightenings(); + + // Find an LB tightening, it marks the positive split + auto &positiveSplit = firstSplitTightenings.front()._type == Tightening::LB ? firstSplitTightenings : secondSplitTightenings; + auto &negativeSplit = firstSplitTightenings.front()._type == Tightening::LB ? secondSplitTightenings : firstSplitTightenings; + + unsigned b = positiveSplit.back()._variable; + unsigned f = positiveSplit.front()._variable; + + // Check details of both constraints - value and types + if ( positiveSplit.size() != 2 || negativeSplit.size() != 2 || positiveSplit.back()._type != Tightening::LB || positiveSplit.front()._type != Tightening::LB || negativeSplit.back()._type != Tightening::UB || negativeSplit.front()._type != Tightening::UB ) + return NULL; + + if ( FloatUtils::areDisequal( negativeSplit.back()._value, -1.0 ) || FloatUtils::areDisequal( negativeSplit.front()._value, 0.0 ) || FloatUtils::areDisequal(positiveSplit.back()._value, 1.0 ) || FloatUtils::areDisequal( positiveSplit.front()._value, 0.0 )) + return NULL; + + // Check that f=sign(b) corresponds to a problem constraints + PiecewiseLinearConstraint *correspondingConstraint = NULL; + for ( auto &constraint : _problemConstraints ) + { + auto constraintVars = constraint->getParticipatingVariables(); + if ( constraint->getType() == PiecewiseLinearFunctionType::SIGN && constraintVars.back() == b && constraintVars.front() == f ) + correspondingConstraint = constraint; + } + + // Return the constraint for which f=sign(b) + return correspondingConstraint; +} + +PiecewiseLinearConstraint *Checker::getCorrespondingAbsConstraint( const List &splits ) +{ + if ( splits.size() != 2 ) + return NULL; + + auto firstSplitTightenings = splits.front().getBoundTightenings(); + auto secondSplitTightenings = splits.back().getBoundTightenings(); + + // Find an LB tightening, it marks the positive split + auto &positiveSplit = firstSplitTightenings.front()._type == Tightening::LB ? firstSplitTightenings : secondSplitTightenings; + auto &negativeSplit = firstSplitTightenings.front()._type == Tightening::LB ? secondSplitTightenings : firstSplitTightenings; + + unsigned b = positiveSplit.front()._variable; + unsigned posAux = positiveSplit.back()._variable; + + unsigned negAux = negativeSplit.back()._variable; + // Check details of both constraints - value and types + if ( positiveSplit.size() != 2 || negativeSplit.size() != 2 || positiveSplit.back()._type != Tightening::UB || positiveSplit.front()._type != Tightening::LB || negativeSplit.back()._type != Tightening::UB || negativeSplit.front()._type != Tightening::UB ) + return NULL; + + if ( FloatUtils::areDisequal( negativeSplit.back()._value, 0.0 ) || FloatUtils::areDisequal( negativeSplit.front()._value, 0.0 ) || FloatUtils::areDisequal(positiveSplit.back()._value, 0.0 ) || FloatUtils::areDisequal( positiveSplit.front()._value, 0.0 )) + return NULL; + + // Check that f=sign(b) corresponds to a problem constraints + PiecewiseLinearConstraint *correspondingConstraint = NULL; + for ( auto &constraint : _problemConstraints ) + { + auto constraintVars = constraint->getParticipatingVariables(); + if ( constraint->getType() == PiecewiseLinearFunctionType::ABSOLUTE_VALUE && constraintVars.front() == b && constraintVars.back() == negAux && constraintVars.exists( posAux ) ) + correspondingConstraint = constraint; + } + + // Return the constraint for which f=abs(b) + return correspondingConstraint; +} + +PiecewiseLinearConstraint *Checker::getCorrespondingMaxConstraint( const List &splits ) +{ + for ( auto &constraint : _problemConstraints ) + { + if ( constraint->getType() != MAX ) + continue; + + bool constraintMatched = true; + + // When checking, it is possible that the problem constraints already eliminated elements that appear in the proof + List constraintSplits = constraint->getCaseSplits(); + MaxConstraint *maxConstraint = ( MaxConstraint * ) constraint; + for ( auto const &element : maxConstraint->getEliminatedElements() ) + { + PiecewiseLinearCaseSplit eliminatedElementCaseSplit; + eliminatedElementCaseSplit.storeBoundTightening( Tightening( element, 0, Tightening::UB ) ); + constraintSplits.append( eliminatedElementCaseSplit ); + } + + for ( const auto &split : splits ) + if ( !constraintSplits.exists( split ) ) + constraintMatched = false; + + // Case corresponding to MAX_PHASE_ELIMINATED + if ( splits.size() == 2 && splits.back().getBoundTightenings().size() == 1 && splits.front().getBoundTightenings().size() == 1 && splits.back().getBoundTightenings().back()._variable == splits.front().getBoundTightenings().back()._variable && splits.back().getBoundTightenings().back()._variable == maxConstraint->getF() && splits.back().getBoundTightenings().back()._type != splits.front().getBoundTightenings().back()._type ) + return constraint; + + if ( constraintMatched ) + return constraint; + } + return NULL; +} + +PiecewiseLinearConstraint *Checker::getCorrespondingDisjunctionConstraint( const List & splits ) +{ + for ( auto &constraint : _problemConstraints ) + { + if ( constraint->getType() != DISJUNCTION ) + continue; + + bool constraintMatched = true; + + // constraintMatched will remain true iff the splits list is the same as the list of disjuncts (up to order) + for ( const auto &split : constraint->getCaseSplits() ) + if ( !splits.exists( split ) ) + constraintMatched = false; + + for ( const auto &split : splits ) + if ( !constraint->getCaseSplits().exists( split ) ) + constraintMatched = false; + + if ( constraintMatched ) + return constraint; + } + return NULL; +} + +double Checker::checkReluLemma( const PLCLemma &expl, PiecewiseLinearConstraint &constraint, double epsilon ) +{ + ASSERT( constraint.getType() == RELU && expl.getConstraintType() == RELU && epsilon > 0 ); + ASSERT( expl.getCausingVars().size() == 1 ); + + unsigned causingVar = expl.getCausingVars().front(); + unsigned affectedVar = expl.getAffectedVar(); + double bound = expl.getBound(); + const double *explanation = expl.getExplanations(); + BoundType causingVarBound = expl.getCausingVarBound(); + BoundType affectedVarBound = expl.getAffectedVarBound(); + + double explainedBound = UNSATCertificateUtils::computeBound( causingVar, causingVarBound == UPPER, explanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); + + List constraintVars = constraint.getParticipatingVariables(); + ASSERT(constraintVars.size() == 3 ); + + Vector conVec( constraintVars.begin(), constraintVars.end() ); + unsigned b = conVec[0]; + unsigned f = conVec[1]; + unsigned aux = conVec[2]; + + // If explanation is phase fixing, mark it + if ( ( affectedVarBound == LOWER && affectedVar == f && FloatUtils::isPositive( bound ) ) || ( affectedVarBound == UPPER && affectedVar == aux && FloatUtils::isZero( bound ) ) ) + constraint.setPhaseStatus( RELU_PHASE_ACTIVE ); + else if ( ( affectedVarBound == LOWER && affectedVar == aux && FloatUtils::isPositive( bound ) ) || ( affectedVarBound == UPPER && affectedVar == f && FloatUtils::isZero( bound ) ) ) + constraint.setPhaseStatus( RELU_PHASE_INACTIVE ); + + // Make sure the explanation is explained using a ReLU bound tightening. Cases are matching each rule in ReluConstraint.cpp + // We allow explained bound to be tighter than the ones recorded (since an explanation can explain tighter bounds), and an epsilon sized error is tolerated. + + // If lb of b is non negative, then ub of aux is 0 + if ( causingVar == b && causingVarBound == LOWER && affectedVar == aux && affectedVarBound == UPPER && !FloatUtils::isNegative( explainedBound + epsilon ) ) + return 0; + + // If lb of f is positive, then ub if aux is 0 + else if ( causingVar == f && causingVarBound == LOWER && affectedVar == aux && affectedVarBound == UPPER && FloatUtils::isPositive( explainedBound + epsilon ) ) + return 0; + + // If lb of b is negative x, then ub of aux is -x + else if ( causingVar == b && causingVarBound == LOWER && affectedVar == aux && affectedVarBound == UPPER && FloatUtils::isNegative( explainedBound - epsilon ) ) + return -explainedBound; + + // If lb of aux is positive, then ub of f is 0 + else if ( causingVar == aux && causingVarBound == LOWER && affectedVar == f && affectedVarBound == UPPER && FloatUtils::isPositive( explainedBound + epsilon ) ) + return 0; + + // If lb of f is negative, then it is 0 + else if ( causingVar == f && causingVarBound == LOWER && affectedVar == f && affectedVarBound == LOWER && FloatUtils::isNegative( explainedBound - epsilon ) ) + return 0; + + // Propagate ub from f to b + else if ( causingVar == f && causingVarBound == UPPER && affectedVar == b && affectedVarBound == UPPER ) + return explainedBound; + + // If ub of b is non positive, then ub of f is 0 + else if ( causingVar == b && causingVarBound == UPPER && affectedVar == f && affectedVarBound == UPPER && !FloatUtils::isPositive( explainedBound - epsilon ) ) + return 0; + + // If ub of b is non positive x, then lb of aux is -x + else if ( causingVar == b && causingVarBound == UPPER && affectedVar == aux && affectedVarBound == LOWER && !FloatUtils::isPositive( explainedBound - epsilon ) ) + return -explainedBound; + + // If ub of b is positive, then propagate to f ( positivity of explained bound is not checked since negative explained ub can always explain positive bound ) + else if ( causingVar == b && causingVarBound == UPPER && affectedVar == f && affectedVarBound == UPPER && FloatUtils::isPositive( explainedBound + epsilon ) ) + return explainedBound; + + // If ub of aux is x, then lb of b is -x + else if ( causingVar == aux && causingVarBound == UPPER && affectedVar == b && affectedVarBound == LOWER ) + return -explainedBound; + + return affectedVarBound == UPPER ? FloatUtils::infinity() : FloatUtils::negativeInfinity(); +} + +double Checker::checkSignLemma( const PLCLemma &expl, PiecewiseLinearConstraint &constraint, double epsilon ) +{ + ASSERT( constraint.getType() == SIGN && expl.getConstraintType() == SIGN && epsilon > 0 ); + ASSERT( expl.getCausingVars().size() == 1 ); + + unsigned causingVar = expl.getCausingVars().front(); + unsigned affectedVar = expl.getAffectedVar(); + double bound = expl.getBound(); + const double *explanation = expl.getExplanations(); + BoundType causingVarBound = expl.getCausingVarBound(); + BoundType affectedVarBound = expl.getAffectedVarBound(); + + double explainedBound = UNSATCertificateUtils::computeBound( causingVar, causingVarBound == UPPER, explanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); + List constraintVars = constraint.getParticipatingVariables(); + ASSERT(constraintVars.size() == 2 ); + + unsigned b = constraintVars.front(); + unsigned f = constraintVars.back(); + + // Any explanation is phase fixing + if ( ( affectedVarBound == LOWER && affectedVar == f && FloatUtils::gt( bound, -1 ) ) || ( affectedVarBound == LOWER && affectedVar == b && !FloatUtils::isNegative( bound ) ) ) + constraint.setPhaseStatus( SIGN_PHASE_POSITIVE ); + else if ( ( affectedVarBound == UPPER && affectedVar == f && FloatUtils::gt( bound, 1 ) ) || ( affectedVarBound == UPPER && affectedVar == b && FloatUtils::isNegative( bound ) ) ) + constraint.setPhaseStatus( SIGN_PHASE_NEGATIVE ); + + // Make sure the explanation is explained using a sign bound tightening. Cases are matching each rule in SignConstraint.cpp + // We allow explained bound to be tighter than the ones recorded (since an explanation can explain tighter bounds), and an epsilon sized error is tolerated. + + // If lb of f is > -1, then lb of f is 1 + if ( causingVar == f && causingVarBound == LOWER && affectedVar == f && affectedVarBound == LOWER && FloatUtils::areEqual( bound, 1 ) && FloatUtils::gte( explainedBound + epsilon, -1 ) ) + return 1; + + // If lb of f is > -1, then lb of b is 0 + else if ( causingVar == f && causingVarBound == LOWER && affectedVar == b && affectedVarBound == LOWER && FloatUtils::isZero( bound ) && FloatUtils::gte( explainedBound + epsilon, -1 ) ) + return 0; + + // If lb of b is non negative, then lb of f is 1 + else if ( causingVar == b && causingVarBound == LOWER && affectedVar == f && affectedVarBound == LOWER && FloatUtils::areEqual( bound, 1 ) && !FloatUtils::isNegative( explainedBound + epsilon ) ) + return 1; + + // If ub of f is < 1, then ub of f is -1 + else if ( causingVar == f && causingVarBound == UPPER && affectedVar == f && affectedVarBound == UPPER && FloatUtils::areEqual( bound, -1 ) && FloatUtils::lte( explainedBound - epsilon, 1 ) ) + return -1; + + // If ub of f is < 1, then ub of b is 0 + else if ( causingVar == f && causingVarBound == UPPER && affectedVar == b && affectedVarBound == UPPER && FloatUtils::isZero( bound ) && FloatUtils::lte( explainedBound - epsilon, 1 ) ) + return 0; + + // If ub of b is negative, then ub of f is -1 + else if ( causingVar == b && causingVarBound == UPPER && affectedVar == f && affectedVarBound == UPPER && FloatUtils::areEqual( bound, -1 ) && FloatUtils::isNegative( explainedBound - epsilon ) ) + return -1; + + return affectedVarBound == UPPER ? FloatUtils::infinity() : FloatUtils::negativeInfinity(); +} + +double Checker::checkAbsLemma( const PLCLemma &expl, PiecewiseLinearConstraint &constraint, double epsilon ) +{ + ASSERT( constraint.getType() == ABSOLUTE_VALUE && expl.getConstraintType() == ABSOLUTE_VALUE ); + ASSERT( expl.getCausingVars().size() == 2 || expl.getCausingVars().size() == 1 ); + + BoundType causingVarBound = expl.getCausingVarBound(); + BoundType affectedVarBound = expl.getAffectedVarBound(); + unsigned affectedVar = expl.getAffectedVar(); + double bound = expl.getBound(); + List constraintVars = constraint.getParticipatingVariables(); + ASSERT(constraintVars.size() == 4 ); + + Vector conVec( constraintVars.begin(), constraintVars.end() ); + unsigned b = conVec[0]; + unsigned f = conVec[1]; + unsigned pos = conVec[2]; + unsigned neg = conVec[3]; + + // Make sure the explanation is explained using an absolute value bound tightening. Cases are matching each rule in AbsolutValueConstraint.cpp + // We allow explained bound to be tighter than the ones recorded (since an explanation can explain tighter bounds) + + if ( expl.getCausingVars().size() == 2 ) + { + unsigned firstCausingVar = expl.getCausingVars().front(); + unsigned secondCausingVar = expl.getCausingVars().back(); + + const double *firstExplanation = expl.getExplanations(); + const double *secondExplanation = expl.getExplanations() + _proofSize; + + // Case of a non-phase fixing lemma + if ( firstCausingVar == secondCausingVar ) + { + double explainedUpperBound = UNSATCertificateUtils::computeBound( firstCausingVar, UPPER, firstExplanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); + double explainedLowerBound = UNSATCertificateUtils::computeBound( secondCausingVar, LOWER, secondExplanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); + + // b is always the causing var, affecting the ub of f + if ( affectedVar == f && firstCausingVar == b && affectedVarBound == UPPER && bound > 0 ) + return FloatUtils::max( explainedUpperBound, -explainedLowerBound ); + + return affectedVarBound == UPPER ? FloatUtils::infinity() : FloatUtils::negativeInfinity(); + } + // Cases of a phase-fixing lemma + else + { + ASSERT( firstCausingVar == b && secondCausingVar == f ); + double explainedBBound = UNSATCertificateUtils::computeBound( firstCausingVar, causingVarBound == UPPER, firstExplanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); + double explainedFBound = UNSATCertificateUtils::computeBound( secondCausingVar, LOWER, secondExplanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); + + if ( affectedVar == neg && causingVarBound == UPPER && explainedFBound > explainedBBound - epsilon && bound == 0 ) + { + constraint.setPhaseStatus( ABS_PHASE_NEGATIVE ); + return 0; + } + else if ( affectedVar == pos && causingVarBound == LOWER && explainedFBound > -explainedBBound - epsilon && bound == 0 ) + { + constraint.setPhaseStatus( ABS_PHASE_POSITIVE ); + return 0; + } + + return affectedVarBound == UPPER ? FloatUtils::infinity() : FloatUtils::negativeInfinity(); + } + } + + // Cases of a phase-fixing lemma + const double *explanation = expl.getExplanations(); + unsigned causingVar = expl.getCausingVars().front(); + + double explainedBound = UNSATCertificateUtils::computeBound( causingVar, causingVarBound == UPPER, explanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); + + if ( affectedVar == pos && causingVar == b && causingVarBound == LOWER && !FloatUtils::isNegative( explainedBound + epsilon ) && bound == 0 ) + { + constraint.setPhaseStatus( ABS_PHASE_POSITIVE ); + return 0; + } + else if ( affectedVar == neg && causingVar == b && causingVarBound == UPPER && !FloatUtils::isPositive( explainedBound - epsilon ) && bound == 0 ) + { + constraint.setPhaseStatus( ABS_PHASE_NEGATIVE ); + return 0; + } + else if ( affectedVar == neg && causingVar == pos && causingVarBound == LOWER && FloatUtils::isPositive( explainedBound + epsilon ) && bound == 0 ) + { + constraint.setPhaseStatus( ABS_PHASE_NEGATIVE ); + return 0; + } + else if ( affectedVar == pos && causingVar == neg && causingVarBound == LOWER && FloatUtils::isPositive( explainedBound + epsilon ) && bound == 0 ) + { + constraint.setPhaseStatus( ABS_PHASE_POSITIVE ); + return 0; + } + + return affectedVarBound == UPPER ? FloatUtils::infinity() : FloatUtils::negativeInfinity(); +} + +double Checker::checkMaxLemma( const PLCLemma &expl, PiecewiseLinearConstraint &constraint ) +{ + ASSERT( constraint.getType() == MAX && expl.getConstraintType() == MAX ); + MaxConstraint *maxConstraint = ( MaxConstraint * ) &constraint; + + double maxBound = maxConstraint->getMaxValueOfEliminatedPhases(); + const List causingVars = expl.getCausingVars(); + unsigned affectedVar = expl.getAffectedVar(); + const double *allExplanations = expl.getExplanations(); + BoundType causingVarBound = expl.getCausingVarBound(); + BoundType affectedVarBound = expl.getAffectedVarBound(); + double explainedBound = affectedVarBound == UPPER ? FloatUtils::infinity() : FloatUtils::negativeInfinity(); + + unsigned f = maxConstraint->getF(); + + Set constraintElements = maxConstraint->getParticipatingElements(); + for( const auto &var : causingVars ) + if ( !constraintElements.exists( var ) ) + return explainedBound; + + + // Only tightening type is of the form f = element, for some element with the maximal upper bound + unsigned counter = 0; + for( const auto &var : causingVars ) + { + const double *explanation = allExplanations + ( counter * _proofSize ); + ++counter; + + explainedBound = UNSATCertificateUtils::computeBound( var, UPPER, explanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); + maxBound = FloatUtils::max( maxBound, explainedBound ); + } + + if ( causingVarBound == UPPER && affectedVar == f && affectedVarBound == UPPER ) + return maxBound; + + return affectedVarBound == UPPER ? FloatUtils::infinity() : FloatUtils::negativeInfinity(); +} \ No newline at end of file diff --git a/src/proofs/Checker.h b/src/proofs/Checker.h index 530b2ac574..2cc9cbc377 100644 --- a/src/proofs/Checker.h +++ b/src/proofs/Checker.h @@ -15,6 +15,9 @@ #ifndef __Checker_h__ #define __Checker_h__ +#include "AbsoluteValueConstraint.h" +#include "DisjunctionConstraint.h" +#include "MaxConstraint.h" #include "Set.h" #include "Stack.h" #include "UnsatCertificateNode.h" @@ -53,7 +56,7 @@ class Checker unsigned _delegationCounter; - // Keeps track of bounds changes, so only stored bounds will be reverted when traveling the tree + // Keeps track of bounds changes, so only stored bounds will be reverted when traversing the tree Stack> _upperBoundChanges; Stack> _lowerBoundChanges; @@ -64,10 +67,30 @@ class Checker bool checkNode( const UnsatCertificateNode *node ); /* - Return true iff the changes in the ground bounds are certified, with tolerance to errors with at most size epsilon + Return true iff all changes in the ground bounds are certified, with tolerance to errors with at most size epsilon */ bool checkAllPLCExplanations( const UnsatCertificateNode *node, double epsilon ); + /* + Return a change in the ground bounds caused by a ReLU constraint. + */ + double checkReluLemma(const PLCLemma &expl, PiecewiseLinearConstraint &constraint, double epsilon ); + + /* + Return a change in the ground bounds caused by a Sign constraint. + */ + double checkSignLemma(const PLCLemma &expl, PiecewiseLinearConstraint &constraint, double epsilon ); + + /* + Return a change in the ground bounds caused by a Absolute Value constraint. + */ + double checkAbsLemma(const PLCLemma &expl, PiecewiseLinearConstraint &constraint, double epsilon ); + + /* + Return a change in the ground bounds caused by a Max constraint. + */ + double checkMaxLemma(const PLCLemma &expl, PiecewiseLinearConstraint &constraint ); + /* Checks a contradiction */ @@ -86,7 +109,32 @@ class Checker /* Return a pointer to the problem constraint representing the split */ - PiecewiseLinearConstraint *getCorrespondingReLUConstraint( const List &splits ); + PiecewiseLinearConstraint *getCorrespondingConstraint( const List &splits ); + + /* + Return a pointer to a ReLU problem constraint representing the split + */ + PiecewiseLinearConstraint *getCorrespondingReluConstraint( const List &splits ); + + /* + Return a pointer to a sign problem constraint representing the split + */ + PiecewiseLinearConstraint *getCorrespondingSignConstraint( const List &splits ); + + /* + Return a pointer to a absolute value problem constraint representing the split + */ + PiecewiseLinearConstraint *getCorrespondingAbsConstraint( const List &splits ); + + /* + Return a pointer to a max problem constraint representing the split + */ + PiecewiseLinearConstraint *getCorrespondingMaxConstraint( const List &splits ); + + /* + Return a pointer to a disjunction problem constraint representing the split + */ + PiecewiseLinearConstraint *getCorrespondingDisjunctionConstraint( const List &splits ); /* Return true iff a list of splits represents a splits over a single variable diff --git a/src/proofs/PlcLemma.cpp b/src/proofs/PlcLemma.cpp new file mode 100644 index 0000000000..457c9fc180 --- /dev/null +++ b/src/proofs/PlcLemma.cpp @@ -0,0 +1,117 @@ +/********************* */ +/*! \file PlcExplanation.cpp + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#include "PlcLemma.h" + +PLCLemma::PLCLemma( const List &causingVars, + unsigned affectedVar, + double bound, + BoundType causingVarBound, + BoundType affectedVarBound, + const Vector> &explanations, + PiecewiseLinearFunctionType constraintType ) + : _causingVars( causingVars ) + , _affectedVar( affectedVar ) + , _bound( bound ) + , _causingVarBound( causingVarBound ) + , _affectedVarBound( affectedVarBound ) + , _constraintType( constraintType ) +{ + + if ( explanations.empty() ) + _explanations = NULL; + else + { + bool allEmpty = true; + unsigned proofSize = 0; + + for ( const auto &expl : explanations ) + if ( !expl.empty() ) + { + proofSize = expl.size(); + allEmpty = false; + break; + } + + if ( allEmpty ) + _explanations = NULL; + else + { + unsigned numOfExplanations = explanations.size(); + + ASSERT( numOfExplanations == causingVars.size() && proofSize ); + + if ( _constraintType == RELU || _constraintType == SIGN ) + { + ASSERT( numOfExplanations == 1 ); + } + + if ( _constraintType == ABSOLUTE_VALUE ) + { + ASSERT( numOfExplanations == 2 || numOfExplanations == 1 ); + } + + _explanations = new double[numOfExplanations * proofSize]; + + for ( unsigned i = 0; i < numOfExplanations; ++i ) + for ( unsigned j = 0; j < proofSize; ++j ) + _explanations[i * proofSize + j] = explanations[i][j]; + + } + } +} + +PLCLemma::~PLCLemma() +{ + if ( _explanations ) + { + delete [] _explanations; + _explanations = NULL; + } +} + +const List &PLCLemma::getCausingVars() const +{ + return _causingVars; +} + +unsigned PLCLemma::getAffectedVar() const +{ + return _affectedVar; +} + +double PLCLemma::getBound() const +{ + return _bound; +} + +BoundType PLCLemma::getCausingVarBound() const +{ + return _causingVarBound; +} + +BoundType PLCLemma::getAffectedVarBound() const +{ + return _affectedVarBound; +} + +const double *PLCLemma::getExplanations() const +{ + return _explanations; +} + +PiecewiseLinearFunctionType PLCLemma::getConstraintType() const +{ + return _constraintType; +} diff --git a/src/proofs/PlcLemma.h b/src/proofs/PlcLemma.h new file mode 100644 index 0000000000..a105703847 --- /dev/null +++ b/src/proofs/PlcLemma.h @@ -0,0 +1,60 @@ +/********************* */ +/*! \file PlcExplanation.h + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#ifndef __PlcExplanation_h__ +#define __PlcExplanation_h__ + +#include "PiecewiseLinearConstraint.h" +#include "PiecewiseLinearFunctionType.h" +#include "Vector.h" + +/* + Contains all necessary info of a ground bound update during a run (i.e from ReLU phase-fixing) +*/ +class PLCLemma +{ +public: + PLCLemma( const List &causingVars, + unsigned affectedVar, + double bound, + BoundType causingVarBound, + BoundType affectedVarBound, + const Vector> &explanation, + PiecewiseLinearFunctionType constraintType ); + + ~PLCLemma(); + + + /* + Getters for all fields + */ + const List &getCausingVars() const; + unsigned getAffectedVar() const; + double getBound() const; + BoundType getCausingVarBound() const; + BoundType getAffectedVarBound() const; + const double *getExplanations() const; + PiecewiseLinearFunctionType getConstraintType() const; + +private: + const List _causingVars; + unsigned _affectedVar; + double _bound; + BoundType _causingVarBound; + BoundType _affectedVarBound; + double *_explanations; + PiecewiseLinearFunctionType _constraintType; +}; + +#endif //__PlcExplanation_h__ diff --git a/src/proofs/SmtLibWriter.cpp b/src/proofs/SmtLibWriter.cpp index 0977563995..6fe1b51545 100644 --- a/src/proofs/SmtLibWriter.cpp +++ b/src/proofs/SmtLibWriter.cpp @@ -15,6 +15,8 @@ #include #include "SmtLibWriter.h" +const unsigned SmtLibWriter::SMTLIBWRITER_PRECISION = ( unsigned ) std::log10( 1 / GlobalConfiguration::DEFAULT_EPSILON_FOR_COMPARISONS ); + void SmtLibWriter::addHeader( unsigned numberOfVariables, List &instance ) { instance.append( "( set-logic QF_LRA )\n" ); @@ -31,16 +33,142 @@ void SmtLibWriter::addFooter( List &instance ) void SmtLibWriter::addReLUConstraint( unsigned b, unsigned f, const PhaseStatus status, List &instance ) { if ( status == PHASE_NOT_FIXED ) - instance.append( "( assert ( = x" + std::to_string( f ) + " ( ite ( >= x" + std::to_string( b ) + " 0 ) x" + std::to_string( b )+ " 0 ) ) )\n" ); + instance.append( "( assert ( = x" + std::to_string( f ) + " ( ite ( >= x" + std::to_string( b ) + " 0 ) x" + std::to_string( b ) + " 0 ) ) )\n" ); else if ( status == RELU_PHASE_ACTIVE ) instance.append( "( assert ( = x" + std::to_string( f ) + " x" + std::to_string( b ) + " ) )\n" ); else if ( status == RELU_PHASE_INACTIVE ) instance.append( "( assert ( = x" + std::to_string( f ) + " 0 ) )\n" ); } +void SmtLibWriter::addSignConstraint( unsigned b, unsigned f, const PhaseStatus status, List &instance ) +{ + if ( status == PHASE_NOT_FIXED ) + instance.append( "( assert ( = x" + std::to_string( f ) + " ( ite ( >= x" + std::to_string( b ) + " 0 ) 1 ( - 1 ) ) ) )\n" ); + else if ( status == SIGN_PHASE_POSITIVE ) + instance.append( "( assert ( = x" + std::to_string( f ) + " 1 ) )\n" ); + else if ( status == SIGN_PHASE_NEGATIVE ) + instance.append( "( assert ( = x" + std::to_string( f ) + " ( - 1 ) ) )\n" ); +} + +void SmtLibWriter::addAbsConstraint( unsigned b, unsigned f, const PhaseStatus status, List &instance ) +{ + if ( status == PHASE_NOT_FIXED ) + instance.append( "( assert ( = x" + std::to_string( f ) + " ( ite ( >= x" + std::to_string( b ) + " 0 ) x" + std::to_string( b ) + " ( - x" + std::to_string( b ) + " ) ) ) )\n" ); + else if ( status == ABS_PHASE_POSITIVE ) + instance.append( "( assert ( = x" + std::to_string( f ) + " x" + std::to_string( b ) + " ) )\n" ); + else if ( status == ABS_PHASE_NEGATIVE ) + instance.append( "( assert ( = x" + std::to_string( f ) + " ( - x" + std::to_string( b ) + " ) ) )\n" ); +} + +void SmtLibWriter::addMaxConstraint( unsigned f, const Set &elements, const PhaseStatus status, double info ,List &instance ) +{ + String assertRowLine; + unsigned counter; + unsigned size = elements.size(); + + // f equals to some value (the value of info) + if ( status == MAX_PHASE_ELIMINATED ) + instance.append( String ( "( assert ( = x" + std::to_string( f ) + " " ) + signedValue( info ) + " ) )\n" ); + + // f equals to some element (info should be an index) + else if ( status != PHASE_NOT_FIXED ) + instance.append( "( assert ( = x" + std::to_string( f ) + " x" + std::to_string( ( unsigned ) info ) + " ) )\n" ); + + else + { + // For all elements (including eliminated), if an element is larger than all others, then f = element + for ( const auto &element : elements ) + { + counter = 0; + assertRowLine = "( assert ( =>"; + for ( auto const &otherElement : elements ) + { + if ( otherElement == element ) + continue; + + if ( counter < size - 2 ) + { + assertRowLine += " ( and"; + ++counter; + } + + assertRowLine += " ( >= x" + std::to_string( element ) + " x" + std::to_string( otherElement ) + " )"; + } + for ( unsigned i = 0; i < size - 2 ; ++i ) + assertRowLine += String( " )" ); + + assertRowLine += " ( = x" + std::to_string( f ) + " x" + std::to_string( element ) + " )"; + + + instance.append( assertRowLine + " ) )\n" ); + } + } +} + +void SmtLibWriter::addDisjunctionConstraint( const List &disjuncts, List &instance ) +{ + ASSERT( !disjuncts.empty() ); + + unsigned size; + instance.append( "( assert\n"); + + for ( const auto &disjunct : disjuncts ) + { + if ( !( disjunct == disjuncts.back() ) ) + instance.append("( or\n"); + + size = disjunct.getEquations().size() + disjunct.getBoundTightenings().size(); + ASSERT( size ) + if ( size == 1 && disjunct.getEquations().size() == 1 ) + SmtLibWriter::addEquation( disjunct.getEquations().back(), instance ); + else if ( size == 1 && disjunct.getBoundTightenings().size() == 1 ) + SmtLibWriter::addTightening( disjunct.getBoundTightenings().back(), instance ); + else + { + unsigned counter = 0; + + for ( const auto &eq : disjunct.getEquations() ) + { + if ( counter < size - 1 ) + instance.append( "( and "); + ++counter; + SmtLibWriter::addEquation( eq, instance ); + } + + for ( const auto &bound : disjunct.getBoundTightenings() ) + { + if ( counter < size - 1 ) + instance.append( "( and "); + ++counter; + + SmtLibWriter::addTightening( bound, instance ); + } + } + + for ( unsigned i = 0; i < size - 1; ++i ) + instance.append( " )" ); + instance.append("\n" ); + } + + size = disjuncts.size(); + for ( unsigned i = 0; i < size; ++i ) + instance.append( String( " )" ) ); + + instance.append("\n" ); + +} void SmtLibWriter::addTableauRow( const SparseUnsortedList &row, List &instance ) { unsigned size = row.getSize(); + + // Avoid adding a redundant last element + auto it = --row.end(); + if ( std::isnan( it->_value ) || FloatUtils::isZero( it->_value ) ) + --size; + + if ( !size ) + return; + unsigned counter = 0; String assertRowLine = "( assert ( = 0"; auto entry = row.begin(); @@ -50,17 +178,24 @@ void SmtLibWriter::addTableauRow( const SparseUnsortedList &row, List &i if ( FloatUtils::isZero( entry->_value ) ) continue; - if ( counter == size - 1 ) - break; + if ( counter != size - 1 ) + assertRowLine += String( " ( + " ); + else + assertRowLine += String( " " ); + + + // Coefficients +-1 can be neglected + if ( entry->_value == 1 ) + assertRowLine += String( "x" ) + std::to_string( entry->_index ); + else if (entry->_value == -1 ) + assertRowLine += String( "( - x" ) + std::to_string( entry->_index ) + " )"; + else + assertRowLine += String( "( * " ) + signedValue( entry->_value ) + " x" + std::to_string( entry->_index ) + " )"; - assertRowLine += String( " ( + ( * " ) + signedValue( entry->_value ) + " x" + std::to_string( entry->_index ) + " )"; ++counter; } - // Add last element - assertRowLine += String( " ( * " ) + signedValue( entry->_value ) + " x" + std::to_string( entry->_index ) + " )"; - - for ( unsigned i = 0; i < counter + 2 ; ++i ) + for ( unsigned i = 0; i < counter + 1 ; ++i ) assertRowLine += String( " )" ); instance.append( assertRowLine + "\n" ); @@ -92,8 +227,65 @@ void SmtLibWriter::writeInstanceToFile( IFile &file, const List &instanc String SmtLibWriter::signedValue( double val ) { - unsigned precision = ( unsigned ) std::log10( 1 / GlobalConfiguration::DEFAULT_EPSILON_FOR_COMPARISONS ); std::stringstream s; - s << std::fixed << std::setprecision( precision ) << abs( val ); + s << std::fixed << std::setprecision( SMTLIBWRITER_PRECISION ) << abs( val ); return val >= 0 ? String( s.str() ).trimZerosFromRight() : String( "( - " + s.str() ).trimZerosFromRight() + " )"; +} + +void SmtLibWriter::addEquation( const Equation &eq, List &instance ) +{ + unsigned size = eq._addends.size(); + + if ( !size ) + return; + + unsigned counter = 0; + + String assertRowLine = ""; + + if ( eq._type == Equation::EQ ) + assertRowLine += "( = "; + else if ( eq._type == Equation::LE ) + // Scalar should be >= than sum of addends + assertRowLine += "( >= "; + else + // Scalar should be <= than sum of addends + assertRowLine += "( <= "; + + assertRowLine += signedValue( eq._scalar ); + + for ( const auto &addend : eq._addends ) + { + if ( FloatUtils::isZero( addend._coefficient ) ) + continue; + + if ( !( addend == eq._addends.back() ) ) + assertRowLine += String( " ( + " ); + else + assertRowLine += String( " " ); + + + // Coefficients +-1 can be neglected + if ( addend._coefficient == 1 ) + assertRowLine += String( "x" ) + std::to_string( addend._variable ); + else if (addend._coefficient == -1 ) + assertRowLine += String( "( - x" ) + std::to_string( addend._variable ) + " )"; + else + assertRowLine += String( "( * " ) + signedValue( addend._coefficient ) + " x" + std::to_string( addend._variable ) + " )"; + + ++counter; + } + + for ( unsigned i = 0; i < counter ; ++i ) + assertRowLine += String( " )" ); + + instance.append( assertRowLine + " "); +} + +void SmtLibWriter::addTightening( Tightening bound, List &instance ) +{ + if ( bound._type == Tightening::LB ) + instance.append( String( "( >= x" ) + std::to_string( bound._variable ) + " " + signedValue( bound._value ) + " )" ); + else + instance.append( String( "( <= x" + std::to_string( bound._variable ) ) + String( " " ) + signedValue( bound._value ) + " )" ); } \ No newline at end of file diff --git a/src/proofs/SmtLibWriter.h b/src/proofs/SmtLibWriter.h index c9800296fe..1011eadb09 100644 --- a/src/proofs/SmtLibWriter.h +++ b/src/proofs/SmtLibWriter.h @@ -28,6 +28,11 @@ class SmtLibWriter { public: + /* + Precision used for writing floating point numbers + */ + static const unsigned SMTLIBWRITER_PRECISION; + /* Adds a SMTLIB header to the SMTLIB instance with numberOfVariables variables */ @@ -39,15 +44,40 @@ class SmtLibWriter static void addFooter( List &instance ); /* - Adds a line representing ReLU constraint, in SMTLIB format, to the SMTLIB instance + Adds a line representing a ReLU constraint, in SMTLIB format, to the SMTLIB instance */ static void addReLUConstraint( unsigned b, unsigned f, const PhaseStatus status, List &instance ); + /* + Adds a line representing a sign constraint, in SMTLIB format, to the SMTLIB instance + */ + static void addSignConstraint( unsigned b, unsigned f, const PhaseStatus status, List &instance ); + + /* + Adds a line representing an absolute value constraint, in SMTLIB format, to the SMTLIB instance + */ + static void addAbsConstraint( unsigned b, unsigned f, const PhaseStatus status, List &instance ); + + /* + Adds a line representing a max constraint, in SMTLIB format, to the SMTLIB instance + */ + static void addMaxConstraint( unsigned f, const Set &elements, const PhaseStatus status, double info, List &instance ); + + /* + Adds a line representing a disjunction constraint, in SMTLIB format, to the SMTLIB instance + */ + static void addDisjunctionConstraint( const List &disjuncts, List &instance ); + /* Adds a line representing a Tableau Row, in SMTLIB format, to the SMTLIB instance */ static void addTableauRow( const SparseUnsortedList &row, List &instance ); + /* + Adds a line representing an equation , in SMTLIB format, to the SMTLIB instance + */ + static void addEquation( const Equation &eq, List &instance ); + /* Adds lines representing the ground upper bounds, in SMTLIB format, to the SMTLIB instance */ @@ -58,6 +88,11 @@ class SmtLibWriter */ static void addGroundLowerBounds( Vector &bounds, List &instance ); + /* + Adds lines representing a tightening, in SMTLIB format, to the SMTLIB instance + */ + static void addTightening( Tightening t, List &instance ); + /* Writes an instances to a file */ diff --git a/src/proofs/UnsatCertificateNode.cpp b/src/proofs/UnsatCertificateNode.cpp index bcd64045b7..cb059fe60e 100644 --- a/src/proofs/UnsatCertificateNode.cpp +++ b/src/proofs/UnsatCertificateNode.cpp @@ -75,12 +75,12 @@ const List &UnsatCertificateNode::getChildren() const return _children; } -const List> &UnsatCertificateNode::getPLCExplanations() const +const List> &UnsatCertificateNode::getPLCLemmas() const { return _PLCExplanations; } -void UnsatCertificateNode::addPLCExplanation( std::shared_ptr &explanation ) +void UnsatCertificateNode::addPLCLemma(std::shared_ptr &explanation ) { _PLCExplanations.append( explanation ); } diff --git a/src/proofs/UnsatCertificateNode.h b/src/proofs/UnsatCertificateNode.h index d4aeb8a301..dc9db0092a 100644 --- a/src/proofs/UnsatCertificateNode.h +++ b/src/proofs/UnsatCertificateNode.h @@ -19,7 +19,7 @@ #include "Contradiction.h" #include "SmtLibWriter.h" #include "PiecewiseLinearFunctionType.h" -#include "PlcExplanation.h" +#include "PlcLemma.h" #include "ReluConstraint.h" #include "UnsatCertificateUtils.h" @@ -65,14 +65,14 @@ class UnsatCertificateNode const List &getChildren() const; /* - Returns the list of PLC explanations of the node + Returns the list of PLC lemmas of the node */ - const List> &getPLCExplanations() const; + const List> &getPLCLemmas() const; /* Adds an PLC explanation to the list */ - void addPLCExplanation( std::shared_ptr &explanation ); + void addPLCLemma(std::shared_ptr &explanation ); /* Returns a pointer to a child by a head split, or NULL if not found @@ -132,7 +132,7 @@ class UnsatCertificateNode private: List _children; UnsatCertificateNode *_parent; - List> _PLCExplanations; + List> _PLCExplanations; Contradiction *_contradiction; PiecewiseLinearCaseSplit _headSplit; diff --git a/src/proofs/UnsatCertificateUtils.cpp b/src/proofs/UnsatCertificateUtils.cpp index fb70187279..2b38700ec9 100644 --- a/src/proofs/UnsatCertificateUtils.cpp +++ b/src/proofs/UnsatCertificateUtils.cpp @@ -29,7 +29,19 @@ double UNSATCertificateUtils::computeBound( unsigned var, double temp; if ( !explanation ) - return isUpper ? groundUpperBounds[var] : groundLowerBounds[var]; + return isUpper ? groundUpperBounds[var] : groundLowerBounds[var]; + + bool allZeros = true; + + for ( unsigned i = 0; i < numberOfRows; ++i ) + if ( !FloatUtils::isZero( explanation[i] ) ) + { + allZeros = false; + break; + } + + if ( allZeros ) + return isUpper ? groundUpperBounds[var] : groundLowerBounds[var]; Vector explanationRowCombination( numberOfVariables, 0 ); // Create linear combination of original rows implied from explanation @@ -133,3 +145,9 @@ double UNSATCertificateUtils::computeCombinationUpperBound( const double *explan return derivedBound; } + +const Set UNSATCertificateUtils::getSupportedActivations() +{ + return { RELU, SIGN, ABSOLUTE_VALUE, MAX, DISJUNCTION }; +} + diff --git a/src/proofs/UnsatCertificateUtils.h b/src/proofs/UnsatCertificateUtils.h index 77dc1913f5..e2cf5d4abd 100644 --- a/src/proofs/UnsatCertificateUtils.h +++ b/src/proofs/UnsatCertificateUtils.h @@ -16,6 +16,7 @@ #define __UnsatCertificateUtils_h__ #include "FloatUtils.h" +#include "PiecewiseLinearFunctionType.h" #include "SparseMatrix.h" #include "SparseUnsortedList.h" #include "Vector.h" @@ -52,6 +53,8 @@ class UNSATCertificateUtils const double *groundLowerBounds, unsigned numberOfRows, unsigned numberOfVariables ); + + static const Set getSupportedActivations(); }; #endif //__UnsatCertificateUtils_h__ diff --git a/src/proofs/tests/Test_SmtLibWriter.h b/src/proofs/tests/Test_SmtLibWriter.h index 5262988294..7efd698e4f 100644 --- a/src/proofs/tests/Test_SmtLibWriter.h +++ b/src/proofs/tests/Test_SmtLibWriter.h @@ -29,7 +29,7 @@ class SmtLibWriterTestSuite : public CxxTest::TestSuite void test_smtlib_writing() { file = new MockFile(); - Vector row = { 1, 1 }; + Vector row = { 1, 2 }; SparseUnsortedList sparseRow( row.data(), 2 ); Vector groundUpperBounds = { 1, 1 }; Vector groundLowerBounds = { 1 , -1 }; @@ -40,6 +40,64 @@ class SmtLibWriterTestSuite : public CxxTest::TestSuite SmtLibWriter::addGroundLowerBounds( groundLowerBounds, instance ); SmtLibWriter::addTableauRow( sparseRow, instance ); SmtLibWriter::addReLUConstraint( 0, 1, PHASE_NOT_FIXED, instance ); + SmtLibWriter::addSignConstraint( 0, 1, PHASE_NOT_FIXED, instance ); + SmtLibWriter::addAbsConstraint( 0, 1, PHASE_NOT_FIXED, instance ); + + SmtLibWriter::addMaxConstraint( 1, { 2, 3, 4 }, PHASE_NOT_FIXED, 0, instance ); + + PiecewiseLinearCaseSplit disjunct1; + PiecewiseLinearCaseSplit disjunct2; + PiecewiseLinearCaseSplit disjunct3; + PiecewiseLinearCaseSplit disjunct4; + PiecewiseLinearCaseSplit disjunct5; + PiecewiseLinearCaseSplit disjunct6; + + Equation equation1 = Equation(); + equation1.addAddend(1, 0); + equation1.addAddend(-2, 1); + equation1._scalar = -4; + + disjunct1.addEquation( equation1 ); + disjunct1.storeBoundTightening( Tightening(1, -2, Tightening::UB ) ); + + disjunct2.storeBoundTightening(Tightening(1, 2, Tightening::LB ) ); + disjunct2.storeBoundTightening(Tightening(0, -1.5, Tightening::UB ) ); + + SmtLibWriter::addDisjunctionConstraint( {disjunct1, disjunct2} ,instance); + + Equation equation2 = Equation(); + equation2.addAddend(0, 0); + equation2.addAddend(-1, 1); + equation2._scalar = 1; + + Equation equation3 = Equation(); + equation3.addAddend(0, 0); + equation3.addAddend(-1, 2); + equation3._scalar = 1; + + Equation equation4 = Equation(); + equation4.addAddend(0, 0); + equation4.addAddend(-1, 3); + equation4._scalar = 1; + + disjunct3.addEquation( equation2 ); + disjunct5.addEquation( equation3 ); + disjunct6.addEquation( equation4 ); + + SmtLibWriter::addDisjunctionConstraint( {disjunct3, disjunct5, disjunct6 } ,instance); + + disjunct4.storeBoundTightening(Tightening(1, 2, Tightening::LB ) ); + SmtLibWriter::addDisjunctionConstraint( {disjunct4} ,instance); + SmtLibWriter::addDisjunctionConstraint( {disjunct3, disjunct4} ,instance); + + disjunct4.storeBoundTightening(Tightening(1, 2, Tightening::LB ) ); + disjunct4.storeBoundTightening(Tightening(0, -1.5, Tightening::UB ) ); + SmtLibWriter::addDisjunctionConstraint( {disjunct4} ,instance); + + disjunct3.addEquation( equation2 ); + disjunct3.addEquation( equation2 ); + SmtLibWriter::addDisjunctionConstraint( {disjunct3} ,instance); + SmtLibWriter::addFooter( instance ); SmtLibWriter::writeInstanceToFile( *file, instance ); @@ -59,6 +117,7 @@ class SmtLibWriterTestSuite : public CxxTest::TestSuite expectedLine = "( declare-fun x1 () Real )"; TS_ASSERT_EQUALS( line, expectedLine ); + // Bounds line = file->readLine( '\n' ); expectedLine = String("( assert ( <= x0 ") + SmtLibWriter::signedValue( 1 ) + " ) )"; TS_ASSERT_EQUALS( line, expectedLine ); @@ -75,14 +134,144 @@ class SmtLibWriterTestSuite : public CxxTest::TestSuite expectedLine = String("( assert ( >= x1 ") + SmtLibWriter::signedValue( -1 ) + " ) )"; TS_ASSERT_EQUALS( line, expectedLine ); + // Tableau line = file->readLine( '\n' ); - expectedLine = String("( assert ( = 0 ( + ( * ") + SmtLibWriter::signedValue( 1 ) + " x0 ) ( * " + SmtLibWriter::signedValue( 1 ) + " x1 ) ) ) )"; + expectedLine = String("( assert ( = 0 ( + x0 ( * " ) + SmtLibWriter::signedValue( 2 ) + " x1 ) ) ) )"; TS_ASSERT_EQUALS( line, expectedLine ); + // Relu line = file->readLine( '\n' ); expectedLine = "( assert ( = x1 ( ite ( >= x0 0 ) x0 0 ) ) )"; TS_ASSERT_EQUALS( line, expectedLine ); + // Sign + line = file->readLine( '\n' ); + expectedLine = "( assert ( = x1 ( ite ( >= x0 0 ) 1 ( - 1 ) ) ) )"; + TS_ASSERT_EQUALS( line, expectedLine ); + + // Absolute Value + line = file->readLine( '\n' ); + expectedLine = "( assert ( = x1 ( ite ( >= x0 0 ) x0 ( - x0 ) ) ) )"; + TS_ASSERT_EQUALS( line, expectedLine ); + + // Max + line = file->readLine( '\n' ); + expectedLine = String("( assert ( => ( and ( >= x2 x3 ) ( >= x2 x4 ) ) ( = x1 x2 ) ) )"); + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = String("( assert ( => ( and ( >= x3 x2 ) ( >= x3 x4 ) ) ( = x1 x3 ) ) )"); + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = String("( assert ( => ( and ( >= x4 x2 ) ( >= x4 x3 ) ) ( = x1 x4 ) ) )"); + TS_ASSERT_EQUALS( line, expectedLine ); + + // Disjunctions (several cases) + line = file->readLine( '\n' ); + expectedLine = String("( assert"); + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = String("( or"); + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = String("( and ( = ( - 4 ) ( + x0 ( * ( - 2 ) x1 ) ) ) ( <= x1 ( - 2 ) ) )"); + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = String("( and ( >= x1 2 )( <= x0 ( - 1.5 ) ) )"); + TS_ASSERT_EQUALS( line, expectedLine); + + line = file->readLine( '\n' ); + expectedLine = String(" ) )"); + TS_ASSERT_EQUALS( line, expectedLine); + + line = file->readLine( '\n' ); + expectedLine = String("( assert"); + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = String("( or"); + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = String("( = 1 ( - x1 ) ) "); + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = String("( or"); + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = String("( = 1 ( - x2 ) ) "); + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = String("( = 1 ( - x3 ) ) "); + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = String(" ) ) )"); + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = String("( assert"); + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = String("( >= x1 2 )"); + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = String(" )"); + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = String("( assert"); + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = String("( or"); + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = String("( = 1 ( - x1 ) ) "); + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = String("( >= x1 2 )"); + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = String(" ) )"); + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = String("( assert"); + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = String("( and ( >= x1 2 )( and ( >= x1 2 )( <= x0 ( - 1.5 ) ) ) )"); + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = String(" )"); + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = String("( assert"); + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = String("( and ( = 1 ( - x1 ) ) ( and ( = 1 ( - x1 ) ) ( = 1 ( - x1 ) ) ) )"); + TS_ASSERT_EQUALS( line, expectedLine ); + + line = file->readLine( '\n' ); + expectedLine = String(" )"); + TS_ASSERT_EQUALS( line, expectedLine ); + line = file->readLine( '\n' ); expectedLine = "( check-sat )"; TS_ASSERT_EQUALS( line, expectedLine ); diff --git a/src/proofs/tests/Test_UnsatCertificateNode.h b/src/proofs/tests/Test_UnsatCertificateNode.h index d2e5eedc17..170a49e13d 100644 --- a/src/proofs/tests/Test_UnsatCertificateNode.h +++ b/src/proofs/tests/Test_UnsatCertificateNode.h @@ -79,20 +79,20 @@ class UnsatCertificateNodeTestSuite : public CxxTest::TestSuite void test_plc_explanation_changes() { UnsatCertificateNode root = UnsatCertificateNode( NULL, PiecewiseLinearCaseSplit() ); - Vector emptyVec; + Vector> emptyVec; - auto explanation1 = std::shared_ptr( new PLCExplanation( 1, 1, 0, UPPER, UPPER, emptyVec, RELU ) ); - auto explanation2 = std::shared_ptr( new PLCExplanation( 1, 1, -1, UPPER, UPPER, emptyVec, RELU ) ); - auto explanation3 = std::shared_ptr( new PLCExplanation( 1, 1, -4, UPPER, UPPER, emptyVec, RELU ) ); + auto explanation1 = std::shared_ptr( new PLCLemma( { 1 }, 1, 0, UPPER, UPPER, emptyVec, RELU ) ); + auto explanation2 = std::shared_ptr( new PLCLemma( { 1 }, 1, -1, UPPER, UPPER, emptyVec, RELU ) ); + auto explanation3 = std::shared_ptr( new PLCLemma( { 1 }, 1, -4, UPPER, UPPER, emptyVec, RELU ) ); - TS_ASSERT( root.getPLCExplanations().empty() ); + TS_ASSERT(root.getPLCLemmas().empty() ); - root.addPLCExplanation( explanation1 ); - root.addPLCExplanation( explanation2 ); - root.addPLCExplanation( explanation3 ); - TS_ASSERT_EQUALS( root.getPLCExplanations().size(), 3U ); + root.addPLCLemma(explanation1); + root.addPLCLemma(explanation2); + root.addPLCLemma(explanation3); + TS_ASSERT_EQUALS(root.getPLCLemmas().size(), 3U ); root.deletePLCExplanations(); - TS_ASSERT( root.getPLCExplanations().empty() ); + TS_ASSERT(root.getPLCLemmas().empty() ); } }; From 3a89aa9d1b1e1697b00d80f28cb636adc56238bf Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Sun, 26 Nov 2023 14:59:12 +0200 Subject: [PATCH 106/165] Add regression tests --- regress/regress1/CMakeLists.txt | 16 + .../input_queries/ACASXU_abstest1.ipq | 936 ++++ .../input_queries/ACASXU_abstest2.ipq | 936 ++++ .../input_queries/ACASXU_maxtest1.ipq | 939 ++++ .../input_queries/ACASXU_maxtest2.ipq | 939 ++++ .../input_queries/deep_6_index_5525.ipq | 4264 +++++++++++++++++ .../input_queries/deep_6_index_5566.ipq | 4264 +++++++++++++++++ .../input_queries/deep_6_index_5567.ipq | 4264 +++++++++++++++++ .../input_queries/deep_6_index_7779.ipq | 4264 +++++++++++++++++ 9 files changed, 20822 insertions(+) create mode 100644 regress/regress1/input_queries/ACASXU_abstest1.ipq create mode 100644 regress/regress1/input_queries/ACASXU_abstest2.ipq create mode 100644 regress/regress1/input_queries/ACASXU_maxtest1.ipq create mode 100644 regress/regress1/input_queries/ACASXU_maxtest2.ipq create mode 100644 regress/regress1/input_queries/deep_6_index_5525.ipq create mode 100644 regress/regress1/input_queries/deep_6_index_5566.ipq create mode 100644 regress/regress1/input_queries/deep_6_index_5567.ipq create mode 100644 regress/regress1/input_queries/deep_6_index_7779.ipq diff --git a/regress/regress1/CMakeLists.txt b/regress/regress1/CMakeLists.txt index 398a515d7d..0470a2f53f 100644 --- a/regress/regress1/CMakeLists.txt +++ b/regress/regress1/CMakeLists.txt @@ -140,6 +140,8 @@ foreach(file ${unsat_ipqs}) endforeach() # Proof production tests + +# ReLU marabou_add_acasxu_proof_test(1 "ACASXU_experimental_v2a_5_9" "3" unsat) marabou_add_acasxu_proof_test(1 "ACASXU_experimental_v2a_5_7" "3" unsat) marabou_add_acasxu_proof_test(1 "ACASXU_experimental_v2a_3_7" "3" unsat) @@ -150,3 +152,17 @@ marabou_add_coav_proof_test(1 "reluBenchmark0.453322172165s_UNSAT.nnet" unsat) marabou_add_coav_proof_test(1 "reluBenchmark0.30711388588s_UNSAT.nnet" unsat) marabou_add_coav_proof_test(1 "reluBenchmark0.725997209549s_UNSAT.nnet" unsat) marabou_add_coav_proof_test(1 "reluBenchmark1.81178617477s_UNSAT.nnet" unsat) + +# Absolute value +marabou_add_input_query_test(1 ACASXU_abstest1.ipq unsat "--prove-unsat" "ipq") +marabou_add_input_query_test(1 ACASXU_abstest2.ipq unsat "--prove-unsat" "ipq") + +# ReLU ad Max +marabou_add_input_query_test(1 ACASXU_maxtest1.ipq unsat "--prove-unsat" "ipq") +marabou_add_input_query_test(1 ACASXU_maxtest2.ipq unsat "--prove-unsat" "ipq") + +# Sign +marabou_add_input_query_test(1 deep_6_index_5566.ipq unsat "--prove-unsat" "ipq") +marabou_add_input_query_test(1 deep_6_index_5567.ipq unsat "--prove-unsat" "ipq") +marabou_add_input_query_test(1 deep_6_index_5525.ipq unsat "--prove-unsat" "ipq") +marabou_add_input_query_test(1 deep_6_index_7779.ipq unsat "--prove-unsat" "ipq") \ No newline at end of file diff --git a/regress/regress1/input_queries/ACASXU_abstest1.ipq b/regress/regress1/input_queries/ACASXU_abstest1.ipq new file mode 100644 index 0000000000..2f35576329 --- /dev/null +++ b/regress/regress1/input_queries/ACASXU_abstest1.ipq @@ -0,0 +1,936 @@ +610 +305 +5 +309 +300 +5 +0,0 +1,1 +2,2 +3,3 +4,4 +5 +0,605 +1,606 +2,607 +3,608 +4,609 +0,-0.3035311561 +1,-0.0095492966 +2,0.0000000000 +3,0.3181818182 +4,0.0833333333 +55,0.0000000000 +56,0.0000000000 +57,0.0000000000 +58,0.0000000000 +59,0.0000000000 +60,0.0000000000 +61,0.0000000000 +62,0.0000000000 +63,0.0000000000 +64,0.0000000000 +65,0.0000000000 +66,0.0000000000 +67,0.0000000000 +68,0.0000000000 +69,0.0000000000 +70,0.0000000000 +71,0.0000000000 +72,0.0000000000 +73,0.0000000000 +74,0.0000000000 +75,0.0000000000 +76,0.0000000000 +77,0.0000000000 +78,0.0000000000 +79,0.0000000000 +80,0.0000000000 +81,0.0000000000 +82,0.0000000000 +83,0.0000000000 +84,0.0000000000 +85,0.0000000000 +86,0.0000000000 +87,0.0000000000 +88,0.0000000000 +89,0.0000000000 +90,0.0000000000 +91,0.0000000000 +92,0.0000000000 +93,0.0000000000 +94,0.0000000000 +95,0.0000000000 +96,0.0000000000 +97,0.0000000000 +98,0.0000000000 +99,0.0000000000 +100,0.0000000000 +101,0.0000000000 +102,0.0000000000 +103,0.0000000000 +104,0.0000000000 +155,0.0000000000 +156,0.0000000000 +157,0.0000000000 +158,0.0000000000 +159,0.0000000000 +160,0.0000000000 +161,0.0000000000 +162,0.0000000000 +163,0.0000000000 +164,0.0000000000 +165,0.0000000000 +166,0.0000000000 +167,0.0000000000 +168,0.0000000000 +169,0.0000000000 +170,0.0000000000 +171,0.0000000000 +172,0.0000000000 +173,0.0000000000 +174,0.0000000000 +175,0.0000000000 +176,0.0000000000 +177,0.0000000000 +178,0.0000000000 +179,0.0000000000 +180,0.0000000000 +181,0.0000000000 +182,0.0000000000 +183,0.0000000000 +184,0.0000000000 +185,0.0000000000 +186,0.0000000000 +187,0.0000000000 +188,0.0000000000 +189,0.0000000000 +190,0.0000000000 +191,0.0000000000 +192,0.0000000000 +193,0.0000000000 +194,0.0000000000 +195,0.0000000000 +196,0.0000000000 +197,0.0000000000 +198,0.0000000000 +199,0.0000000000 +200,0.0000000000 +201,0.0000000000 +202,0.0000000000 +203,0.0000000000 +204,0.0000000000 +255,0.0000000000 +256,0.0000000000 +257,0.0000000000 +258,0.0000000000 +259,0.0000000000 +260,0.0000000000 +261,0.0000000000 +262,0.0000000000 +263,0.0000000000 +264,0.0000000000 +265,0.0000000000 +266,0.0000000000 +267,0.0000000000 +268,0.0000000000 +269,0.0000000000 +270,0.0000000000 +271,0.0000000000 +272,0.0000000000 +273,0.0000000000 +274,0.0000000000 +275,0.0000000000 +276,0.0000000000 +277,0.0000000000 +278,0.0000000000 +279,0.0000000000 +280,0.0000000000 +281,0.0000000000 +282,0.0000000000 +283,0.0000000000 +284,0.0000000000 +285,0.0000000000 +286,0.0000000000 +287,0.0000000000 +288,0.0000000000 +289,0.0000000000 +290,0.0000000000 +291,0.0000000000 +292,0.0000000000 +293,0.0000000000 +294,0.0000000000 +295,0.0000000000 +296,0.0000000000 +297,0.0000000000 +298,0.0000000000 +299,0.0000000000 +300,0.0000000000 +301,0.0000000000 +302,0.0000000000 +303,0.0000000000 +304,0.0000000000 +355,0.0000000000 +356,0.0000000000 +357,0.0000000000 +358,0.0000000000 +359,0.0000000000 +360,0.0000000000 +361,0.0000000000 +362,0.0000000000 +363,0.0000000000 +364,0.0000000000 +365,0.0000000000 +366,0.0000000000 +367,0.0000000000 +368,0.0000000000 +369,0.0000000000 +370,0.0000000000 +371,0.0000000000 +372,0.0000000000 +373,0.0000000000 +374,0.0000000000 +375,0.0000000000 +376,0.0000000000 +377,0.0000000000 +378,0.0000000000 +379,0.0000000000 +380,0.0000000000 +381,0.0000000000 +382,0.0000000000 +383,0.0000000000 +384,0.0000000000 +385,0.0000000000 +386,0.0000000000 +387,0.0000000000 +388,0.0000000000 +389,0.0000000000 +390,0.0000000000 +391,0.0000000000 +392,0.0000000000 +393,0.0000000000 +394,0.0000000000 +395,0.0000000000 +396,0.0000000000 +397,0.0000000000 +398,0.0000000000 +399,0.0000000000 +400,0.0000000000 +401,0.0000000000 +402,0.0000000000 +403,0.0000000000 +404,0.0000000000 +455,0.0000000000 +456,0.0000000000 +457,0.0000000000 +458,0.0000000000 +459,0.0000000000 +460,0.0000000000 +461,0.0000000000 +462,0.0000000000 +463,0.0000000000 +464,0.0000000000 +465,0.0000000000 +466,0.0000000000 +467,0.0000000000 +468,0.0000000000 +469,0.0000000000 +470,0.0000000000 +471,0.0000000000 +472,0.0000000000 +473,0.0000000000 +474,0.0000000000 +475,0.0000000000 +476,0.0000000000 +477,0.0000000000 +478,0.0000000000 +479,0.0000000000 +480,0.0000000000 +481,0.0000000000 +482,0.0000000000 +483,0.0000000000 +484,0.0000000000 +485,0.0000000000 +486,0.0000000000 +487,0.0000000000 +488,0.0000000000 +489,0.0000000000 +490,0.0000000000 +491,0.0000000000 +492,0.0000000000 +493,0.0000000000 +494,0.0000000000 +495,0.0000000000 +496,0.0000000000 +497,0.0000000000 +498,0.0000000000 +499,0.0000000000 +500,0.0000000000 +501,0.0000000000 +502,0.0000000000 +503,0.0000000000 +504,0.0000000000 +555,0.0000000000 +556,0.0000000000 +557,0.0000000000 +558,0.0000000000 +559,0.0000000000 +560,0.0000000000 +561,0.0000000000 +562,0.0000000000 +563,0.0000000000 +564,0.0000000000 +565,0.0000000000 +566,0.0000000000 +567,0.0000000000 +568,0.0000000000 +569,0.0000000000 +570,0.0000000000 +571,0.0000000000 +572,0.0000000000 +573,0.0000000000 +574,0.0000000000 +575,0.0000000000 +576,0.0000000000 +577,0.0000000000 +578,0.0000000000 +579,0.0000000000 +580,0.0000000000 +581,0.0000000000 +582,0.0000000000 +583,0.0000000000 +584,0.0000000000 +585,0.0000000000 +586,0.0000000000 +587,0.0000000000 +588,0.0000000000 +589,0.0000000000 +590,0.0000000000 +591,0.0000000000 +592,0.0000000000 +593,0.0000000000 +594,0.0000000000 +595,0.0000000000 +596,0.0000000000 +597,0.0000000000 +598,0.0000000000 +599,0.0000000000 +600,0.0000000000 +601,0.0000000000 +602,0.0000000000 +603,0.0000000000 +604,0.0000000000 +0,-0.2985528119 +1,0.0095492966 +2,0.0000000000 +3,0.5000000000 +4,0.1666666667 +0,0,-0.2054480000,5,-1.0000000000,0,-0.0791752000,1,-0.8055860000,2,-0.0231979000,3,0.6492470000,4,-0.3977650000 +1,0,0.1529320000,6,-1.0000000000,0,0.0831648000,1,-0.0053629600,2,-0.0106399000,3,0.2752830000,4,-1.1186200000 +2,0,0.2973230000,7,-1.0000000000,0,-0.0121543000,1,-0.0225282000,2,0.0030777100,3,0.1739610000,4,-0.9893810000 +3,0,0.0700899000,8,-1.0000000000,0,-0.0188319000,1,-0.5919010000,2,0.5744220000,3,0.0133294000,4,0.1571980000 +4,0,0.2304720000,9,-1.0000000000,0,0.0076183100,1,-0.6836500000,2,0.7691090000,3,0.0194096000,4,0.0625865000 +5,0,-0.0244775000,10,-1.0000000000,0,-0.0146541000,1,0.4486870000,2,-0.0093057400,3,0.0767494000,4,-0.1252530000 +6,0,0.0623234000,11,-1.0000000000,0,0.0254960000,1,-0.1224730000,2,0.2848140000,3,-0.1630650000,4,0.3784600000 +7,0,0.0104626000,12,-1.0000000000,0,-0.0175174000,1,-0.6880390000,2,-0.7520550000,3,0.1508610000,4,0.0586098000 +8,0,0.2332700000,13,-1.0000000000,0,-0.8379460000,1,0.0050885600,2,0.0025487500,3,0.0002986560,4,0.0004785150 +9,0,0.0381586000,14,-1.0000000000,0,-0.0304969000,1,0.3730200000,2,0.3238480000,3,0.2062570000,4,-0.0738219000 +10,0,0.1047680000,15,-1.0000000000,0,0.0110145000,1,0.2031390000,2,-0.0068470500,3,0.0053478900,4,-0.1776480000 +11,0,0.2408100000,16,-1.0000000000,0,0.1835780000,1,-0.1595540000,2,-0.0217952000,3,-0.0760196000,4,-0.4311610000 +12,0,-0.0008148160,17,-1.0000000000,0,-0.6010810000,1,-0.3745120000,2,0.1210800000,3,0.1110870000,4,0.0674687000 +13,0,-0.0571169000,18,-1.0000000000,0,0.4389810000,1,-0.0260015000,2,0.0048729800,3,0.0094517700,4,-0.1027970000 +14,0,0.3082840000,19,-1.0000000000,0,-0.2567360000,1,0.0414723000,2,0.0250760000,3,0.0229962000,4,-0.6246530000 +15,0,-0.1033020000,20,-1.0000000000,0,0.0429594000,1,-0.2339590000,2,0.7096910000,3,0.3906000000,4,-0.0460539000 +16,0,0.0897029000,21,-1.0000000000,0,-0.0273826000,1,0.3947650000,2,0.0318927000,3,-0.1309280000,4,0.0309174000 +17,0,0.1101810000,22,-1.0000000000,0,0.0388179000,1,0.8747810000,2,0.0088845500,3,0.1797430000,4,-0.4227310000 +18,0,-0.0149063000,23,-1.0000000000,0,0.0048401700,1,-0.2557420000,2,0.0069871900,3,0.0155484000,4,0.0028587300 +19,0,-0.0765153000,24,-1.0000000000,0,0.0531157000,1,0.5544620000,2,-1.0218200000,3,-0.0742762000,4,0.5136160000 +20,0,-0.0765613000,25,-1.0000000000,0,-0.0031590700,1,0.6095360000,2,0.0013275300,3,-0.0172786000,4,0.1178370000 +21,0,0.0004810300,26,-1.0000000000,0,-0.0082555200,1,0.0408410000,2,0.2628560000,3,-0.0570148000,4,0.0756399000 +22,0,0.2362440000,27,-1.0000000000,0,-1.7314200000,1,-0.0066520500,2,0.0032055700,3,-0.0045489500,4,0.0002897680 +23,0,-0.0177100000,28,-1.0000000000,0,-0.0025147900,1,0.0119069000,2,-0.2560870000,3,0.0175635000,4,-0.0083499100 +24,0,-0.0496335000,29,-1.0000000000,0,0.1087090000,1,0.1347450000,2,0.0235604000,3,0.3925300000,4,-0.3658400000 +25,0,-0.0515165000,30,-1.0000000000,0,-0.0040855300,1,-0.0062859000,2,-0.0264389000,3,-0.2799700000,4,0.0833438000 +26,0,-0.0934228000,31,-1.0000000000,0,-0.0067601800,1,-0.0171673000,2,-0.0100484000,3,0.2252690000,4,-0.4766770000 +27,0,0.0831395000,32,-1.0000000000,0,0.1761150000,1,-0.0155748000,2,-0.0590033000,3,-0.2481870000,4,-0.0101645000 +28,0,0.0178516000,33,-1.0000000000,0,-0.0084532000,1,0.0084347300,2,0.0050880900,3,-0.0635845000,4,-0.0696720000 +29,0,0.1648340000,34,-1.0000000000,0,0.0144315000,1,0.7180930000,2,-0.3361720000,3,0.0271960000,4,-0.0351015000 +30,0,0.2495240000,35,-1.0000000000,0,0.0517675000,1,0.0500177000,2,0.0037371000,3,-0.6547200000,4,-0.1800860000 +31,0,0.1243340000,36,-1.0000000000,0,0.4096030000,1,0.0249574000,2,0.0109672000,3,-0.0243713000,4,-0.4344060000 +32,0,0.1284580000,37,-1.0000000000,0,0.0337989000,1,0.0349239000,2,0.0666955000,3,-0.1017380000,4,-0.2172920000 +33,0,-0.0846317000,38,-1.0000000000,0,-0.0578848000,1,0.0039348500,2,-0.0026977100,3,0.1007310000,4,0.1068210000 +34,0,-0.0463441000,39,-1.0000000000,0,-0.1122710000,1,0.0036651300,2,-0.0031566900,3,-0.1475400000,4,0.2992880000 +35,0,0.0056889700,40,-1.0000000000,0,-0.0194027000,1,-0.0051500700,2,-0.7882100000,3,0.0099286400,4,0.0017351000 +36,0,0.0164534000,41,-1.0000000000,0,-0.0271006000,1,0.0004011400,2,-0.0058976400,3,0.0014549100,4,-0.0033024400 +37,0,-0.2154370000,42,-1.0000000000,0,0.0116766000,1,0.5360090000,2,-0.0275709000,3,0.1534740000,4,0.1768590000 +38,0,0.1954830000,43,-1.0000000000,0,0.0362883000,1,-0.8128280000,2,0.5142420000,3,0.0168309000,4,-0.1046500000 +39,0,-0.0681447000,44,-1.0000000000,0,-0.0285223000,1,0.0292113000,2,-0.4637190000,3,0.0711289000,4,0.0201273000 +40,0,0.2583480000,45,-1.0000000000,0,-0.0025733800,1,0.6322630000,2,-0.6442320000,3,0.0718871000,4,-0.0048032500 +41,0,0.0026015500,46,-1.0000000000,0,-0.0029935500,1,-0.0614648000,2,-0.1561560000,3,-0.0891657000,4,0.0621360000 +42,0,-0.0235460000,47,-1.0000000000,0,0.0013785500,1,-0.0527378000,2,0.0882954000,3,0.0677458000,4,-0.1289760000 +43,0,0.0087571400,48,-1.0000000000,0,0.0036954700,1,-0.5934380000,2,0.0018585100,3,0.0032748000,4,-0.0071570500 +44,0,-0.0578874000,49,-1.0000000000,0,-0.0011646800,1,-0.0768908000,2,-0.1464710000,3,0.1298230000,4,-0.0837275000 +45,0,0.1022310000,50,-1.0000000000,0,-0.0296256000,1,0.7594090000,2,-0.7770650000,3,0.0833563000,4,0.0968516000 +46,0,0.0173825000,51,-1.0000000000,0,0.5291000000,1,-0.0275017000,2,0.0058337700,3,-0.0067125200,4,0.0601098000 +47,0,0.0130097000,52,-1.0000000000,0,0.0013095100,1,0.0181797000,2,-0.0036293100,3,0.0010754900,4,-0.0008989490 +48,0,-0.1750940000,53,-1.0000000000,0,0.6483640000,1,0.0113473000,2,0.0106991000,3,0.0001565870,4,-0.0024390300 +49,0,0.0730618000,54,-1.0000000000,0,-0.7588970000,1,-0.0256498000,2,-0.0794754000,3,0.0886265000,4,0.1716210000 +50,0,-0.4182170000,105,-1.0000000000,55,-1.6624000000,56,0.6004090000,57,0.8372300000,58,-0.1870500000,59,-0.6998830000,60,-1.2747500000,61,-0.1579120000,62,-0.6729910000,63,-4.3085500000,64,-0.4881740000,65,-1.0398000000,66,-1.9741500000,67,-1.7593300000,68,-3.1740700000,69,0.8109950000,70,0.1834520000,71,-1.1939600000,72,-1.2180600000,73,-1.7700400000,74,0.2529610000,75,-1.5107600000,76,0.3082350000,77,0.4983270000,78,0.1400340000,79,-2.2019300000,80,0.5134960000,81,0.3912620000,82,-0.4004330000,83,0.4892660000,84,-2.3276300000,85,0.7123660000,86,-2.4744200000,87,0.6182650000,88,-8.6246200000,89,-2.9747800000,90,0.0508015000,91,0.0440257000,92,-1.7773300000,93,-0.9439900000,94,0.0742073000,95,0.2430550000,96,0.0355990000,97,-0.2791670000,98,-1.9136300000,99,-0.0304686000,100,-0.4192450000,101,-0.0511673000,102,0.0568435000,103,-4.1370200000,104,-2.6287400000 +51,0,-0.1081640000,106,-1.0000000000,55,0.3174950000,56,0.1995620000,57,0.4448690000,58,1.0362500000,59,0.4610630000,60,0.1051500000,61,0.5966680000,62,-0.2356500000,63,-0.9351770000,64,-0.6219230000,65,-4.3542600000,66,-0.2877850000,67,-0.0422882000,68,-0.4057120000,69,1.2653900000,70,0.0730596000,71,-3.3745800000,72,-0.7922290000,73,-1.4243700000,74,0.5185740000,75,-1.9249900000,76,-0.2728920000,77,0.5435370000,78,-0.1422880000,79,-0.1110660000,80,-0.4426040000,81,0.3129530000,82,-0.0766076000,83,0.0645864000,84,-2.6583600000,85,0.3465350000,86,-0.0254293000,87,0.1365470000,88,0.2919480000,89,-0.3019180000,90,0.0501793000,91,0.0349753000,92,-0.3148990000,93,-1.0354000000,94,-0.4611410000,95,0.8311870000,96,-0.5693990000,97,0.3454510000,98,-2.5182100000,99,-0.2955640000,100,0.4511620000,101,0.2347100000,102,0.0128539000,103,0.0554303000,104,0.0381163000 +52,0,-0.0004284710,107,-1.0000000000,55,0.0074802600,56,-0.0328552000,57,-0.0342654000,58,-0.0346346000,59,0.0125948000,60,0.0097626900,61,-0.0094603100,62,-0.0012744400,63,0.0054738200,64,0.0426337000,65,-0.0521494000,66,0.0280824000,67,-0.0480202000,68,-0.0402214000,69,-0.0078035800,70,-0.0005294390,71,0.0145430000,72,0.0446493000,73,-0.0641004000,74,-0.0392327000,75,-0.0472644000,76,0.0054104900,77,-0.0034759000,78,-0.0132844000,79,-0.0308557000,80,0.0272854000,81,0.0193407000,82,0.0014767000,83,-0.0418737000,84,-0.0083420700,85,-0.0382358000,86,0.0355996000,87,-0.0334360000,88,-0.0644004000,89,-0.0567421000,90,0.0184382000,91,0.0057656100,92,-0.0127343000,93,-0.0192676000,94,-0.0171769000,95,0.0093419100,96,0.0356295000,97,-0.0344266000,98,0.0231784000,99,-0.0183199000,100,-0.0407840000,101,-0.0113816000,102,0.0063561700,103,0.0151175000,104,0.0234867000 +53,0,0.0734899000,108,-1.0000000000,55,0.1313590000,56,0.0659280000,57,-0.1257380000,58,-0.5108100000,59,-0.0972882000,60,0.2943260000,61,-0.4491410000,62,-0.2388180000,63,0.9940520000,64,-0.0332319000,65,0.4876550000,66,-0.1016230000,67,0.1232590000,68,0.2393460000,69,-0.1420190000,70,0.2778030000,71,0.2877650000,72,-0.0226604000,73,0.2903250000,74,-0.3631710000,75,0.4222540000,76,-0.1991280000,77,-0.1528280000,78,0.7679850000,79,-0.6174030000,80,0.1464470000,81,0.0134495000,82,-0.1566590000,83,-0.1117250000,84,0.2110320000,85,-0.0774859000,86,-0.0100138000,87,0.5399600000,88,-0.3891150000,89,0.2678830000,90,0.4907810000,91,-0.0059242700,92,0.1230760000,93,0.4687570000,94,0.6674990000,95,0.6879880000,96,-0.6520940000,97,-0.0614384000,98,0.0370788000,99,0.0628399000,100,-0.6224220000,101,0.0192683000,102,-0.0053712300,103,-0.0261650000,104,-0.0919633000 +54,0,-0.0058133400,109,-1.0000000000,55,0.0428962000,56,-0.0374688000,57,0.1602030000,58,-0.6138390000,59,-1.3097100000,60,0.0645085000,61,-0.2055750000,62,0.3088590000,63,2.3230800000,64,0.6836420000,65,0.1779800000,66,0.0598207000,67,0.0980812000,68,-0.0159498000,69,-1.2018500000,70,0.0407716000,71,-0.2633440000,72,-0.0309549000,73,0.6703620000,74,-0.1129780000,75,0.7558720000,76,0.6788930000,77,0.1493120000,78,-0.1400250000,79,-0.1202210000,80,-0.0062980800,81,0.0270603000,82,0.1593440000,83,-0.2638400000,84,0.8209530000,85,-0.1439370000,86,-0.0483052000,87,0.2127200000,88,0.0515290000,89,0.5176780000,90,0.0601272000,91,0.0340761000,92,-0.1097520000,93,-0.3934340000,94,0.2243980000,95,0.2362940000,96,-0.6035430000,97,0.0772027000,98,0.4009400000,99,-0.2989940000,100,-0.3847300000,101,-0.1938540000,102,0.0180793000,103,0.3896010000,104,0.1535880000 +55,0,0.5592280000,110,-1.0000000000,55,0.2429370000,56,0.2846820000,57,0.5714830000,58,1.0635200000,59,-0.1074600000,60,-0.7460130000,61,-1.0700000000,62,0.1113780000,63,-2.7344000000,64,0.6713880000,65,-0.6248320000,66,1.1104200000,67,-0.3600250000,68,-0.4266200000,69,-0.3134830000,70,-0.5678130000,71,1.0375100000,72,-0.0117551000,73,-1.5216800000,74,0.8986640000,75,0.5930030000,76,1.5803100000,77,0.2308090000,78,0.3675670000,79,0.1339710000,80,-0.2067600000,81,-0.3484050000,82,-0.2222910000,83,-0.2533220000,84,-1.4575700000,85,-0.3432930000,86,0.6743290000,87,-1.5933000000,88,-3.3484900000,89,-0.7789380000,90,0.4322130000,91,0.0358610000,92,0.7193280000,93,-0.4130540000,94,0.3003560000,95,-0.6317340000,96,0.0318712000,97,0.1897090000,98,-2.5000500000,99,0.4059610000,100,1.1535300000,101,0.1375800000,102,-0.0212919000,103,-0.5273450000,104,0.6411540000 +56,0,0.2120990000,111,-1.0000000000,55,0.0901192000,56,-0.0277403000,57,-0.2157280000,58,-0.2566550000,59,0.0365804000,60,0.1528680000,61,-0.0344422000,62,-0.3327700000,63,3.3815600000,64,-0.6073630000,65,0.2528050000,66,0.3189960000,67,0.5933180000,68,0.0997416000,69,0.0264456000,70,0.0213670000,71,0.3381690000,72,0.6735670000,73,0.2876650000,74,-0.1634720000,75,0.4146830000,76,0.2888670000,77,0.1223830000,78,0.0309409000,79,-0.5408390000,80,-0.0459610000,81,0.1791970000,82,0.0569545000,83,0.0668000000,84,-1.4422100000,85,0.1300790000,86,0.6106830000,87,0.3456550000,88,-0.0174684000,89,0.2330800000,90,0.3208470000,91,0.0258956000,92,-0.3449140000,93,-0.1761250000,94,0.2418860000,95,-0.3840390000,96,0.1436610000,97,0.1403370000,98,0.2916450000,99,0.3257440000,100,-0.4502650000,101,-0.8144380000,102,-0.0485940000,103,0.3867980000,104,0.3986910000 +57,0,0.1549470000,112,-1.0000000000,55,-0.6172740000,56,0.0836032000,57,0.2575660000,58,0.8357690000,59,0.5580220000,60,0.1954880000,61,0.1717090000,62,-0.5986100000,63,1.8449300000,64,-0.0150866000,65,-0.2108160000,66,-0.1142350000,67,-0.0726916000,68,-0.1738790000,69,0.1319550000,70,-0.2643600000,71,0.3017990000,72,0.5512500000,73,-4.8363700000,74,-0.1738450000,75,-0.0562038000,76,0.3134510000,77,-0.2170040000,78,0.5422550000,79,0.8352400000,80,-0.1277460000,81,0.0445139000,82,0.0346317000,83,0.0545435000,84,0.0090921800,85,-0.1415160000,86,0.1877900000,87,0.6491530000,88,1.3373200000,89,-0.8187570000,90,0.3618030000,91,0.0224626000,92,-0.3119740000,93,-0.5219070000,94,0.1693560000,95,-1.0188900000,96,0.5123050000,97,0.7328110000,98,-2.7481000000,99,0.4648780000,100,0.4512590000,101,-0.0794774000,102,-0.0407900000,103,0.1107330000,104,-0.0259144000 +58,0,-0.0364135000,113,-1.0000000000,55,-0.5086890000,56,0.2070090000,57,0.2396800000,58,0.6213390000,59,0.1975710000,60,-0.5152620000,61,0.1089490000,62,-0.2425300000,63,-1.5870700000,64,-0.5693590000,65,0.2430780000,66,-0.6707620000,67,-0.0534863000,68,-1.6534500000,69,0.4987470000,70,0.6744530000,71,-0.5947900000,72,0.1610980000,73,-0.8315810000,74,0.0517297000,75,-0.1891740000,76,-0.3993460000,77,0.1574810000,78,0.0990085000,79,0.1627090000,80,-0.1995590000,81,0.0326205000,82,0.0853214000,83,0.2126000000,84,0.5391190000,85,0.2635950000,86,-1.8291200000,87,0.0826771000,88,0.3732440000,89,-0.9870380000,90,0.1462360000,91,0.0052544300,92,0.0479386000,93,-0.0824678000,94,-0.0454254000,95,-0.4899110000,96,-0.2998390000,97,0.0077668900,98,-1.7591200000,99,-0.1319680000,100,0.5829430000,101,0.0537947000,102,-0.0229962000,103,-1.2804300000,104,-0.0687526000 +59,0,-0.1409840000,114,-1.0000000000,55,-0.2371690000,56,-0.0840681000,57,0.3060710000,58,0.0086512800,59,-0.0968777000,60,-0.4511080000,61,-0.1827490000,62,0.1370130000,63,0.0662212000,64,0.4045830000,65,0.0906806000,66,-0.5947270000,67,-0.0836159000,68,-0.0193039000,69,0.4156300000,70,0.2214010000,71,-0.6798610000,72,0.6804750000,73,0.3706430000,74,-0.3029060000,75,0.3659810000,76,1.6104900000,77,-0.0251486000,78,0.2503840000,79,0.4203940000,80,-0.4983330000,81,0.0386534000,82,0.2050830000,83,-0.2248810000,84,-1.2352200000,85,-0.2316580000,86,0.0882689000,87,0.1382730000,88,0.0509715000,89,0.1052600000,90,0.6862420000,91,-0.0430110000,92,-0.1844230000,93,-0.4328490000,94,-0.2381560000,95,0.6152970000,96,-0.1054960000,97,0.1143610000,98,0.5728840000,99,-0.8233240000,100,-0.0529253000,101,0.0706324000,102,0.0198409000,103,-0.3549450000,104,0.0172577000 +60,0,0.0218594000,115,-1.0000000000,55,-0.0049506000,56,-0.0262812000,57,-0.0279284000,58,0.0269358000,59,0.0402161000,60,0.0145784000,61,0.0193529000,62,0.0030701400,63,-0.0336963000,64,0.0108218000,65,-0.0201564000,66,0.0296659000,67,0.0310158000,68,-0.0526409000,69,0.0165847000,70,0.0002375000,71,-0.0054985000,72,0.0021783200,73,-0.0525973000,74,0.0198344000,75,-0.0443976000,76,-0.0483561000,77,-0.0331141000,78,0.0045434700,79,0.0234686000,80,0.0034879400,81,-0.0141378000,82,0.0373484000,83,-0.0525376000,84,-0.0283521000,85,-0.0150559000,86,-0.0401629000,87,0.0411796000,88,-0.0540754000,89,-0.0192431000,90,0.0216726000,91,-0.0463700000,92,0.0050073100,93,-0.0402902000,94,0.0165448000,95,0.0363628000,96,0.0229712000,97,-0.0138812000,98,-0.0408620000,99,-0.0285646000,100,-0.0021425000,101,-0.0209999000,102,0.0319677000,103,-0.0222577000,104,-0.0517600000 +61,0,0.0642797000,116,-1.0000000000,55,-0.0678221000,56,0.0875314000,57,0.0116438000,58,-0.0970798000,59,0.7729360000,60,-0.5456240000,61,-0.1410510000,62,0.0744865000,63,2.7094500000,64,-0.0343198000,65,-0.7921800000,66,-1.3503000000,67,0.3684290000,68,-2.5749900000,69,0.2649450000,70,-0.0461333000,71,-0.1776400000,72,0.1218500000,73,-0.3861610000,74,0.0920428000,75,0.0856842000,76,0.1217250000,77,1.6405200000,78,-0.0974691000,79,0.4840340000,80,-0.0325745000,81,-0.1013180000,82,-0.4287940000,83,-0.3165710000,84,-0.3625920000,85,0.2239830000,86,-2.5077600000,87,-1.1564700000,88,-2.0158600000,89,-0.1928090000,90,0.1045660000,91,-0.0120101000,92,0.2687320000,93,-0.6358930000,94,-0.2886230000,95,0.6484760000,96,-0.0651778000,97,-0.1509500000,98,0.0113257000,99,-0.4959350000,100,-0.0632651000,101,-0.0446597000,102,-0.0364008000,103,-2.2486800000,104,0.7119860000 +62,0,0.0609079000,117,-1.0000000000,55,-0.2884630000,56,-0.3003550000,57,-0.2883280000,58,0.8553000000,59,-0.7334200000,60,0.2492800000,61,-0.1000620000,62,0.0401702000,63,-2.6562400000,64,-0.6102040000,65,0.6779300000,66,0.8029060000,67,0.1556100000,68,-0.0054783500,69,-0.4381590000,70,0.3410350000,71,0.3992570000,72,0.0831196000,73,-0.1336700000,74,-0.0435247000,75,0.2472760000,76,-0.0648787000,77,0.0793357000,78,0.2355450000,79,0.1862690000,80,0.1320270000,81,-0.1463950000,82,-0.1239510000,83,0.0261328000,84,-0.1119030000,85,0.4555570000,86,-0.0550636000,87,-0.3465300000,88,-1.6347900000,89,-0.2043170000,90,0.3794770000,91,0.0303098000,92,-0.0477353000,93,0.1995590000,94,0.0427920000,95,-0.2436880000,96,0.3557040000,97,0.4645470000,98,0.0852336000,99,0.2114580000,100,-0.1457590000,101,0.0592002000,102,-0.0043004900,103,-0.1547950000,104,-0.9623020000 +63,0,0.0275522000,118,-1.0000000000,55,-0.2072490000,56,-0.0967890000,57,0.2177800000,58,0.3572170000,59,-0.2268890000,60,-0.2535110000,61,0.0486459000,62,0.1130250000,63,5.2983000000,64,0.1309130000,65,-0.5069250000,66,-0.7958030000,67,-0.1354490000,68,-0.4401900000,69,0.2611290000,70,0.3604670000,71,0.0447295000,72,-0.2887690000,73,-0.2668090000,74,-0.1935460000,75,-0.1259080000,76,0.6592860000,77,1.0953300000,78,0.3258470000,79,0.2545480000,80,-0.0805392000,81,-0.1571860000,82,-0.1202990000,83,-0.2641540000,84,0.1597960000,85,-0.0945474000,86,-0.1603540000,87,-0.0684857000,88,-0.3435700000,89,-0.1732290000,90,0.5881390000,91,0.0608326000,92,0.0146147000,93,-0.1244270000,94,-0.2986330000,95,-1.0435300000,96,0.3532950000,97,0.2432430000,98,-0.5602060000,99,-0.2453260000,100,0.2276100000,101,0.3346660000,102,0.0097533800,103,0.0517962000,104,0.4270060000 +64,0,0.0192413000,119,-1.0000000000,55,-0.0649568000,56,-0.3985490000,57,0.2839980000,58,-0.5806010000,59,-0.5753390000,60,-0.0312978000,61,-0.3809500000,62,0.0782903000,63,-1.4175800000,64,0.0733965000,65,0.8484310000,66,-0.1706810000,67,0.0764858000,68,0.0468250000,69,0.2715870000,70,-0.2212870000,71,0.1000440000,72,0.0135967000,73,0.3488990000,74,-0.2125120000,75,-0.0700160000,76,0.7002280000,77,-0.1139310000,78,0.2234570000,79,-0.2995880000,80,0.2575640000,81,-0.1835830000,82,0.1152260000,83,0.3380610000,84,-0.7685980000,85,0.3094300000,86,-0.0423157000,87,0.7136610000,88,-0.4031080000,89,0.6664210000,90,-0.1876770000,91,-0.0404267000,92,0.3418930000,93,-0.2346870000,94,0.3627930000,95,1.4516900000,96,0.1562600000,97,-0.4860230000,98,0.4355630000,99,-0.0781989000,100,-0.4884560000,101,-0.1083560000,102,-0.0243637000,103,0.1534090000,104,0.0555718000 +65,0,0.0936820000,120,-1.0000000000,55,0.1196280000,56,0.1162780000,57,0.3317540000,58,0.1610420000,59,1.6466400000,60,-0.1060020000,61,0.3061200000,62,-0.3512850000,63,0.3474690000,64,-0.8458960000,65,0.5954240000,66,0.2688130000,67,0.2156390000,68,-0.0187109000,69,0.3448990000,70,-0.1226010000,71,-1.2766900000,72,0.2840550000,73,0.1293810000,74,0.2941560000,75,0.2133090000,76,-0.5483140000,77,-0.0447301000,78,0.3951030000,79,-0.2313060000,80,-0.8785300000,81,0.4317880000,82,-0.2752270000,83,-0.2557970000,84,1.2137500000,85,-0.2851200000,86,0.0971700000,87,-0.0849007000,88,-0.1377480000,89,-0.1957970000,90,0.4104690000,91,-0.0128422000,92,-0.2110680000,93,0.4452190000,94,0.3578260000,95,1.3486200000,96,-0.4862720000,97,0.3708930000,98,0.5719270000,99,0.4257480000,100,0.3736770000,101,0.0992524000,102,0.0439027000,103,-0.0570875000,104,-0.1749040000 +66,0,-0.0063351000,121,-1.0000000000,55,0.1128600000,56,-0.0293449000,57,-0.0621066000,58,-0.5154250000,59,0.0000522321,60,-0.0384339000,61,0.1187080000,62,-0.2228470000,63,0.3592260000,64,-0.2780100000,65,0.6292550000,66,0.0728469000,67,0.1132170000,68,0.0988369000,69,0.2533950000,70,-0.2736290000,71,0.3162580000,72,-0.1300290000,73,0.1568690000,74,-0.2100850000,75,-0.1058670000,76,0.1583000000,77,-0.1665340000,78,0.1276330000,79,-0.2087600000,80,0.0201812000,81,-0.0510530000,82,-0.0654119000,83,0.0835238000,84,-0.6636690000,85,0.1475770000,86,-0.0287702000,87,-0.0249459000,88,0.2670010000,89,0.1666890000,90,0.2214830000,91,-0.0483156000,92,0.1353550000,93,-0.0568225000,94,0.2168760000,95,-0.5966020000,96,0.0279521000,97,0.0062535700,98,0.1862860000,99,-0.1588720000,100,-0.1627960000,101,-0.0485343000,102,0.0232645000,103,0.3390060000,104,-0.1587690000 +67,0,0.0140007000,122,-1.0000000000,55,-0.0039056000,56,0.0028878200,57,0.0133720000,58,-0.0408285000,59,0.0065561800,60,-0.0537703000,61,0.0145830000,62,-0.0550954000,63,-0.0099984900,64,0.0240699000,65,0.0209653000,66,-0.0013950200,67,-0.0368613000,68,0.0130199000,69,0.0360120000,70,-0.0405892000,71,-0.0055849900,72,-0.0173896000,73,-0.0300710000,74,-0.0393414000,75,0.0288826000,76,-0.0043633200,77,-0.0435909000,78,0.0295683000,79,-0.0318165000,80,0.0093753400,81,0.0057735600,82,-0.0386423000,83,0.0321255000,84,0.0345780000,85,-0.0068625900,86,0.0244421000,87,-0.0185031000,88,-0.0427987000,89,0.0044361600,90,-0.0178007000,91,-0.0145995000,92,-0.0177453000,93,-0.0023174400,94,-0.0563210000,95,0.0421168000,96,0.0247125000,97,-0.0332195000,98,0.0324101000,99,0.0031308900,100,0.0404586000,101,-0.0436072000,102,0.0249205000,103,-0.0427439000,104,-0.0153902000 +68,0,-0.3207830000,123,-1.0000000000,55,-0.2761580000,56,0.5148330000,57,0.5256380000,58,0.5117420000,59,1.1740500000,60,-0.3209030000,61,0.5332500000,62,0.2308650000,63,-5.5295100000,64,-0.5655140000,65,-1.0983200000,66,1.6074900000,67,-1.0175600000,68,0.7876610000,69,0.7174830000,70,0.4698180000,71,-1.0643100000,72,-0.0284677000,73,-0.0383786000,74,0.5268440000,75,0.0855487000,76,-0.4497120000,77,-0.7843280000,78,0.2375440000,79,0.3460550000,80,-0.1135680000,81,0.6419000000,82,0.6066610000,83,0.3017330000,84,0.3346380000,85,0.8084380000,86,0.4407170000,87,1.0643000000,88,0.3071390000,89,-1.1199500000,90,0.1382730000,91,-0.0138277000,92,-0.3344680000,93,0.4400230000,94,-0.0291714000,95,1.4060200000,96,-0.3481780000,97,1.1097200000,98,-0.3115740000,99,0.2520140000,100,0.2534550000,101,-0.7536810000,102,-0.0144338000,103,0.5301890000,104,-0.2747920000 +69,0,0.1787350000,124,-1.0000000000,55,-0.0037201200,56,0.1805310000,57,0.5297400000,58,-0.0682669000,59,-0.2983440000,60,0.0235376000,61,0.0977713000,62,-0.1331700000,63,1.9081000000,64,-0.4221800000,65,0.3028640000,66,0.0368479000,67,0.1192890000,68,-0.0469983000,69,0.4052820000,70,0.0585585000,71,-0.0602050000,72,0.2550500000,73,0.4827610000,74,0.0832428000,75,0.4414060000,76,0.0935278000,77,-0.1806120000,78,-0.0160449000,79,-0.0613045000,80,-0.0231904000,81,0.0630266000,82,0.0744425000,83,0.0269271000,84,-0.2652310000,85,-0.0291742000,86,-0.0535636000,87,-0.0162938000,88,-0.5810970000,89,-0.8187590000,90,0.2099850000,91,0.0397716000,92,-0.0659838000,93,0.1140180000,94,-0.3235400000,95,-0.0078257900,96,0.2694730000,97,0.1388200000,98,0.5185400000,99,0.0758185000,100,0.0964170000,101,-0.3490740000,102,0.0061976600,103,0.2990480000,104,-0.2898510000 +70,0,0.0209368000,125,-1.0000000000,55,-0.0013272600,56,-0.0274749000,57,-0.0494290000,58,-0.0260085000,59,0.0126392000,60,-0.0507136000,61,-0.0007504870,62,0.0269326000,63,-0.0167722000,64,-0.0246316000,65,-0.0137325000,66,-0.0025292300,67,-0.0049604600,68,0.0257720000,69,0.0393321000,70,-0.0101105000,71,0.0017425400,72,0.0034314700,73,-0.0303036000,74,-0.0089938300,75,-0.0382894000,76,0.0331632000,77,-0.0081918800,78,0.0333315000,79,-0.0138525000,80,-0.0096972600,81,-0.0478274000,82,-0.0048039800,83,-0.0348900000,84,0.0136535000,85,0.0375721000,86,-0.0177501000,87,0.0407428000,88,-0.0092398800,89,-0.0434969000,90,-0.0225774000,91,-0.0056313800,92,-0.0490947000,93,-0.0479704000,94,0.0128160000,95,0.0283796000,96,-0.0005717740,97,-0.0345308000,98,-0.0077959600,99,-0.0543503000,100,-0.0421590000,101,0.0028681100,102,0.0137756000,103,0.0292642000,104,0.0110485000 +71,0,0.0282835000,126,-1.0000000000,55,-0.0214051000,56,0.0711848000,57,0.0441676000,58,0.4239840000,59,0.5245440000,60,0.1596030000,61,0.0480203000,62,-0.3002360000,63,1.7489300000,64,0.0111433000,65,0.1970140000,66,0.9235430000,67,-0.0608398000,68,0.0638251000,69,0.7211730000,70,-0.0727212000,71,-0.0312495000,72,0.0558343000,73,-0.0980138000,74,0.2869640000,75,-0.3090310000,76,0.2867040000,77,0.8052760000,78,0.0455501000,79,0.1338720000,80,0.1535730000,81,0.0170853000,82,-0.1956010000,83,0.2013140000,84,-0.2432110000,85,0.1020090000,86,-0.4500340000,87,-0.4303910000,88,0.1909810000,89,-0.1716470000,90,0.1373760000,91,-0.0145371000,92,0.1977690000,93,0.0880365000,94,0.0180877000,95,-0.0034428000,96,0.1714490000,97,0.3101890000,98,-0.3375860000,99,0.1787200000,100,-0.0614445000,101,-0.1453230000,102,0.0028007400,103,-0.3720210000,104,0.0531983000 +72,0,-1.0435300000,127,-1.0000000000,55,0.2215240000,56,0.7063780000,57,0.8395210000,58,0.2158120000,59,0.5316570000,60,-0.0433689000,61,-0.1989450000,62,0.9658420000,63,2.2392400000,64,0.7400400000,65,1.0899900000,66,1.7708500000,67,-0.1560530000,68,0.0574351000,69,1.1104400000,70,0.3982940000,71,-0.0358516000,72,0.4834720000,73,0.7636190000,74,-0.2672620000,75,-0.0624070000,76,0.1633060000,77,1.1785900000,78,0.0095730000,79,-0.4113880000,80,0.2652550000,81,0.9092790000,82,-0.4008670000,83,0.3084050000,84,-0.0783983000,85,0.2506220000,86,0.1493660000,87,0.9001770000,88,3.2323400000,89,0.0027075100,90,-0.4779910000,91,0.0286257000,92,0.2074490000,93,0.0626681000,94,0.2906690000,95,1.3781400000,96,0.7881730000,97,0.7069770000,98,-0.0862723000,99,0.5524980000,100,-0.1445320000,101,0.1891130000,102,0.0149021000,103,0.2589810000,104,0.8320260000 +73,0,0.0642598000,128,-1.0000000000,55,-0.2249470000,56,-0.0330178000,57,0.8056070000,58,0.2760980000,59,0.4338550000,60,-0.5983740000,61,0.3390540000,62,0.0357108000,63,-1.7436300000,64,0.2375120000,65,0.4269610000,66,0.2166540000,67,0.0984003000,68,0.1311580000,69,0.0522431000,70,-0.0841855000,71,1.5012200000,72,-0.5513170000,73,-0.2937800000,74,-0.4072170000,75,0.6982100000,76,0.2894510000,77,-0.1098010000,78,-0.5254580000,79,0.3268850000,80,0.1596370000,81,-0.1291830000,82,0.4728680000,83,0.1729980000,84,0.5350800000,85,0.0120634000,86,0.1795810000,87,-0.5485740000,88,-0.4654440000,89,-0.2137670000,90,0.1370410000,91,0.0066005000,92,0.0332073000,93,0.3231610000,94,-0.4066610000,95,-2.0249500000,96,-0.0892030000,97,0.3588810000,98,0.1339030000,99,0.7520730000,100,-0.5684330000,101,-0.3382080000,102,-0.0103280000,103,-0.0401752000,104,-0.4410220000 +74,0,0.0253698000,129,-1.0000000000,55,-0.1626570000,56,0.0269416000,57,-0.0059207100,58,0.0404090000,59,-0.0632487000,60,0.2110120000,61,-0.0057055100,62,0.0617079000,63,-0.1480620000,64,0.0003216320,65,-0.0567887000,66,-0.2139110000,67,-0.1192000000,68,0.1716150000,69,0.1886560000,70,0.1691720000,71,-0.4100030000,72,0.2381740000,73,-0.1443070000,74,-0.2856250000,75,0.3899130000,76,-0.0768084000,77,-0.0071431000,78,0.0297661000,79,-0.0146486000,80,0.1065590000,81,0.0922650000,82,0.1813220000,83,-0.0479720000,84,-0.2560240000,85,0.1401120000,86,-0.0879543000,87,-0.6586600000,88,0.0709482000,89,0.1965390000,90,-0.0698451000,91,0.0214678000,92,0.3444190000,93,0.3917660000,94,-0.1659100000,95,-0.6882830000,96,-0.0964599000,97,-0.4390580000,98,-0.0567010000,99,0.2565410000,100,-0.4482550000,101,-0.0898670000,102,-0.0101746000,103,0.0046866700,104,0.0481961000 +75,0,-0.0216662000,130,-1.0000000000,55,-0.5620690000,56,-0.6525620000,57,-0.9064470000,58,0.6416710000,59,0.2890120000,60,0.1441930000,61,-0.5497950000,62,-0.1032560000,63,-1.7492700000,64,-0.6863390000,65,0.0104203000,66,0.0334146000,67,-0.2485680000,68,-0.5207040000,69,-0.4370440000,70,0.4406480000,71,-0.2672140000,72,-0.2974460000,73,0.2542470000,74,-0.1274700000,75,0.3002720000,76,0.5889620000,77,0.5617200000,78,0.3897540000,79,0.8494130000,80,0.4421660000,81,-0.8672540000,82,0.0073172000,83,-0.2895820000,84,0.6230720000,85,0.2992940000,86,-0.6163310000,87,0.5840850000,88,-0.7426540000,89,-0.1775690000,90,0.1805010000,91,0.0016313100,92,0.1032650000,93,0.0791120000,94,0.2490870000,95,-1.6870500000,96,0.3896850000,97,-0.5584220000,98,0.6928710000,99,0.1653500000,100,0.8049910000,101,0.3315740000,102,0.0306042000,103,-0.6387990000,104,0.0824105000 +76,0,0.0044630500,131,-1.0000000000,55,-0.0522923000,56,0.0018486100,57,-0.0155445000,58,-0.0088821100,59,-0.0423245000,60,-0.0354298000,61,-0.0361790000,62,-0.0333245000,63,-0.0243396000,64,-0.0140070000,65,-0.0060567700,66,-0.0324102000,67,-0.0302088000,68,-0.0153718000,69,0.0338280000,70,0.0235742000,71,0.0400973000,72,-0.0543651000,73,-0.0332964000,74,-0.0213359000,75,0.0433305000,76,-0.0103490000,77,-0.0192177000,78,0.0177799000,79,0.0127845000,80,-0.0027673600,81,0.0207512000,82,-0.0448035000,83,-0.0098291800,84,0.0042210300,85,-0.0358527000,86,-0.0063471900,87,0.0161987000,88,0.0059542800,89,-0.0459544000,90,0.0026470200,91,-0.0254746000,92,0.0025761500,93,-0.0015573300,94,-0.0104020000,95,0.0331584000,96,-0.0266543000,97,0.0267417000,98,-0.0496300000,99,-0.0069703400,100,0.0029863000,101,0.0006068070,102,-0.0027747200,103,-0.0149881000,104,-0.0018220900 +77,0,0.0617820000,132,-1.0000000000,55,0.1830280000,56,0.1187540000,57,-0.1383050000,58,-0.1410580000,59,1.8268400000,60,0.2361450000,61,0.2495380000,62,-0.4378000000,63,1.8188300000,64,-0.9718540000,65,0.3943830000,66,0.6234490000,67,0.1420750000,68,-0.1884150000,69,-1.3114100000,70,0.2748240000,71,-0.1365060000,72,-0.0660491000,73,-0.6028900000,74,0.0616666000,75,-0.2190020000,76,-0.0020748100,77,-0.3121950000,78,0.7036880000,79,-0.0521945000,80,-0.3371820000,81,0.0802589000,82,0.6521710000,83,-0.6160870000,84,0.7645520000,85,-0.0012192500,86,-0.0141650000,87,-0.2804180000,88,-0.6858320000,89,0.2109720000,90,0.3944190000,91,0.0413575000,92,0.2602050000,93,0.8098880000,94,0.1474900000,95,2.7771500000,96,-0.0356566000,97,0.3169250000,98,-0.4436120000,99,0.1933950000,100,-0.5101130000,101,0.3587130000,102,0.0434483000,103,-0.3624000000,104,-0.0275692000 +78,0,0.0083206600,133,-1.0000000000,55,0.0326766000,56,0.0981174000,57,0.0100184000,58,-0.2151240000,59,0.2087810000,60,-0.9296850000,61,0.3762570000,62,0.0089034700,63,-0.1019160000,64,0.1818420000,65,-1.5819100000,66,-0.1451490000,67,-0.1847350000,68,0.2308200000,69,0.0898909000,70,-0.1401250000,71,-0.1018090000,72,-0.6970090000,73,0.4070420000,74,0.1094760000,75,-0.3174210000,76,0.0420133000,77,-0.0878543000,78,0.0604008000,79,-0.0201643000,80,-0.0769754000,81,0.2255620000,82,-0.0324858000,83,-0.0582055000,84,-1.6577300000,85,0.0408354000,86,0.0289451000,87,0.1622100000,88,0.7842220000,89,-0.2700990000,90,-0.0798351000,91,-0.0114031000,92,-0.1617520000,93,0.3554700000,94,0.2413910000,95,-1.0989400000,96,-0.2451160000,97,0.0749781000,98,0.2185630000,99,0.4836900000,100,-0.1517120000,101,-0.2138520000,102,0.0320677000,103,0.1143530000,104,0.0021620100 +79,0,0.1621730000,134,-1.0000000000,55,0.3205160000,56,-0.1402740000,57,-0.6146560000,58,1.4034900000,59,-1.0818700000,60,0.5327510000,61,-0.3385170000,62,0.2410940000,63,-0.2151550000,64,0.2489390000,65,0.6822280000,66,-0.0728491000,67,0.1969750000,68,0.1833760000,69,-0.9053550000,70,-0.4331160000,71,0.3806160000,72,-0.1226990000,73,0.0458576000,74,-0.1362720000,75,0.2853720000,76,0.4737900000,77,-0.0049656300,78,0.1330580000,79,-0.2065850000,80,0.5847050000,81,-0.2530920000,82,0.0388551000,83,0.4895110000,84,-1.3845200000,85,0.0767565000,86,-0.1612100000,87,0.6526010000,88,-0.7503510000,89,0.2158610000,90,-0.3964800000,91,0.0237346000,92,0.1050020000,93,0.1056780000,94,-0.0254853000,95,-1.9376100000,96,0.2003350000,97,-0.0818364000,98,0.0646253000,99,0.3181210000,100,1.3537300000,101,0.1413690000,102,-0.0347680000,103,-0.0347533000,104,-0.1435950000 +80,0,0.1410390000,135,-1.0000000000,55,0.2113990000,56,0.0690854000,57,0.2377970000,58,0.2614590000,59,0.4974640000,60,-0.5748700000,61,0.0519737000,62,0.0012127200,63,3.6924900000,64,-0.4418980000,65,2.7850500000,66,0.3833360000,67,-0.0530825000,68,0.0050994700,69,0.4959980000,70,-0.0416300000,71,-0.3233040000,72,-0.4174290000,73,-0.1093990000,74,0.1445840000,75,-0.0492550000,76,-0.2221240000,77,0.0285879000,78,0.2899970000,79,-0.1727940000,80,0.0722204000,81,0.2066340000,82,-0.2079470000,83,-0.0054722600,84,1.0220600000,85,0.0087770400,86,0.0084892200,87,0.5016140000,88,1.0305800000,89,-0.1527770000,90,0.3801290000,91,0.0397173000,92,-0.4966180000,93,0.6555090000,94,0.0083890400,95,-1.6683400000,96,-0.2086650000,97,0.3552900000,98,-0.3131770000,99,0.2873790000,100,-0.2217930000,101,-0.0526910000,102,0.0197572000,103,0.1160740000,104,-0.0757014000 +81,0,0.0164645000,136,-1.0000000000,55,-0.0202978000,56,-0.0454639000,57,0.0201889000,58,0.0309532000,59,-0.0312355000,60,-0.0203498000,61,-0.0037927000,62,-0.0448247000,63,-0.0402365000,64,-0.0445042000,65,0.0186899000,66,0.0039142200,67,-0.0313823000,68,0.0326569000,69,0.0353074000,70,-0.0155120000,71,-0.0011952000,72,0.0183358000,73,-0.0405123000,74,-0.0115252000,75,-0.0138372000,76,0.0301999000,77,-0.0045505200,78,0.0428189000,79,-0.0505259000,80,0.0054155300,81,-0.0119807000,82,0.0362480000,83,-0.0012918300,84,-0.0381496000,85,-0.0456021000,86,-0.0129904000,87,-0.0296187000,88,0.0365160000,89,-0.0172417000,90,0.0148345000,91,-0.0320484000,92,-0.0346021000,93,0.0179681000,94,-0.0092314800,95,-0.0190496000,96,-0.0440467000,97,-0.0284443000,98,-0.0302567000,99,0.0005996130,100,0.0121688000,101,-0.0239802000,102,-0.0032537500,103,-0.0044083100,104,-0.0099274800 +82,0,-0.0053231000,137,-1.0000000000,55,-0.0491417000,56,0.0372621000,57,0.0295431000,58,0.0242808000,59,-0.0353743000,60,-0.0520351000,61,-0.0080341800,62,0.0223633000,63,-0.0378554000,64,-0.0248534000,65,0.0197947000,66,-0.0097810300,67,0.0046335400,68,-0.0289331000,69,-0.0151073000,70,0.0062162700,71,-0.0595264000,72,0.0284874000,73,0.0014649800,74,-0.0151124000,75,0.0215691000,76,-0.0262976000,77,-0.0513857000,78,0.0514284000,79,-0.0510876000,80,-0.0687426000,81,-0.0159464000,82,-0.0413595000,83,-0.0806595000,84,-0.0458655000,85,0.0244551000,86,0.0269717000,87,-0.0637320000,88,-0.1144450000,89,-0.0413687000,90,0.0273868000,91,0.0293830000,92,0.0027376500,93,-0.0286849000,94,-0.0395066000,95,0.0288952000,96,-0.0656248000,97,-0.0131013000,98,0.0260297000,99,0.0021620500,100,-0.0049810100,101,0.0028932500,102,-0.0182480000,103,-0.0381718000,104,-0.0391231000 +83,0,0.0840590000,138,-1.0000000000,55,-0.1214960000,56,-0.7045670000,57,-0.7849940000,58,0.6830790000,59,0.9833590000,60,0.3468850000,61,0.0609240000,62,0.1800590000,63,-2.2808800000,64,0.2136890000,65,0.0073296100,66,-0.5915220000,67,0.0417499000,68,0.1745340000,69,-0.9396320000,70,-0.0166417000,71,-1.4128000000,72,1.1861600000,73,0.3865440000,74,-0.4539590000,75,-0.6817280000,76,-0.4067660000,77,0.4124170000,78,-3.4550600000,79,0.8772220000,80,-0.0511218000,81,-0.7294850000,82,0.0615302000,83,0.0805479000,84,-0.1573780000,85,0.5554810000,86,-0.4047760000,87,-0.3362740000,88,-1.8338100000,89,0.4628790000,90,-2.4184800000,91,-0.0030398500,92,0.3524230000,93,0.9044890000,94,-0.5025130000,95,-0.0213078000,96,-0.4631840000,97,0.1874720000,98,0.4085600000,99,-0.2430050000,100,-0.0376614000,101,-0.2520420000,102,0.0136387000,103,0.0008761360,104,0.0753425000 +84,0,-0.0265669000,139,-1.0000000000,55,0.1317180000,56,-0.0627861000,57,0.0886234000,58,-0.2156810000,59,0.2407930000,60,-0.2981920000,61,-0.7282300000,62,0.3223540000,63,0.1152710000,64,0.4036770000,65,0.7833590000,66,0.0727290000,67,-0.1116100000,68,0.1272280000,69,-0.7118700000,70,-0.3025780000,71,0.7279030000,72,0.1044560000,73,-0.2306830000,74,-0.0907753000,75,-0.3214830000,76,0.9512220000,77,-0.0147601000,78,0.1012560000,79,0.4471400000,80,1.2856800000,81,-0.8519740000,82,-0.2011140000,83,0.2091450000,84,-0.4233550000,85,-0.0242058000,86,0.1187380000,87,0.3817670000,88,0.9940360000,89,0.2008130000,90,0.6921400000,91,-0.0161488000,92,0.1838750000,93,0.1953360000,94,-0.4872980000,95,0.8840760000,96,0.4952840000,97,-1.0729300000,98,-0.4825130000,99,-0.0826290000,100,-0.6268330000,101,0.0488731000,102,0.0038662800,103,-0.0852957000,104,0.0160101000 +85,0,-0.0786691000,140,-1.0000000000,55,0.1187260000,56,0.0557777000,57,-0.0465031000,58,0.5209220000,59,0.5042080000,60,-0.0121123000,61,0.5100610000,62,-0.3046610000,63,-0.0788149000,64,-0.3220810000,65,-0.0627695000,66,-0.0547663000,67,-0.0318706000,68,-0.0928886000,69,0.2797860000,70,-0.1916490000,71,0.2237830000,72,-0.0109191000,73,-0.3673800000,74,0.1384250000,75,0.0838745000,76,-0.5778390000,77,-0.0451322000,78,0.5042460000,79,-0.3492970000,80,-1.1316200000,81,0.7183980000,82,-0.0976719000,83,-0.5717690000,84,0.1604790000,85,-0.6826470000,86,-0.0752519000,87,-0.3281950000,88,0.1825410000,89,-0.3906380000,90,0.4613330000,91,0.0153698000,92,-0.0869300000,93,0.0907199000,94,0.1057620000,95,-0.1373840000,96,-0.1150300000,97,0.9637760000,98,-0.4191620000,99,0.0295742000,100,-0.0841584000,101,0.0621019000,102,0.0213939000,103,0.0487238000,104,0.0173752000 +86,0,0.4908500000,141,-1.0000000000,55,-0.0742649000,56,-0.5275620000,57,0.9292240000,58,0.8845140000,59,0.5797430000,60,0.3651850000,61,0.0970159000,62,-0.2285100000,63,-0.6420140000,64,0.0095086300,65,-0.3406410000,66,-0.7865250000,67,0.2162720000,68,0.1296390000,69,0.9209450000,70,-0.4288470000,71,0.1293820000,72,0.1398040000,73,1.2571900000,74,-0.6922860000,75,0.1272170000,76,-0.2645130000,77,-0.0942851000,78,-1.4994500000,79,-0.5103470000,80,-0.0746417000,81,-0.1764500000,82,0.0159840000,83,-0.0157018000,84,-0.9321620000,85,0.4481810000,86,-0.1827680000,87,0.0400141000,88,0.4489870000,89,-0.0978104000,90,-1.1490500000,91,-0.0286098000,92,1.6750000000,93,0.3069630000,94,-0.2566960000,95,-2.3441300000,96,0.0337146000,97,0.2614940000,98,0.3344130000,99,-0.3372730000,100,0.1417710000,101,-0.0016594400,102,-0.0153040000,103,-0.0020060100,104,0.0113477000 +87,0,0.0289568000,142,-1.0000000000,55,-0.2023570000,56,0.0527575000,57,0.4608870000,58,0.1542720000,59,-0.4488860000,60,-0.1512260000,61,-0.1621820000,62,0.0329984000,63,0.2011920000,64,-0.0553344000,65,0.6779370000,66,-0.6056720000,67,0.0439346000,68,0.2286440000,69,0.2857180000,70,0.1127150000,71,0.1848760000,72,0.0129289000,73,0.0017167100,74,-0.0073297300,75,0.0899820000,76,0.1108730000,77,0.0055261300,78,0.1125550000,79,-1.2602000000,80,0.1214570000,81,-0.0938216000,82,-0.0138127000,83,-0.0548336000,84,0.0778855000,85,0.7259230000,86,-0.3350750000,87,-0.1529170000,88,-0.7677270000,89,-0.5339020000,90,0.0666613000,91,0.0046765900,92,-0.1189810000,93,0.3164730000,94,-0.1233640000,95,-0.8830340000,96,-0.0934581000,97,0.0547123000,98,0.0739057000,99,-0.1327540000,100,0.2518550000,101,-0.0807286000,102,-0.0098584500,103,0.0042193000,104,0.4240920000 +88,0,0.0150531000,143,-1.0000000000,55,-0.0233831000,56,0.0266105000,57,0.0265018000,58,0.0100612000,59,0.0223637000,60,-0.0074847600,61,-0.0157573000,62,-0.0179220000,63,-0.0127971000,64,0.0425681000,65,-0.0422378000,66,-0.0084378600,67,-0.0275693000,68,-0.0396180000,69,0.0350924000,70,-0.0171464000,71,-0.0376275000,72,-0.0317645000,73,-0.0432646000,74,-0.0091133800,75,-0.0359589000,76,-0.0252534000,77,0.0110859000,78,0.0413248000,79,-0.0518821000,80,0.0271890000,81,0.0055203400,82,0.0387946000,83,-0.0238713000,84,0.0361370000,85,0.0123311000,86,-0.0386112000,87,-0.0308397000,88,-0.0152322000,89,-0.0090848700,90,-0.0300280000,91,0.0275658000,92,-0.0353255000,93,0.0122659000,94,-0.0108852000,95,0.0262770000,96,0.0231654000,97,-0.0019174500,98,-0.0301709000,99,-0.0291726000,100,-0.0090879000,101,0.0368843000,102,-0.0037814500,103,-0.0184604000,104,-0.0338699000 +89,0,0.0074496600,144,-1.0000000000,55,-0.0921919000,56,-0.1479700000,57,0.1758650000,58,-0.2134150000,59,-0.2480860000,60,0.4945360000,61,0.1556780000,62,0.1769720000,63,0.1541890000,64,-0.0370300000,65,0.1646320000,66,-0.5897710000,67,-0.1918350000,68,0.3409160000,69,0.1053490000,70,-0.0557027000,71,-0.2143080000,72,-0.3365760000,73,-0.9399200000,74,-0.1797850000,75,0.0951914000,76,0.4072410000,77,-0.0467055000,78,-0.4075370000,79,-0.1247110000,80,-0.0229503000,81,0.1976480000,82,-0.2779510000,83,0.0350711000,84,0.4159630000,85,0.2044600000,86,-0.0941932000,87,0.3115630000,88,1.0762500000,89,-0.2187590000,90,-1.1317600000,91,0.0124263000,92,-0.1605230000,93,-0.2568120000,94,-0.6355740000,95,-0.3087390000,96,0.1322730000,97,0.3081200000,98,-1.8254600000,99,-0.0155223000,100,0.1449550000,101,0.1714970000,102,-0.0019720200,103,-0.0663148000,104,0.0484112000 +90,0,0.0059552100,145,-1.0000000000,55,0.0079635000,56,-0.0308895000,57,-0.0459753000,58,-0.0286251000,59,0.0265320000,60,0.0151648000,61,0.0323985000,62,-0.0331053000,63,0.0317018000,64,-0.0470702000,65,-0.0364772000,66,0.0183170000,67,-0.0303275000,68,-0.0481791000,69,-0.0330014000,70,-0.0526128000,71,0.0405709000,72,-0.0558165000,73,-0.0049279300,74,-0.0001122450,75,-0.0245305000,76,-0.0211412000,77,-0.0139768000,78,-0.0359785000,79,-0.0116347000,80,-0.0047160700,81,0.0027392000,82,0.0156032000,83,-0.0407740000,84,-0.0370695000,85,-0.0262075000,86,-0.0385525000,87,-0.0465704000,88,-0.0292345000,89,0.0184076000,90,-0.0453868000,91,0.0107846000,92,0.0112894000,93,0.0231499000,94,-0.0386149000,95,0.0338632000,96,0.0165135000,97,-0.0397115000,98,0.0269940000,99,0.0391351000,100,-0.0515499000,101,-0.0248172000,102,0.0416515000,103,-0.0154765000,104,0.0059711900 +91,0,-0.0944564000,146,-1.0000000000,55,-0.0172232000,56,-0.0698065000,57,-0.5264050000,58,-0.5395180000,59,0.5786800000,60,0.0785490000,61,0.0669394000,62,0.1229710000,63,-0.1980430000,64,0.3910940000,65,-0.2059120000,66,0.1081250000,67,-0.0379269000,68,-0.0195867000,69,-0.0497366000,70,-0.1001510000,71,-0.0138612000,72,0.1474120000,73,-0.4257430000,74,-0.0436501000,75,-0.0115980000,76,-0.1243860000,77,0.0129832000,78,-1.9736000000,79,0.1026230000,80,-0.1276220000,81,0.1153930000,82,-0.0508944000,83,-0.0469314000,84,0.1509500000,85,-0.2487140000,86,0.0098657100,87,0.0999423000,88,1.2017100000,89,-0.1252120000,90,-0.3990590000,91,0.0401261000,92,0.0650811000,93,-0.1804430000,94,0.1103040000,95,0.2823020000,96,1.0765000000,97,0.2299650000,98,-0.3904050000,99,-0.8415580000,100,-0.5826030000,101,0.0512247000,102,-0.0216785000,103,0.0123177000,104,0.1187680000 +92,0,-0.0443348000,147,-1.0000000000,55,0.1631150000,56,0.3407280000,57,-0.0105622000,58,0.0026325100,59,-0.1857620000,60,-0.0930189000,61,-0.2169820000,62,-0.0384340000,63,-0.1797280000,64,-0.0036085700,65,-0.1146090000,66,-0.5090870000,67,0.0678658000,68,0.0401867000,69,-0.4673110000,70,0.1893300000,71,0.2315260000,72,0.1017160000,73,0.0215964000,74,-0.1998660000,75,-0.0821424000,76,0.2394910000,77,0.1407730000,78,-1.4244600000,79,-0.2630010000,80,-0.0281122000,81,0.1538040000,82,-0.1126140000,83,-0.1395010000,84,-0.0395304000,85,-0.3493840000,86,-0.1273220000,87,0.2612290000,88,0.5778990000,89,0.1786550000,90,-0.1575200000,91,-0.0287357000,92,0.1237200000,93,-0.0530046000,94,-1.0293200000,95,-1.0164500000,96,-0.8688090000,97,0.1392520000,98,-0.2930720000,99,-0.0999208000,100,0.2352180000,101,0.0910177000,102,0.0144014000,103,0.0232313000,104,-0.1447440000 +93,0,0.0031892100,148,-1.0000000000,55,-0.0190028000,56,-0.0201269000,57,0.0436591000,58,0.0200741000,59,-0.0224424000,60,0.0065891900,61,-0.0408961000,62,-0.0290105000,63,-0.0350561000,64,0.0058636600,65,0.0297205000,66,-0.0397887000,67,-0.0342188000,68,-0.0514203000,69,-0.0454355000,70,0.0458263000,71,-0.0379616000,72,0.0021443300,73,0.0005500250,74,0.0123461000,75,-0.0083552900,76,-0.0020789000,77,-0.0336117000,78,-0.0136546000,79,-0.0325466000,80,-0.0428492000,81,-0.0425204000,82,0.0011439500,83,-0.0340992000,84,0.0302936000,85,-0.0517288000,86,0.0090713900,87,0.0374807000,88,-0.0522613000,89,-0.0447654000,90,0.0274122000,91,-0.0213943000,92,-0.0275108000,93,0.0251790000,94,-0.0410131000,95,-0.0166919000,96,-0.0019868000,97,-0.0520336000,98,0.0035131600,99,-0.0340331000,100,0.0153714000,101,0.0433568000,102,0.0384234000,103,-0.0072809400,104,0.0109747000 +94,0,0.0763256000,149,-1.0000000000,55,0.8506790000,56,0.4020010000,57,1.0994300000,58,-0.2476190000,59,0.2657820000,60,0.1517480000,61,-1.3701300000,62,0.1401740000,63,-1.3511300000,64,0.3918530000,65,-0.5532600000,66,-0.3031080000,67,-0.0504397000,68,0.4303490000,69,0.2680730000,70,0.0030027600,71,-0.1922020000,72,0.4082680000,73,-1.7647000000,74,-0.0972029000,75,-0.3242170000,76,0.3829400000,77,-0.3907750000,78,0.0377556000,79,-2.4551800000,80,0.1082630000,81,0.2945770000,82,-0.1632700000,83,-0.1723420000,84,0.5783410000,85,0.5526140000,86,0.3505450000,87,-0.0741933000,88,-0.3154320000,89,-0.4540220000,90,0.0322751000,91,0.0153834000,92,-0.3924870000,93,-0.2900870000,94,0.2078860000,95,0.1254500000,96,-0.9978490000,97,-0.4703530000,98,-4.6107900000,99,-0.3012060000,100,-0.1766140000,101,-0.3449750000,102,-0.0194357000,103,0.3033440000,104,0.2511400000 +95,0,-0.0485370000,150,-1.0000000000,55,-0.0872491000,56,0.0080176600,57,-0.1257140000,58,-0.1599700000,59,-0.3678150000,60,-0.1427640000,61,-0.1009030000,62,0.1020220000,63,0.2951830000,64,-0.0839929000,65,0.1885440000,66,0.2838730000,67,-0.0472360000,68,0.0080604900,69,-0.0955454000,70,-0.0705182000,71,0.0930758000,72,-0.0403115000,73,0.0200050000,74,-0.1330840000,75,-0.0346169000,76,-0.0157022000,77,-0.0424768000,78,-0.0487894000,79,0.0157557000,80,0.1785400000,81,-0.0779860000,82,-0.0822448000,83,0.0483291000,84,0.0624417000,85,0.1621300000,86,0.0695881000,87,0.2165060000,88,0.3497530000,89,0.1054290000,90,-0.0052322800,91,-0.0122715000,92,0.0293489000,93,-0.1796530000,94,-0.2797870000,95,-0.8724100000,96,0.4082430000,97,0.0674201000,98,-0.1538220000,99,-0.1108200000,100,-0.1293180000,101,-0.0702345000,102,0.0002262850,103,0.0968054000,104,0.0225748000 +96,0,0.3161750000,151,-1.0000000000,55,-0.1904390000,56,0.1508200000,57,0.3867330000,58,0.5319580000,59,0.3149020000,60,-0.0784747000,61,0.8797350000,62,-0.8839660000,63,0.9724080000,64,0.0057448100,65,0.2259210000,66,-0.3753140000,67,-0.6379050000,68,0.2368540000,69,0.6451610000,70,0.5928020000,71,0.1008540000,72,0.1317320000,73,-4.0208200000,74,-0.0181742000,75,-0.1625460000,76,0.5755600000,77,0.2676520000,78,0.5616730000,79,-0.3935790000,80,-0.2125300000,81,0.0425627000,82,-0.5053970000,83,-0.0926365000,84,0.5801200000,85,0.2031360000,86,-0.5658260000,87,1.0572300000,88,-1.5552800000,89,-0.3915130000,90,0.4097730000,91,-0.0335211000,92,-0.2704690000,93,-1.4938500000,94,0.5707170000,95,-0.3658320000,96,-0.0543463000,97,0.8708780000,98,-1.1903700000,99,0.8894490000,100,0.4385300000,101,-1.0969300000,102,-0.0108596000,103,0.0058302400,104,0.0488181000 +97,0,0.3659570000,152,-1.0000000000,55,-0.1704950000,56,-0.2950500000,57,-0.7123240000,58,0.0025222800,59,0.0287553000,60,0.3485610000,61,-0.0425441000,62,-0.2589610000,63,0.2891630000,64,-0.0693566000,65,-0.0591285000,66,1.4361700000,67,0.4570840000,68,-0.1123240000,69,0.2148040000,70,-0.8560080000,71,-0.3887320000,72,-0.0169601000,73,-0.9314330000,74,0.3981950000,75,0.2561000000,76,0.1262630000,77,0.0376745000,78,0.2022810000,79,0.8006890000,80,0.6104930000,81,-0.7159690000,82,0.8606610000,83,-0.0898541000,84,0.4610600000,85,0.2010460000,86,-0.2007220000,87,-0.1507790000,88,-1.7780600000,89,-0.7100330000,90,0.5282550000,91,-0.0362940000,92,0.2462300000,93,-0.0823783000,94,-0.1650190000,95,0.5081650000,96,0.5376410000,97,-0.2217360000,98,0.1905400000,99,-0.1143070000,100,1.2209400000,101,-0.2790020000,102,0.0081999600,103,-0.0637884000,104,-0.1428480000 +98,0,-0.3458800000,153,-1.0000000000,55,0.0395729000,56,-0.0178856000,57,-1.2444000000,58,0.0120912000,59,0.1323690000,60,0.1510440000,61,-0.1186060000,62,0.0446959000,63,-1.2177700000,64,0.4120880000,65,-0.2652310000,66,0.0866573000,67,-0.1705220000,68,-0.2325160000,69,-1.2238800000,70,0.3599270000,71,-0.1582760000,72,-0.2412600000,73,0.0329468000,74,0.0672447000,75,-0.0305954000,76,0.1431390000,77,-0.6973940000,78,0.1470670000,79,0.2026040000,80,0.5924320000,81,-0.2402980000,82,0.2635070000,83,-0.0215858000,84,0.3227960000,85,-0.2855730000,86,-0.2758180000,87,-1.1273000000,88,1.3029400000,89,-0.0257434000,90,0.3294440000,91,0.0012372000,92,0.2379210000,93,0.1806920000,94,0.2074210000,95,0.8146650000,96,0.1701210000,97,-0.3799030000,98,-0.5693100000,99,-0.2629110000,100,-0.6840160000,101,-0.1874780000,102,0.0482392000,103,0.4403050000,104,-0.0132303000 +99,0,-0.0576997000,154,-1.0000000000,55,0.0212341000,56,-0.0800508000,57,-0.2575300000,58,0.1170460000,59,-0.0130130000,60,-0.1752590000,61,-0.0581474000,62,-0.0579808000,63,-1.5335000000,64,-0.1430320000,65,0.2484190000,66,0.0773075000,67,-0.0124135000,68,-0.1204210000,69,0.0145677000,70,-0.0047658600,71,-0.3455440000,72,-0.1348760000,73,0.0228510000,74,-0.0259735000,75,-0.0341165000,76,0.3556600000,77,0.1742450000,78,0.3381980000,79,0.1751890000,80,0.0969881000,81,-0.1624250000,82,0.2603340000,83,-0.1143480000,84,-0.4595040000,85,-0.0773729000,86,-0.0368554000,87,-0.4396120000,88,-0.6592270000,89,0.1134250000,90,0.3950010000,91,0.0191525000,92,0.2448510000,93,-0.0598632000,94,0.1223560000,95,-0.6438880000,96,0.0870369000,97,0.2477180000,98,-0.3289210000,99,0.2914060000,100,-0.1332860000,101,-0.0155520000,102,-0.0313212000,103,-0.0108520000,104,-0.1485710000 +100,0,-0.5793040000,205,-1.0000000000,155,-0.1872780000,156,0.1162810000,157,0.0435397000,158,0.1207100000,159,0.1932710000,160,0.1110920000,161,0.3612310000,162,-0.3026720000,163,-0.3497360000,164,0.3377600000,165,-0.0198538000,166,0.2657060000,167,-0.1523980000,168,-0.3568940000,169,-0.3059860000,170,-0.0309373000,171,0.5008180000,172,0.0435676000,173,-0.0819309000,174,-0.0574944000,175,-0.0197085000,176,-0.0637003000,177,-0.2743640000,178,-0.3822960000,179,0.3134360000,180,0.2249300000,181,-0.0382664000,182,0.2024940000,183,0.1890430000,184,-0.2819280000,185,-0.2721100000,186,0.0047469000,187,-0.0200122000,188,-0.0301503000,189,0.0978749000,190,0.1429370000,191,-0.0577790000,192,0.0811247000,193,0.0211237000,194,-1.3400300000,195,-0.0332875000,196,-0.6899600000,197,0.0760800000,198,-0.0370310000,199,-0.2184080000,200,0.4915430000,201,0.0590963000,202,-0.4132250000,203,-0.0461527000,204,0.0816437000 +101,0,-0.1281030000,206,-1.0000000000,155,0.8721420000,156,-1.1826400000,157,-0.0011216200,158,-0.2314800000,159,0.5990500000,160,-0.3299210000,161,0.2313450000,162,-0.0107674000,163,-0.2906470000,164,-0.3315220000,165,-0.0242436000,166,-0.1785080000,167,-0.0758613000,168,0.2782570000,169,-0.2427960000,170,-0.2178810000,171,-0.0929817000,172,-0.0145605000,173,0.1672210000,174,-0.6166310000,175,-0.0311897000,176,-0.2245350000,177,-0.1254330000,178,-1.1366000000,179,0.0502205000,180,-0.0898015000,181,-0.0408841000,182,-0.4028840000,183,0.2380540000,184,0.3829980000,185,-0.2008390000,186,-0.0084704900,187,-0.0096560000,188,-0.2886500000,189,-0.0234121000,190,-0.8464780000,191,-0.4131530000,192,0.2818260000,193,0.0437489000,194,-0.1357770000,195,0.0014293300,196,0.6300520000,197,-1.8378300000,198,0.0123506000,199,0.1395560000,200,0.2508470000,201,1.3507400000,202,-0.0105606000,203,0.0330151000,204,0.2974000000 +102,0,0.1748010000,207,-1.0000000000,155,0.4236100000,156,1.0495800000,157,0.0272702000,158,-0.2035790000,159,0.0580000000,160,0.0931815000,161,0.1766530000,162,1.3021400000,163,-0.2704950000,164,0.3517180000,165,0.0412841000,166,-0.4390990000,167,-0.2773670000,168,0.0910960000,169,0.1127000000,170,0.5498640000,171,-0.1735780000,172,-0.0188293000,173,0.1762140000,174,0.1163340000,175,-0.0389889000,176,0.2652450000,177,0.0348982000,178,-0.4313500000,179,0.7168920000,180,-0.4054650000,181,-0.0179023000,182,-0.0240304000,183,-1.2152600000,184,0.0115171000,185,0.3987750000,186,0.0314417000,187,0.0031535500,188,-0.1784600000,189,0.0800510000,190,0.4193390000,191,0.2572840000,192,-0.4567300000,193,-0.0494879000,194,0.0626787000,195,0.0035087500,196,-0.1163550000,197,-0.1627870000,198,-0.0161994000,199,0.5914070000,200,-0.8749130000,201,-0.4788500000,202,-0.2692440000,203,-0.2883690000,204,0.5966880000 +103,0,0.0029703200,208,-1.0000000000,155,-0.0475976000,156,0.0045679000,157,0.0415457000,158,0.0295863000,159,-0.0312530000,160,-0.0034549600,161,-0.0213249000,162,-0.0159068000,163,-0.0231246000,164,-0.0523629000,165,0.0016874800,166,-0.0249123000,167,-0.0113336000,168,0.0247321000,169,0.0029744000,170,-0.0197627000,171,-0.0354912000,172,0.0427155000,173,0.0119854000,174,-0.0382820000,175,0.0301031000,176,-0.0018583400,177,-0.0244445000,178,-0.0165744000,179,-0.0455389000,180,-0.0488853000,181,-0.0387636000,182,-0.0167957000,183,-0.0530933000,184,-0.0450497000,185,0.0525395000,186,-0.0017577700,187,-0.0436929000,188,0.0383113000,189,-0.0004578090,190,-0.0042779200,191,0.0335721000,192,0.0200247000,193,0.0506677000,194,0.0252355000,195,0.0352990000,196,0.0050412500,197,-0.0442170000,198,0.0456574000,199,-0.0523055000,200,-0.0328147000,201,-0.0153036000,202,0.0268258000,203,-0.0355581000,204,-0.0316396000 +104,0,0.0572326000,209,-1.0000000000,155,-0.8399190000,156,0.3805300000,157,-0.0179004000,158,-0.1325300000,159,-0.4642740000,160,0.4256880000,161,-0.5939360000,162,0.2245060000,163,0.1318940000,164,0.5430180000,165,-0.0190999000,166,-0.2608280000,167,-0.5778440000,168,-0.0218456000,169,-1.1771900000,170,0.1038070000,171,0.7015570000,172,0.0215199000,173,0.1928660000,174,2.5032700000,175,0.0370804000,176,-0.1262600000,177,0.0012213700,178,-0.8866520000,179,-0.5141840000,180,0.0821039000,181,0.0298320000,182,0.2276450000,183,0.0186612000,184,-0.4599590000,185,-0.0361565000,186,-0.0372000000,187,0.0010783100,188,0.5317200000,189,0.5545690000,190,0.4268500000,191,-1.0872100000,192,-1.7888500000,193,0.0505983000,194,-0.0220182000,195,-0.0274596000,196,0.4591570000,197,-0.4165230000,198,0.0161188000,199,-0.2014630000,200,-1.0836600000,201,-1.8217300000,202,-0.0417472000,203,-0.4292160000,204,0.1252730000 +105,0,0.2571360000,210,-1.0000000000,155,0.1469950000,156,-0.2267350000,157,-0.0251284000,158,-0.6761020000,159,-1.0027600000,160,0.6041840000,161,-0.2192570000,162,-0.5985090000,163,0.2921550000,164,-0.1223140000,165,-0.0299037000,166,0.3851160000,167,-0.4379730000,168,1.4430600000,169,-0.3327020000,170,1.1530600000,171,0.6997110000,172,-0.0013999500,173,0.2744370000,174,0.8100890000,175,-0.0437945000,176,-0.3446570000,177,0.3361770000,178,0.3223180000,179,-1.3190200000,180,-0.2951570000,181,0.0206091000,182,0.0592629000,183,0.3729630000,184,-0.5494890000,185,-0.4725640000,186,-0.0361557000,187,0.0167464000,188,0.2245470000,189,0.3219360000,190,0.9697080000,191,1.0032100000,192,0.2839630000,193,0.0138261000,194,0.5449940000,195,0.0330130000,196,1.7917200000,197,0.0859777000,198,0.0206275000,199,0.5370850000,200,0.4649580000,201,0.0776339000,202,0.3132470000,203,-0.8995830000,204,0.4513970000 +106,0,0.0175343000,211,-1.0000000000,155,0.1153890000,156,0.1012880000,157,0.0185854000,158,0.0056592000,159,-0.0228994000,160,-0.0554867000,161,-0.2292940000,162,-0.0821029000,163,-0.4262600000,164,-0.1389980000,165,0.0334644000,166,0.0153484000,167,0.2645110000,168,0.0216226000,169,-0.2707050000,170,-0.0794414000,171,0.2195140000,172,0.0098936300,173,-0.0538873000,174,0.1688780000,175,-0.0345883000,176,-0.0629073000,177,-0.0348974000,178,0.2549200000,179,-0.1495770000,180,-0.0932560000,181,0.0250150000,182,-0.4390270000,183,-0.1624160000,184,-0.4086590000,185,0.4532040000,186,0.0364088000,187,0.0081935800,188,-0.1836860000,189,0.2071170000,190,0.0057103400,191,0.0337163000,192,0.0863599000,193,-0.0380073000,194,0.2855000000,195,0.0019392800,196,0.0936781000,197,0.0402413000,198,-0.0118564000,199,0.1143500000,200,0.3573220000,201,0.1624550000,202,-0.1109190000,203,0.1474100000,204,0.5099740000 +107,0,-0.2345440000,212,-1.0000000000,155,0.3616050000,156,-0.1000550000,157,0.0421374000,158,0.4897880000,159,0.1989180000,160,0.1235530000,161,-0.4174290000,162,-0.5057780000,163,0.5698420000,164,0.2960500000,165,-0.0324188000,166,-0.1473780000,167,0.5581080000,168,-0.3748960000,169,0.2431820000,170,-0.1337210000,171,0.0542120000,172,-0.0343943000,173,0.0872621000,174,-0.4929700000,175,-0.0188046000,176,0.0733824000,177,-0.2510170000,178,-0.2118680000,179,0.5213040000,180,-0.1062930000,181,-0.0012239900,182,0.6322240000,183,0.0211504000,184,0.1100150000,185,-0.1349680000,186,0.0157455000,187,0.0404483000,188,-0.5117820000,189,0.0876954000,190,-0.2257390000,191,-0.9232180000,192,0.2834590000,193,-0.0119796000,194,-1.0295200000,195,-0.0163548000,196,0.4893630000,197,0.0412197000,198,-0.0033959500,199,-0.0911907000,200,0.8719940000,201,0.4208250000,202,-0.4378840000,203,-0.2163820000,204,0.2271170000 +108,0,0.0007817010,213,-1.0000000000,155,0.0821645000,156,0.0056582000,157,0.0067670100,158,0.1084130000,159,0.0510379000,160,-0.0283643000,161,0.2587380000,162,0.2793150000,163,0.0992325000,164,-0.0713252000,165,-0.0408049000,166,0.0121488000,167,-0.0911685000,168,-0.1649320000,169,-0.0819697000,170,-0.2099020000,171,0.4205460000,172,0.0460938000,173,-0.0142405000,174,0.0062497300,175,0.0408017000,176,-0.3565820000,177,0.0579642000,178,-0.0493197000,179,0.0252293000,180,-0.1378820000,181,0.0032844300,182,-0.2062240000,183,0.3697220000,184,0.0547509000,185,-0.0042789900,186,0.0334428000,187,-0.0010894800,188,0.0157740000,189,-0.0613266000,190,-0.3846140000,191,-0.0325183000,192,-0.1940090000,193,-0.0029987600,194,0.4037590000,195,0.0119912000,196,0.0533675000,197,-0.3362590000,198,-0.0487538000,199,0.0078010300,200,0.5459240000,201,-0.4049570000,202,-0.1188320000,203,-0.0291155000,204,0.4231230000 +109,0,0.0054745500,214,-1.0000000000,155,0.1291100000,156,0.2715810000,157,0.0241069000,158,0.0708031000,159,-0.8033990000,160,-0.4969370000,161,0.3455830000,162,0.2826150000,163,0.1114760000,164,0.8413130000,165,0.0079280400,166,0.1794720000,167,0.5964580000,168,-0.5362820000,169,0.4192350000,170,0.2827370000,171,1.0650800000,172,0.0269355000,173,-0.0627576000,174,1.1554200000,175,0.0095854100,176,0.6783080000,177,-0.2763850000,178,-2.3907400000,179,1.2334600000,180,0.3282730000,181,0.0170455000,182,-0.1999030000,183,0.1304550000,184,-0.1064840000,185,0.2303450000,186,-0.0194832000,187,0.0076089400,188,-2.3542400000,189,-0.3079850000,190,-0.4669710000,191,-0.0931608000,192,0.2312290000,193,-0.0367593000,194,-0.2605360000,195,-0.0202617000,196,0.0087190200,197,-1.2167900000,198,0.0260140000,199,0.3930740000,200,-0.2110910000,201,0.0016603100,202,-0.2165460000,203,0.7947610000,204,0.3595450000 +110,0,0.0452027000,215,-1.0000000000,155,0.1863600000,156,0.5095010000,157,0.0056851900,158,0.0053097000,159,0.0594627000,160,-0.4484840000,161,-0.0948074000,162,-1.2665200000,163,-1.1589700000,164,-0.9305370000,165,0.0144163000,166,0.1528300000,167,0.1668870000,168,0.0086495800,169,0.2575720000,170,0.2709350000,171,-0.6488340000,172,-0.0274679000,173,0.0167700000,174,-0.2974460000,175,0.0360814000,176,-0.3545010000,177,0.0664459000,178,0.4227200000,179,-0.1243970000,180,0.7156590000,181,-0.0134638000,182,-0.9912470000,183,-0.0769266000,184,0.7239200000,185,-0.2991430000,186,-0.0189472000,187,0.0292376000,188,-0.0768553000,189,0.5983940000,190,-0.8067400000,191,-0.5806690000,192,-0.0628254000,193,-0.0275209000,194,0.2160660000,195,-0.0475687000,196,0.1072630000,197,-0.8634600000,198,0.0493195000,199,-0.3942870000,200,-0.1061830000,201,0.0856533000,202,0.5953660000,203,-0.5279030000,204,-1.1958400000 +111,0,0.2583700000,216,-1.0000000000,155,1.1513800000,156,-0.0030062200,157,0.0001909610,158,-0.4163450000,159,0.2650830000,160,0.2445960000,161,0.0071282800,162,0.4490130000,163,-0.0808320000,164,-0.0137551000,165,-0.0085695800,166,0.5596700000,167,-0.0389246000,168,0.4191630000,169,-0.4807150000,170,0.2207970000,171,-0.0025177700,172,-0.0343081000,173,0.0829918000,174,-1.6174400000,175,-0.0364641000,176,0.4016270000,177,0.1448680000,178,-0.3859120000,179,2.1741400000,180,-0.1891100000,181,-0.0285889000,182,0.0077376700,183,-1.1954400000,184,-0.1781280000,185,0.1168310000,186,0.0203347000,187,-0.0304023000,188,-0.4906650000,189,-0.4360290000,190,0.2400490000,191,-0.0886297000,192,-0.0163721000,193,-0.0073908300,194,-0.3219980000,195,-0.0389199000,196,0.0407838000,197,0.2985400000,198,-0.0371369000,199,0.3365380000,200,0.5394460000,201,0.2634840000,202,-0.1874870000,203,0.1685520000,204,0.1847760000 +112,0,0.0831357000,217,-1.0000000000,155,1.0665800000,156,-0.8367420000,157,0.0483793000,158,0.1610660000,159,0.0309366000,160,0.2172030000,161,-0.0648541000,162,0.9486460000,163,-0.2540910000,164,0.3191420000,165,0.0474072000,166,-0.3123460000,167,0.0953567000,168,-0.4839800000,169,0.9041160000,170,-0.1077670000,171,-0.5042500000,172,-0.0062047300,173,0.0664635000,174,0.0034597500,175,0.0242363000,176,0.2427900000,177,-0.2708430000,178,-0.0670451000,179,1.2570900000,180,-0.2826710000,181,0.0394466000,182,0.8475680000,183,0.7042540000,184,0.1219340000,185,0.6372760000,186,0.0476530000,187,-0.0238629000,188,0.3517960000,189,-0.5842210000,190,0.1623280000,191,0.0051318100,192,0.4123650000,193,0.0016827000,194,0.2933810000,195,0.0132136000,196,-0.2371860000,197,1.0621600000,198,-0.0408976000,199,0.4327090000,200,1.0298700000,201,0.0815980000,202,0.2858790000,203,0.0843774000,204,0.1242730000 +113,0,-0.0699296000,218,-1.0000000000,155,0.3552450000,156,-0.4781930000,157,-0.0465542000,158,-0.0807457000,159,-0.9097920000,160,0.4985450000,161,0.4514910000,162,-0.2975110000,163,0.2182380000,164,0.7386290000,165,0.0079038300,166,0.2004770000,167,-0.7393060000,168,0.3264090000,169,1.6319800000,170,0.1096010000,171,-0.3331990000,172,-0.0247690000,173,-0.2339540000,174,0.6353710000,175,0.0187581000,176,0.6897550000,177,-0.1380780000,178,0.1219590000,179,-0.1392130000,180,0.9483850000,181,-0.0287527000,182,-0.0551585000,183,-0.2305240000,184,0.3346950000,185,0.0225226000,186,0.0079402500,187,0.0099433600,188,0.0763662000,189,0.5015180000,190,-0.0526175000,191,-0.6349400000,192,0.0569564000,193,0.0058898800,194,0.3081260000,195,0.0485151000,196,-1.3969500000,197,0.4335460000,198,-0.0099922300,199,-0.5396580000,200,-1.4652500000,201,0.2372610000,202,0.3478960000,203,0.6754780000,204,0.4593040000 +114,0,0.0458862000,219,-1.0000000000,155,0.3781110000,156,0.6110970000,157,0.0425015000,158,1.0401400000,159,0.1433550000,160,-0.2380330000,161,0.8240710000,162,1.0087000000,163,0.2258870000,164,0.2448870000,165,-0.0423307000,166,0.3455680000,167,0.5881180000,168,0.0300617000,169,0.5317540000,170,-0.2528860000,171,0.2736870000,172,0.0197149000,173,-0.2438090000,174,0.8919780000,175,0.0341416000,176,-0.0059726200,177,-0.1498480000,178,0.2560250000,179,-0.0478358000,180,0.1134260000,181,0.0123159000,182,0.1878190000,183,0.9379880000,184,-0.1205070000,185,-0.3840040000,186,-0.0375556000,187,0.0036234100,188,0.4415010000,189,-0.7689230000,190,-0.3594490000,191,-1.0103000000,192,0.5800020000,193,0.0069344400,194,-2.7528900000,195,-0.0036340900,196,-0.4407420000,197,-0.6687200000,198,0.0143354000,199,-0.1895800000,200,-0.6730560000,201,0.7922230000,202,0.2869370000,203,0.4190780000,204,0.2808630000 +115,0,0.1622630000,220,-1.0000000000,155,0.3960850000,156,-0.6599030000,157,0.0435722000,158,1.5284300000,159,1.3026700000,160,-0.5254180000,161,0.8007990000,162,-0.0223106000,163,0.2893280000,164,0.3074760000,165,-0.0235911000,166,-2.2165400000,167,0.7941170000,168,-0.3855880000,169,1.7977700000,170,1.6110500000,171,-0.1661720000,172,0.0024759400,173,-0.2087630000,174,-0.7858750000,175,-0.0189387000,176,-0.0879302000,177,-0.4715690000,178,0.4226300000,179,-0.6114800000,180,0.2237610000,181,-0.0415590000,182,0.4614280000,183,0.8182070000,184,-0.9062310000,185,1.3602900000,186,0.0096464000,187,-0.0138225000,188,0.5102760000,189,0.8021700000,190,-0.0899359000,191,0.0894771000,192,0.7685660000,193,0.0287612000,194,0.9083440000,195,0.0420804000,196,0.7847940000,197,1.4805100000,198,-0.0362697000,199,0.2701150000,200,5.1195600000,201,2.9930000000,202,-0.8226440000,203,0.9269240000,204,0.4727300000 +116,0,-0.0003536940,221,-1.0000000000,155,0.0881128000,156,0.2582820000,157,0.0282406000,158,0.2148550000,159,-0.0325943000,160,0.3952740000,161,-0.5216580000,162,0.5831270000,163,-0.1250940000,164,0.6590030000,165,-0.0131989000,166,-0.1880160000,167,-0.2708340000,168,0.6988260000,169,0.6225740000,170,0.4490550000,171,-0.0383804000,172,0.0274118000,173,0.0592544000,174,0.2023760000,175,0.0292874000,176,0.2171030000,177,-0.2777570000,178,-0.0754331000,179,0.7866620000,180,-0.0483726000,181,0.0298980000,182,0.1420220000,183,0.2775380000,184,-0.1748910000,185,0.9949620000,186,0.0230357000,187,-0.0115255000,188,0.2866980000,189,0.1875210000,190,-0.1329570000,191,0.1092720000,192,0.0812752000,193,0.0180847000,194,-0.2934620000,195,0.0178076000,196,0.4184330000,197,1.3033500000,198,0.0111612000,199,-0.4148820000,200,-0.1523250000,201,0.2956490000,202,0.2019610000,203,0.0582516000,204,-0.1942400000 +117,0,-0.2176040000,222,-1.0000000000,155,-2.8023200000,156,-0.8760960000,157,0.0260735000,158,-0.5983610000,159,-0.6593050000,160,0.1126020000,161,-0.7842110000,162,-1.5257200000,163,0.8245790000,164,-0.8908800000,165,0.0061807200,166,-0.8557950000,167,-0.3461650000,168,0.0484303000,169,-2.3483300000,170,-0.7385280000,171,-0.9668970000,172,0.0279607000,173,-0.0393198000,174,-0.7640360000,175,0.0066973100,176,-0.1986690000,177,0.1821870000,178,0.7088680000,179,-0.8878950000,180,0.5214620000,181,-0.0068333900,182,0.0046353800,183,0.4814630000,184,-0.7349500000,185,-0.7438830000,186,0.0411280000,187,0.0397822000,188,0.0672432000,189,-1.3055700000,190,-1.1659400000,191,0.2608380000,192,-0.2807560000,193,0.0054619800,194,-1.7766600000,195,0.0230684000,196,-0.1446210000,197,0.4361920000,198,-0.0325381000,199,-0.6873530000,200,-1.6881000000,201,-0.1077970000,202,-0.5630510000,203,0.2861010000,204,-0.0138666000 +118,0,-0.1180550000,223,-1.0000000000,155,-0.1620110000,156,0.1193560000,157,-0.0285967000,158,0.0057586800,159,0.2161070000,160,-0.0441959000,161,0.3331620000,162,0.5402740000,163,0.4695110000,164,-0.2794300000,165,0.0426678000,166,0.0242958000,167,0.1016100000,168,-0.1312910000,169,0.5473850000,170,-0.0850752000,171,0.2703010000,172,0.0295432000,173,-0.1510470000,174,0.8651250000,175,-0.0294251000,176,0.0139604000,177,-0.0445099000,178,-0.6472470000,179,-0.2046160000,180,-0.0625121000,181,0.0476330000,182,0.2389150000,183,0.5651890000,184,-0.2390510000,185,-0.2535240000,186,-0.0514086000,187,-0.0123500000,188,-0.0583558000,189,0.4599290000,190,-0.1320060000,191,-0.2313700000,192,0.1361300000,193,-0.0471757000,194,0.2308570000,195,-0.0295796000,196,-0.1720210000,197,-0.3150550000,198,-0.0483507000,199,0.1809850000,200,1.3036000000,201,0.3010490000,202,-0.4009720000,203,0.0324417000,204,0.2268660000 +119,0,-0.0448578000,224,-1.0000000000,155,-0.0600769000,156,0.2411200000,157,0.0206289000,158,-0.0710446000,159,-0.1006230000,160,-0.0922252000,161,0.0251999000,162,0.5218990000,163,0.1955140000,164,0.2211450000,165,-0.0068567200,166,-0.2780070000,167,0.1904030000,168,-0.4300330000,169,1.7402300000,170,-0.0320453000,171,0.4425930000,172,0.0340836000,173,-0.1669290000,174,0.3197430000,175,0.0327128000,176,0.3434320000,177,-0.0175982000,178,-0.2580670000,179,0.8254090000,180,0.0997513000,181,0.0551600000,182,0.0933540000,183,0.5476400000,184,-0.2524890000,185,0.0357380000,186,-0.0299856000,187,0.0239137000,188,-0.1428210000,189,0.0941802000,190,0.6735930000,191,-0.3377550000,192,-0.8740560000,193,-0.0100055000,194,0.5833890000,195,0.0457668000,196,-0.1705840000,197,-0.0372486000,198,-0.0174075000,199,-0.1740940000,200,0.9788550000,201,0.5348000000,202,0.1817530000,203,0.0224429000,204,-0.0910740000 +120,0,0.6526010000,225,-1.0000000000,155,-0.2902280000,156,1.0729400000,157,0.0182315000,158,0.6848390000,159,0.9114460000,160,0.2764430000,161,0.0106527000,162,0.0411482000,163,0.0734863000,164,-0.1389360000,165,0.0130948000,166,-0.0199744000,167,0.3233990000,168,0.1378610000,169,-0.2628400000,170,-0.2490260000,171,-1.1410600000,172,0.0469822000,173,0.2260810000,174,-0.5381660000,175,-0.0360651000,176,-0.5690990000,177,-0.1071180000,178,0.2495800000,179,0.0778009000,180,0.2246450000,181,0.0510857000,182,0.4812120000,183,-0.4173870000,184,-0.2357420000,185,0.6513750000,186,0.0298977000,187,-0.0415421000,188,1.1312600000,189,0.1516790000,190,0.2132830000,191,0.2228380000,192,-0.4917500000,193,0.0160725000,194,0.1894710000,195,-0.0272858000,196,-1.2550200000,197,-0.5065150000,198,0.0422895000,199,0.5290760000,200,2.3344900000,201,0.1200300000,202,0.4799180000,203,0.5903930000,204,0.7557330000 +121,0,-0.4370630000,226,-1.0000000000,155,0.4218140000,156,-0.5215960000,157,-0.0571335000,158,-0.1765310000,159,1.1058600000,160,-0.4266400000,161,-0.4141590000,162,0.8565870000,163,0.2299440000,164,0.3165160000,165,0.0120647000,166,-1.0772700000,167,-0.3443720000,168,-0.3969470000,169,1.5564000000,170,0.4821140000,171,-0.1256310000,172,0.0198699000,173,0.6501400000,174,0.1767550000,175,-0.0444977000,176,-0.5973670000,177,-0.0116637000,178,-0.0349558000,179,1.6462800000,180,-0.3723080000,181,-0.0056820800,182,-0.3030830000,183,0.7360440000,184,-1.1561800000,185,0.9668290000,186,0.0109700000,187,0.0085905600,188,-0.2607970000,189,0.3677510000,190,-0.5668450000,191,0.3224990000,192,0.5470240000,193,0.0121523000,194,1.0956300000,195,0.0424950000,196,-0.4262010000,197,-0.8000730000,198,0.0076953800,199,0.2248450000,200,0.9662140000,201,1.7230700000,202,-0.5013990000,203,0.2539170000,204,-0.6735650000 +122,0,-0.0694955000,227,-1.0000000000,155,-0.0478984000,156,-0.3333190000,157,0.0403069000,158,0.0237512000,159,-0.7589920000,160,-0.2536540000,161,0.2827050000,162,-0.5733970000,163,0.6363710000,164,-0.1612070000,165,-0.0358279000,166,0.1922090000,167,0.3120040000,168,-0.3886570000,169,-1.3571600000,170,-1.0874100000,171,0.2166710000,172,0.0012240100,173,-0.2580900000,174,-0.0193508000,175,-0.0398746000,176,-0.2083610000,177,0.1012810000,178,0.8390580000,179,-0.4409090000,180,-0.1807560000,181,0.0458214000,182,-0.3642570000,183,0.5437330000,184,0.2025150000,185,0.6138910000,186,-0.0474021000,187,-0.0398690000,188,0.5638430000,189,-0.8543360000,190,-1.7382400000,191,0.1844830000,192,-0.2421880000,193,0.0116560000,194,1.0765400000,195,0.0385796000,196,-0.3370080000,197,0.8454170000,198,-0.0312475000,199,-0.3117320000,200,-0.2163170000,201,0.1160250000,202,0.4127390000,203,0.4487840000,204,-0.4783870000 +123,0,0.0563135000,228,-1.0000000000,155,0.1013270000,156,0.0317163000,157,-0.0082823500,158,-0.0400897000,159,-0.0495965000,160,0.1581230000,161,-0.1919650000,162,0.0122641000,163,-0.5901070000,164,-0.0931195000,165,0.0460470000,166,0.6717170000,167,0.5827090000,168,-0.7979130000,169,0.5115740000,170,-0.6104610000,171,-0.2557830000,172,0.0197705000,173,-0.2922300000,174,0.7801650000,175,0.0113823000,176,0.0113945000,177,0.0073078900,178,0.1054130000,179,0.8243710000,180,0.1032930000,181,-0.0063509200,182,-0.1031150000,183,-0.0015777300,184,0.2664720000,185,0.4099740000,186,0.0277954000,187,-0.0099571300,188,0.0040357200,189,-0.0114910000,190,-0.0803955000,191,-1.1957200000,192,0.1493410000,193,-0.0425295000,194,0.6901590000,195,0.0087873900,196,-0.2306430000,197,0.6811920000,198,-0.0084478300,199,0.0488062000,200,1.1219800000,201,0.6492680000,202,0.1248350000,203,-0.1303020000,204,-0.3728090000 +124,0,0.2005690000,229,-1.0000000000,155,1.3116000000,156,0.3936160000,157,0.0185886000,158,0.0319767000,159,0.6268070000,160,-1.1174100000,161,0.7811940000,162,0.6418320000,163,-0.4155040000,164,0.6302410000,165,-0.0311980000,166,-2.9098600000,167,-0.7919150000,168,0.7222340000,169,1.9734900000,170,0.4012970000,171,2.9271300000,172,0.0424519000,173,-0.0918648000,174,1.6880000000,175,-0.0192926000,176,0.3583310000,177,-0.3655950000,178,0.3847300000,179,1.6272800000,180,0.1452770000,181,0.0210562000,182,0.3654440000,183,1.3089300000,184,1.6423100000,185,1.2664500000,186,0.0218619000,187,0.0207591000,188,-0.3747730000,189,0.3745210000,190,0.1733860000,191,-1.8282900000,192,1.0484500000,193,-0.0284587000,194,2.0653000000,195,-0.0026060400,196,1.1189400000,197,0.8724000000,198,0.0040331000,199,-0.6706650000,200,2.2476800000,201,1.5941200000,202,0.9249370000,203,-1.2178400000,204,1.0522800000 +125,0,0.6190080000,230,-1.0000000000,155,-0.4900250000,156,-0.0753959000,157,-0.0098349000,158,-0.1877330000,159,-0.1467300000,160,-0.2965070000,161,0.1994110000,162,0.3951090000,163,-0.1565480000,164,0.0770613000,165,-0.0068111100,166,-0.1319260000,167,0.0840797000,168,0.0040875000,169,1.0387000000,170,0.1559560000,171,0.1765830000,172,0.0555136000,173,0.0476182000,174,1.3034800000,175,-0.0314599000,176,-0.3220770000,177,0.2694820000,178,0.0264708000,179,0.4644630000,180,0.0774557000,181,-0.0388121000,182,0.1924530000,183,0.1739890000,184,0.3673720000,185,0.6389820000,186,0.0203869000,187,-0.0266969000,188,-0.5043450000,189,0.1859250000,190,-0.2612470000,191,0.1234870000,192,-0.2664630000,193,-0.0428927000,194,-0.3739810000,195,-0.0075687800,196,0.2449100000,197,-0.2812210000,198,-0.0427338000,199,-0.1028440000,200,1.1548900000,201,0.1750110000,202,0.3005980000,203,0.2378070000,204,-0.1022720000 +126,0,-0.0757925000,231,-1.0000000000,155,-0.0263316000,156,0.0889921000,157,-0.0021869700,158,0.0555978000,159,0.0073445000,160,0.0415682000,161,0.1063360000,162,0.1749420000,163,0.1236850000,164,-0.5125020000,165,-0.0224647000,166,0.1407550000,167,-0.3222290000,168,-0.3223170000,169,-0.1595320000,170,0.1004150000,171,0.0021129600,172,-0.0480635000,173,-0.0994302000,174,0.5161510000,175,0.0429486000,176,-0.0964809000,177,0.0305357000,178,-0.3604890000,179,0.2909420000,180,-0.0744655000,181,0.0338040000,182,-0.4438250000,183,0.0865395000,184,0.1122010000,185,0.1748960000,186,-0.0135936000,187,0.0305274000,188,0.1818590000,189,-0.4994700000,190,-0.8153410000,191,-0.3416420000,192,-0.0957148000,193,0.0018169000,194,0.0525679000,195,0.0215749000,196,0.2489590000,197,-0.1268380000,198,-0.0475731000,199,-0.1725250000,200,-0.1777050000,201,-0.3096220000,202,0.0135128000,203,0.1357390000,204,0.2223550000 +127,0,-0.1646180000,232,-1.0000000000,155,0.4246230000,156,-0.3200110000,157,0.0223435000,158,-0.3017170000,159,-0.3014660000,160,-0.1967230000,161,0.5363580000,162,0.3612900000,163,-0.0761559000,164,0.0816841000,165,-0.0491842000,166,-0.2594420000,167,-0.1985840000,168,-0.1149400000,169,0.3297770000,170,0.9347120000,171,-0.4930870000,172,-0.0225445000,173,0.1329680000,174,-0.0141839000,175,-0.0373448000,176,0.2367230000,177,-0.2013960000,178,-0.0506223000,179,0.7382470000,180,-0.1010340000,181,-0.0087432600,182,-0.6262110000,183,-0.5831820000,184,-0.0248168000,185,-0.0183653000,186,-0.0226658000,187,0.0112024000,188,0.1239050000,189,-0.3975580000,190,-0.3321450000,191,-0.1097090000,192,0.1727120000,193,0.0039567800,194,0.2080210000,195,0.0127096000,196,0.7750010000,197,0.4318600000,198,-0.0274774000,199,0.3226410000,200,2.0518800000,201,-0.0489196000,202,0.2960310000,203,0.1909060000,204,-0.4591450000 +128,0,0.6353270000,233,-1.0000000000,155,0.5742840000,156,-0.0232163000,157,-0.0239160000,158,-0.2816450000,159,-0.4077290000,160,0.2916020000,161,-0.2732180000,162,-1.8979600000,163,0.4647230000,164,0.7405280000,165,0.0076830800,166,0.1414880000,167,-0.4296060000,168,0.2924550000,169,0.0570502000,170,-0.4019140000,171,-0.4974450000,172,-0.0414559000,173,0.2769760000,174,-1.1620100000,175,0.0272214000,176,-0.0922782000,177,0.3867300000,178,0.3082850000,179,-1.2695100000,180,-0.0296724000,181,0.0268768000,182,0.2174970000,183,0.0238028000,184,-0.4183850000,185,0.0661433000,186,0.0405394000,187,-0.0349376000,188,-0.1886850000,189,0.1390340000,190,0.7825780000,191,1.0994400000,192,-0.5128380000,193,0.0119828000,194,-0.3317180000,195,0.0410919000,196,-1.2922300000,197,0.4175520000,198,0.0222546000,199,0.2219280000,200,-0.6655600000,201,1.1138200000,202,-0.5298420000,203,-0.1387430000,204,0.0382160000 +129,0,-0.0186143000,234,-1.0000000000,155,0.0397921000,156,0.1205900000,157,-0.0148280000,158,0.5165460000,159,0.0785032000,160,0.0166356000,161,0.0462616000,162,-0.2993850000,163,-0.1078240000,164,0.5082380000,165,-0.0039781800,166,0.1860660000,167,0.0176483000,168,-0.2896760000,169,-0.4048120000,170,-0.0541325000,171,0.1311350000,172,-0.0328881000,173,0.0154584000,174,-0.0967672000,175,0.0090334000,176,0.2540720000,177,-0.1348340000,178,0.2091410000,179,-0.2503670000,180,-0.0219060000,181,-0.0212260000,182,0.1604700000,183,0.4254260000,184,0.0217369000,185,-0.0348048000,186,0.0048354400,187,0.0351320000,188,-0.1450740000,189,0.3594100000,190,0.1025580000,191,-0.1484490000,192,0.2312630000,193,-0.0237708000,194,-0.2284710000,195,-0.0251725000,196,0.2999910000,197,0.1437900000,198,-0.0117118000,199,-0.2286570000,200,0.4788650000,201,-0.0704381000,202,0.0395739000,203,-0.1598110000,204,0.5081100000 +130,0,-0.1813110000,235,-1.0000000000,155,-0.2744090000,156,0.4633510000,157,-0.0470806000,158,0.1289110000,159,-0.1449160000,160,-0.0856557000,161,0.5151780000,162,-0.6999710000,163,0.0746368000,164,0.8681810000,165,0.0159366000,166,0.1644800000,167,0.2382660000,168,-0.0574540000,169,0.0305020000,170,0.3241290000,171,-0.2401600000,172,-0.0333003000,173,-0.0530387000,174,-0.7496610000,175,-0.0231247000,176,0.5532660000,177,-0.1374010000,178,-1.2339900000,179,0.9643660000,180,0.6168080000,181,0.0216528000,182,-0.5137210000,183,-0.4795810000,184,0.4720310000,185,-0.2189600000,186,-0.0381193000,187,-0.0360883000,188,0.1405050000,189,-0.0560549000,190,0.2749140000,191,-0.2843180000,192,-0.2430960000,193,-0.0205258000,194,0.5370680000,195,0.0335612000,196,-0.7772890000,197,-0.3023110000,198,0.0264530000,199,0.2908760000,200,0.4713240000,201,-0.2672780000,202,-0.2527200000,203,0.1342000000,204,-0.3639810000 +131,0,-0.0472835000,236,-1.0000000000,155,0.7568560000,156,0.3655320000,157,-0.0420807000,158,0.4803190000,159,0.8445230000,160,0.7930050000,161,0.1468890000,162,-1.8046600000,163,-0.5255740000,164,0.2204740000,165,0.0043955900,166,0.2773300000,167,0.7300010000,168,-0.7633040000,169,0.3706480000,170,-0.0987596000,171,1.2439800000,172,0.0179436000,173,0.0043343900,174,2.1410800000,175,-0.0089123700,176,-0.1181280000,177,-0.2767110000,178,0.7903040000,179,-1.0854400000,180,-0.6746110000,181,-0.0219582000,182,0.4113090000,183,0.4959890000,184,0.3310750000,185,-0.1391290000,186,0.0274390000,187,0.0624776000,188,0.3414530000,189,0.7396850000,190,0.4144130000,191,0.4476500000,192,0.7508530000,193,-0.0023404700,194,-1.1931200000,195,0.0436324000,196,-1.5473300000,197,1.2187600000,198,-0.0255455000,199,0.0214509000,200,1.4672400000,201,0.0687853000,202,-0.6158730000,203,-0.5653600000,204,0.2381430000 +132,0,0.3401890000,237,-1.0000000000,155,-0.0993888000,156,-0.6906930000,157,0.0537862000,158,0.1879180000,159,-0.1701540000,160,0.0483399000,161,-0.1525970000,162,1.0123700000,163,-0.5935640000,164,0.0472392000,165,-0.0330707000,166,0.2619760000,167,-0.4753100000,168,0.2000450000,169,-0.8688240000,170,0.2813920000,171,-0.3804120000,172,0.0089921500,173,0.0747211000,174,0.1714450000,175,-0.0133330000,176,-0.1142760000,177,0.2048440000,178,0.0835992000,179,0.4248660000,180,-0.0603838000,181,-0.0294731000,182,0.2279510000,183,-0.1165300000,184,-0.0427633000,185,0.5538220000,186,0.0376816000,187,-0.0269061000,188,-0.0019885100,189,-0.0409549000,190,-0.0074473200,191,0.5484550000,192,-0.4297740000,193,0.0400415000,194,0.0376335000,195,0.0085070500,196,-0.1668830000,197,0.3053220000,198,0.0455822000,199,0.1337030000,200,-0.7802920000,201,-0.3037440000,202,0.4597520000,203,0.0060347200,204,-0.6887070000 +133,0,-0.4390720000,238,-1.0000000000,155,0.1683610000,156,0.0313327000,157,0.0223799000,158,0.6957900000,159,-0.0907125000,160,-0.1152910000,161,0.3060090000,162,0.0115371000,163,0.3930790000,164,0.1189610000,165,0.0005959800,166,0.3930670000,167,-0.2812310000,168,-0.0318313000,169,0.2762170000,170,0.1310210000,171,-0.5067060000,172,0.0068455700,173,0.1009300000,174,1.2193900000,175,0.0106005000,176,0.2521670000,177,-0.3259110000,178,-0.0201614000,179,0.0220308000,180,-0.0017086300,181,-0.0097143000,182,-0.1185100000,183,0.4522420000,184,0.2154270000,185,0.1277460000,186,0.0094947300,187,0.0243308000,188,0.1005060000,189,-0.0209121000,190,-0.1048510000,191,-0.3068010000,192,0.0027945000,193,0.0245131000,194,-0.2446390000,195,-0.0226559000,196,0.2565600000,197,0.3147690000,198,-0.0188838000,199,0.0162539000,200,0.1629860000,201,0.5558910000,202,0.0637123000,203,-0.1554550000,204,0.4998330000 +134,0,-0.2631680000,239,-1.0000000000,155,-0.3603220000,156,0.0907084000,157,-0.0255634000,158,-0.2421070000,159,0.1943470000,160,0.3045140000,161,0.2095360000,162,0.2741030000,163,0.3724560000,164,0.0714915000,165,0.0050021900,166,-0.0159489000,167,0.4479640000,168,-0.2584970000,169,0.7172390000,170,-0.2300810000,171,0.3746720000,172,-0.0382714000,173,-0.0509157000,174,0.0081519600,175,-0.0028032400,176,-0.0321215000,177,-0.1299330000,178,0.0611414000,179,0.8421240000,180,-0.0700469000,181,0.0401511000,182,-0.4233990000,183,-0.2222300000,184,0.2467030000,185,0.7661030000,186,0.0494393000,187,-0.0125331000,188,-0.4177140000,189,0.0512688000,190,0.0758133000,191,-0.3385510000,192,-0.3254540000,193,-0.0483105000,194,0.1671480000,195,0.0156196000,196,1.0577100000,197,0.3968600000,198,0.0106859000,199,0.0277442000,200,1.2864300000,201,1.8834500000,202,-0.5366960000,203,-0.2420430000,204,0.4056480000 +135,0,-0.0179799000,240,-1.0000000000,155,-0.4892350000,156,0.4921830000,157,-0.0215500000,158,0.8734840000,159,-0.1585550000,160,-0.6138900000,161,-0.0221769000,162,0.6206990000,163,-0.7769780000,164,-0.4792590000,165,-0.0179044000,166,0.6107300000,167,0.2301250000,168,-1.0741200000,169,-1.5610100000,170,-0.3918480000,171,0.7411850000,172,0.0165559000,173,-0.2366530000,174,0.1180840000,175,0.0516787000,176,0.4370770000,177,-0.0851793000,178,-0.4781030000,179,0.2828720000,180,-0.7430920000,181,0.0239955000,182,-0.5602430000,183,-0.1947350000,184,0.4265870000,185,0.2085580000,186,0.0480263000,187,0.0183432000,188,0.1391120000,189,-0.6231920000,190,0.1279990000,191,0.1286700000,192,1.1274300000,193,-0.0077614800,194,-0.2706400000,195,0.0001478750,196,-0.6701430000,197,0.6562800000,198,0.0117327000,199,0.5141710000,200,0.2635050000,201,0.4756290000,202,0.7652160000,203,0.2068090000,204,-0.0072819300 +136,0,0.0060145800,241,-1.0000000000,155,-0.0180872000,156,-0.0295853000,157,-0.0215418000,158,0.0009501550,159,-0.0433683000,160,0.0177668000,161,0.0140818000,162,0.0082245800,163,-0.0346455000,164,-0.0273581000,165,-0.0119664000,166,0.0225097000,167,0.0126145000,168,0.0211643000,169,-0.0040136500,170,0.0113090000,171,-0.0085564400,172,0.0169639000,173,-0.0483721000,174,-0.0445034000,175,-0.0132594000,176,-0.0155436000,177,-0.0382024000,178,0.0130677000,179,-0.0101736000,180,0.0123768000,181,-0.0377619000,182,-0.0345829000,183,0.0370712000,184,-0.0334433000,185,-0.0018012900,186,0.0388441000,187,0.0139155000,188,-0.0467388000,189,-0.0351706000,190,-0.0408881000,191,-0.0089416900,192,0.0438172000,193,-0.0351746000,194,0.0377768000,195,0.0404014000,196,-0.0056235700,197,0.0054072400,198,0.0461209000,199,-0.0421067000,200,0.0377881000,201,-0.0131723000,202,0.0136448000,203,0.0073275400,204,-0.0198466000 +137,0,-0.0839292000,242,-1.0000000000,155,-0.2525750000,156,0.2060830000,157,-0.0030555700,158,0.1348070000,159,0.1400950000,160,0.0863721000,161,0.0327311000,162,-0.8962460000,163,0.5845410000,164,-0.3336410000,165,-0.0384007000,166,0.5653920000,167,-0.4703950000,168,0.1547860000,169,-0.6019040000,170,-0.3666410000,171,0.7816550000,172,0.0420946000,173,-0.0564187000,174,0.0743439000,175,-0.0156896000,176,-0.3416080000,177,0.1447630000,178,-0.1699780000,179,-0.0282814000,180,0.5138180000,181,0.0138507000,182,-0.5853590000,183,-0.1835260000,184,0.1359590000,185,-0.1817630000,186,-0.0235469000,187,-0.0193666000,188,-0.3356330000,189,0.0637011000,190,0.8401410000,191,-0.2136630000,192,-0.7985160000,193,0.0069757400,194,-0.3318190000,195,-0.0412789000,196,0.4088450000,197,-0.4596480000,198,0.0031478900,199,0.5911180000,200,0.5766900000,201,0.1357280000,202,-0.5825350000,203,-0.0013496500,204,0.3705390000 +138,0,-0.5992110000,243,-1.0000000000,155,0.5198480000,156,0.0779803000,157,0.0210347000,158,-0.0423296000,159,-0.5496880000,160,0.9636200000,161,-0.3393170000,162,0.2746710000,163,-0.0329340000,164,0.5945730000,165,0.0017669200,166,-1.1475600000,167,-0.5030350000,168,-0.0724955000,169,-0.2299520000,170,0.0301438000,171,-0.3063200000,172,-0.0148421000,173,0.8346690000,174,-0.5232760000,175,-0.0500283000,176,-0.6670650000,177,0.2110210000,178,0.2232610000,179,0.2879780000,180,-0.0661280000,181,0.0240803000,182,0.1599580000,183,-1.3618900000,184,-0.4733490000,185,-0.1838310000,186,-0.0445602000,187,-0.0449348000,188,-0.1363370000,189,0.3367150000,190,0.6530840000,191,0.6969090000,192,0.3448060000,193,0.0112311000,194,0.8005740000,195,-0.0382705000,196,-0.4101340000,197,-0.0131622000,198,0.0417334000,199,0.9710070000,200,1.4616300000,201,-0.4367930000,202,-0.2101010000,203,0.2494460000,204,-0.0208806000 +139,0,-0.1022030000,244,-1.0000000000,155,0.7142230000,156,0.1766880000,157,-0.0112080000,158,0.3215200000,159,-0.0079073100,160,0.4935070000,161,0.8751060000,162,1.0748900000,163,0.3863330000,164,-0.0384985000,165,-0.0371105000,166,-0.7959780000,167,0.6827610000,168,-0.7264620000,169,0.6009990000,170,0.1485790000,171,1.1367800000,172,0.0579511000,173,-0.1543140000,174,-0.7125810000,175,-0.0350040000,176,-0.1110080000,177,-0.1946550000,178,0.1960920000,179,1.3716900000,180,-2.6799700000,181,0.0401788000,182,0.3466850000,183,1.2133200000,184,0.4228460000,185,-0.0723257000,186,-0.0227790000,187,0.0131683000,188,0.0029818800,189,-0.1084960000,190,0.3300660000,191,-1.3037600000,192,0.8020940000,193,0.0066109400,194,1.3722900000,195,-0.0095307800,196,-0.4752880000,197,1.1338800000,198,-0.0189682000,199,0.2843840000,200,-0.6089690000,201,0.7077680000,202,-0.0433879000,203,-0.2486900000,204,0.7489770000 +140,0,-0.3037650000,245,-1.0000000000,155,1.0570600000,156,0.4607840000,157,0.0127942000,158,-0.0746540000,159,-0.0118620000,160,-0.1017490000,161,-0.0953598000,162,-1.5062700000,163,0.4697790000,164,-0.4158400000,165,-0.0000266473,166,0.0463886000,167,0.6081110000,168,0.4094790000,169,0.8926140000,170,-0.3730220000,171,1.5439100000,172,-0.0065140800,173,-0.3559720000,174,0.0340063000,175,-0.0043081100,176,0.2538470000,177,-0.2666820000,178,-0.1657980000,179,0.0518734000,180,0.0258475000,181,-0.0252221000,182,0.6847850000,183,-0.2902550000,184,0.1243640000,185,0.7394290000,186,0.0138257000,187,0.0393057000,188,0.2772560000,189,0.8651750000,190,-1.1049800000,191,-0.3468650000,192,0.7381250000,193,0.0341368000,194,0.9581340000,195,-0.0222300000,196,-0.8459540000,197,-0.1560210000,198,0.0434101000,199,-0.1040620000,200,2.7099000000,201,1.9875300000,202,-0.0172641000,203,0.4866340000,204,0.1130240000 +141,0,-0.1636530000,246,-1.0000000000,155,0.0526946000,156,-0.0643734000,157,0.0217060000,158,-0.4352550000,159,0.2001910000,160,0.0300231000,161,0.0571307000,162,0.0679969000,163,0.0119361000,164,0.2769090000,165,0.0055725400,166,0.0098191900,167,-0.4410950000,168,0.1578380000,169,-0.0644525000,170,0.1330040000,171,-0.0219982000,172,-0.0071611400,173,-0.0458668000,174,0.0476956000,175,-0.0045801900,176,-0.0404005000,177,-0.0412017000,178,-0.1738890000,179,0.3411770000,180,0.0774870000,181,-0.0275130000,182,-0.0405853000,183,-0.0086029300,184,-0.0791272000,185,0.0081007800,186,0.0100865000,187,0.0449805000,188,-0.0641995000,189,0.2803490000,190,0.3068020000,191,-0.1068380000,192,-0.6824120000,193,-0.0259847000,194,-0.1990900000,195,0.0072068700,196,0.1245430000,197,0.1310740000,198,-0.0135232000,199,-0.0662234000,200,-0.4396990000,201,-0.1223440000,202,-0.0409716000,203,0.0596024000,204,-0.0419709000 +142,0,0.0298705000,247,-1.0000000000,155,0.0798785000,156,0.1591340000,157,0.0130725000,158,-0.0361349000,159,0.2109990000,160,-0.0698663000,161,0.0280301000,162,-0.5792150000,163,0.2272970000,164,0.7079480000,165,-0.0091755600,166,-0.3025660000,167,0.6285280000,168,0.1132090000,169,-0.3179570000,170,1.0139600000,171,-1.1865500000,172,0.0142584000,173,-0.3100230000,174,1.0973800000,175,-0.0297170000,176,0.4303680000,177,-0.0277291000,178,-0.2864250000,179,-0.5911370000,180,0.0115115000,181,0.0009173760,182,0.2460510000,183,0.4175610000,184,-0.2564280000,185,-0.0358712000,186,-0.0204743000,187,-0.0091448500,188,0.6800170000,189,0.9395670000,190,0.7449480000,191,0.3000350000,192,0.0288509000,193,-0.0191997000,194,0.8487320000,195,-0.0396136000,196,-0.7215950000,197,0.5748410000,198,-0.0097039400,199,0.0227253000,200,-0.3673900000,201,-0.0066848600,202,0.0375323000,203,0.3467280000,204,0.3094160000 +143,0,-0.1906400000,248,-1.0000000000,155,-0.0078087200,156,0.1423000000,157,0.0463889000,158,1.0685100000,159,-0.1362420000,160,0.3673450000,161,0.6638960000,162,1.1554900000,163,-0.4031280000,164,0.2810260000,165,0.0037311200,166,0.5651200000,167,0.4595570000,168,-0.2407490000,169,1.4095200000,170,0.0385307000,171,-0.6143600000,172,0.0043122200,173,0.0750812000,174,0.5527730000,175,0.0181074000,176,0.3714300000,177,-0.4658500000,178,0.8081240000,179,0.2139810000,180,0.4094670000,181,-0.0503183000,182,-0.7391040000,183,0.6770470000,184,-0.2418240000,185,0.7339750000,186,-0.0191107000,187,0.0179235000,188,-0.1238070000,189,-0.8719870000,190,-0.1999320000,191,0.0470095000,192,1.3032000000,193,-0.0390859000,194,-0.3159590000,195,0.0241200000,196,0.9524840000,197,0.9898110000,198,0.0045985900,199,-0.0911036000,200,1.7274900000,201,0.8097380000,202,0.8389620000,203,-0.7311130000,204,-0.1715300000 +144,0,-0.0154844000,249,-1.0000000000,155,0.0993431000,156,0.0582215000,157,0.0396544000,158,-0.0429628000,159,0.0204609000,160,0.3884680000,161,-0.6428230000,162,-0.5812390000,163,0.0315858000,164,-0.6298160000,165,-0.0077607200,166,-0.1063780000,167,-0.5545580000,168,-0.0603769000,169,0.2776430000,170,0.1400650000,171,-0.1732490000,172,0.0142509000,173,0.0454887000,174,0.0927240000,175,0.0453021000,176,-0.2419540000,177,0.2603160000,178,0.4392060000,179,-0.0562996000,180,0.3651570000,181,0.0001748720,182,0.0494753000,183,1.1020900000,184,-0.5780040000,185,1.1298300000,186,0.0437527000,187,0.0045122800,188,-0.3468060000,189,-0.7771840000,190,0.0058969900,191,0.9889320000,192,-0.2983130000,193,0.0175452000,194,-0.7944810000,195,0.0447060000,196,-1.3310700000,197,-0.2789780000,198,-0.0132536000,199,-0.2695230000,200,-0.3770680000,201,-0.7258070000,202,0.3684440000,203,-0.2359860000,204,-0.7146730000 +145,0,0.2505100000,250,-1.0000000000,155,0.6510520000,156,0.2218370000,157,-0.0300970000,158,0.1163970000,159,-0.3290700000,160,-0.0011657500,161,0.7035350000,162,-0.2439020000,163,0.3000840000,164,-0.3420250000,165,0.0021540400,166,0.2502930000,167,0.2329890000,168,0.9267520000,169,0.3044410000,170,0.2826060000,171,-0.7981140000,172,-0.0408157000,173,0.3000930000,174,-0.2107610000,175,0.0224777000,176,0.2491660000,177,-0.2126900000,178,1.1533600000,179,-0.6037670000,180,-0.1878080000,181,-0.0425930000,182,-0.2362050000,183,-1.1404100000,184,-0.0858050000,185,0.0370887000,186,-0.0350228000,187,0.0234192000,188,-0.4725370000,189,0.2583880000,190,0.1735300000,191,-0.4615610000,192,0.8377500000,193,0.0289167000,194,-0.3262100000,195,-0.0205372000,196,-0.0086287300,197,0.4932570000,198,0.0447373000,199,-0.1370780000,200,-2.0692400000,201,-0.4378400000,202,0.2574590000,203,0.3815340000,204,0.3377630000 +146,0,0.1780980000,251,-1.0000000000,155,-0.1486430000,156,-0.2917100000,157,-0.0170278000,158,-0.0597828000,159,0.9971270000,160,0.3866000000,161,-0.0586692000,162,-0.0665437000,163,0.0418971000,164,-0.1113500000,165,-0.0285629000,166,-0.2296980000,167,-0.1358590000,168,0.7874900000,169,-0.0635899000,170,-0.0751540000,171,-0.5688570000,172,0.0029060800,173,0.0931211000,174,-0.2398990000,175,0.0238067000,176,0.0139448000,177,0.1101910000,178,-0.3830540000,179,0.4262260000,180,-0.6292430000,181,-0.0179625000,182,0.4711430000,183,0.0938645000,184,-0.2610800000,185,0.6530650000,186,0.0164668000,187,0.0024995100,188,0.0089696200,189,0.7107170000,190,-0.9611360000,191,0.1639880000,192,-0.3548200000,193,0.0386114000,194,-0.0061727300,195,0.0138757000,196,-1.4247700000,197,-0.8472760000,198,0.0314280000,199,0.6146130000,200,-0.0237315000,201,-0.4252280000,202,0.1034780000,203,-0.0348023000,204,-0.4712710000 +147,0,0.2264130000,252,-1.0000000000,155,-0.5585110000,156,0.4451900000,157,0.0108959000,158,-0.1804280000,159,0.7480290000,160,-0.0523072000,161,0.2295510000,162,-0.4972320000,163,0.1050640000,164,-0.3092400000,165,-0.0134160000,166,0.6409550000,167,0.7159060000,168,0.4804620000,169,1.3924900000,170,0.1420490000,171,0.2998990000,172,-0.0186682000,173,-0.1988960000,174,0.8909310000,175,0.0292981000,176,0.3913420000,177,0.0089901600,178,-0.2361690000,179,0.0067590800,180,-0.6074040000,181,-0.0205274000,182,0.0321726000,183,0.3234050000,184,0.0975439000,185,-0.9614190000,186,0.0069134700,187,0.0204408000,188,-0.1426830000,189,0.9769740000,190,0.5235050000,191,0.0597503000,192,-0.3576210000,193,-0.0193948000,194,1.5888000000,195,-0.0283772000,196,-0.6303250000,197,-0.2898420000,198,0.0411350000,199,-0.0784309000,200,2.7680300000,201,0.7876340000,202,-0.7897820000,203,0.3695810000,204,0.1176620000 +148,0,0.0488983000,253,-1.0000000000,155,-0.5868290000,156,-0.0862449000,157,0.0041209200,158,0.2848250000,159,0.0869037000,160,0.2323040000,161,-0.0241979000,162,0.5155220000,163,-0.4260500000,164,-0.6559610000,165,-0.0256950000,166,0.3877220000,167,-0.1525950000,168,0.7267510000,169,0.7197070000,170,0.7183210000,171,0.5830800000,172,0.0383660000,173,-0.0814205000,174,2.2879100000,175,0.0216648000,176,0.0505269000,177,0.2084340000,178,0.3433130000,179,0.0588945000,180,0.0324760000,181,-0.0328480000,182,0.9392270000,183,-0.4639150000,184,-0.3032010000,185,1.0041900000,186,-0.0090512500,187,0.0182818000,188,0.4031010000,189,-0.7410510000,190,0.4722030000,191,0.1416490000,192,-0.8672380000,193,-0.0036646600,194,0.5014400000,195,0.0364143000,196,0.5040940000,197,0.9334540000,198,-0.0259492000,199,-0.7060060000,200,-0.0364290000,201,-0.9471140000,202,0.5209030000,203,-0.4405980000,204,-0.8889010000 +149,0,0.1215960000,254,-1.0000000000,155,-0.5303490000,156,0.3331620000,157,-0.0349193000,158,0.7794700000,159,0.2620240000,160,0.2862090000,161,-0.3990920000,162,0.6501280000,163,-0.7668860000,164,-0.4192330000,165,0.0123917000,166,-0.2624950000,167,0.2605640000,168,0.0373124000,169,-0.5424510000,170,-0.2751290000,171,0.1327610000,172,0.0149033000,173,0.0679920000,174,-0.2012220000,175,0.0175145000,176,0.2411190000,177,-0.0787562000,178,-0.1537130000,179,0.6099020000,180,-0.0977391000,181,0.0271771000,182,-1.5168800000,183,0.6085280000,184,0.2982150000,185,0.3030140000,186,0.0002483800,187,-0.0156917000,188,0.1276500000,189,0.5716500000,190,-0.7995350000,191,0.0042864600,192,0.1828390000,193,0.0298731000,194,1.0073900000,195,-0.0512409000,196,0.8394950000,197,-0.5730170000,198,-0.0329235000,199,0.2408380000,200,0.5019840000,201,0.0077189100,202,0.2697830000,203,-0.1766430000,204,-0.4263370000 +150,0,-0.0095203800,305,-1.0000000000,255,-0.2493700000,256,0.0432026000,257,-0.4592670000,258,-0.0177396000,259,0.2000520000,260,-0.2027460000,261,0.4988410000,262,-0.3342770000,263,-0.4196230000,264,-0.2974260000,265,-0.4179930000,266,-0.4006700000,267,-0.2695440000,268,-0.1307160000,269,-0.6073040000,270,0.1101370000,271,0.2061620000,272,-0.5862000000,273,0.5215080000,274,0.6603910000,275,0.4635100000,276,0.3274230000,277,-0.3112840000,278,-0.0342814000,279,0.6240570000,280,-0.1132930000,281,0.0073126100,282,0.6239040000,283,-0.3453740000,284,0.0654344000,285,0.0100270000,286,0.2426400000,287,0.5527140000,288,-0.3631720000,289,0.2705130000,290,0.6841330000,291,0.0322839000,292,-0.1304490000,293,-0.0497572000,294,-0.1881750000,295,0.3851010000,296,1.1327300000,297,0.0811336000,298,0.5484830000,299,0.2959170000,300,-0.2440100000,301,-0.1798730000,302,0.1189620000,303,0.1532560000,304,-0.2847600000 +151,0,0.3439380000,306,-1.0000000000,255,0.6781960000,256,0.6626440000,257,0.1136520000,258,-0.0068694200,259,0.2293670000,260,0.0192535000,261,2.1078400000,262,1.0893600000,263,1.2668300000,264,0.4740040000,265,-0.2101350000,266,0.0517202000,267,0.9183200000,268,-0.1231760000,269,-0.1204000000,270,-0.0606030000,271,0.0436644000,272,-0.4317030000,273,0.6931100000,274,0.4219660000,275,-0.6392430000,276,-0.7074670000,277,0.6083030000,278,0.3349630000,279,-0.1700690000,280,0.0961775000,281,0.6932770000,282,0.6734410000,283,-0.7440450000,284,0.2869330000,285,0.0913550000,286,-0.2662380000,287,0.3681950000,288,0.5017630000,289,-0.3017690000,290,-0.3572880000,291,-0.0144660000,292,-0.0548268000,293,0.4345220000,294,-0.2181880000,295,-0.1584890000,296,0.6272680000,297,-0.2654840000,298,1.2892800000,299,0.1227890000,300,0.4861900000,301,-0.3065300000,302,0.1937110000,303,-0.6210460000,304,-0.2890370000 +152,0,-1.1778200000,307,-1.0000000000,255,0.5447610000,256,0.1032690000,257,1.3161900000,258,-0.0467495000,259,-1.9387900000,260,0.6160850000,261,-0.2348040000,262,0.5760780000,263,1.1839800000,264,-0.4626460000,265,-0.1193400000,266,0.6184780000,267,-0.0189167000,268,-0.2839590000,269,-0.2750420000,270,-0.0152707000,271,-0.9279340000,272,0.0279397000,273,0.5108020000,274,0.1725630000,275,-1.1467000000,276,-0.4512670000,277,0.6646810000,278,-1.1464500000,279,-0.3470370000,280,-0.7090840000,281,0.4242760000,282,1.6073500000,283,-0.2854380000,284,0.5129080000,285,0.6473040000,286,0.4099660000,287,-0.2154870000,288,1.0461900000,289,1.5751600000,290,0.7525590000,291,0.0160264000,292,0.2227700000,293,0.9968600000,294,1.0340600000,295,0.2342430000,296,-0.9919340000,297,-0.0903271000,298,-0.1013890000,299,-0.4238760000,300,0.6310110000,301,0.8051590000,302,-1.0948500000,303,-0.1424300000,304,0.9505640000 +153,0,0.2281420000,308,-1.0000000000,255,-0.1458920000,256,-0.2346070000,257,-0.0107690000,258,0.0338388000,259,0.2518570000,260,-0.1852970000,261,-0.5363140000,262,0.1851300000,263,-0.3243200000,264,0.1633130000,265,0.1213770000,266,0.0548659000,267,0.0832212000,268,-0.3058760000,269,0.1745820000,270,0.3146680000,271,-0.0457068000,272,0.1209260000,273,0.7684010000,274,0.1299400000,275,-0.0603852000,276,-0.0620030000,277,-0.2111890000,278,-0.4548640000,279,0.0490576000,280,-0.3137000000,281,0.5003690000,282,0.0032468900,283,-0.2298490000,284,-0.0694843000,285,0.2057430000,286,-0.1810730000,287,0.3151500000,288,0.1617710000,289,0.0987485000,290,0.2141220000,291,-0.0014647300,292,0.1717240000,293,0.2166120000,294,-0.1281950000,295,0.3394370000,296,0.2633140000,297,-0.2761080000,298,0.4158650000,299,0.0977774000,300,-0.4241390000,301,0.0236617000,302,0.0220994000,303,-0.0671115000,304,-0.7385170000 +154,0,0.2949880000,309,-1.0000000000,255,0.5032490000,256,-0.4142050000,257,-0.4041020000,258,-0.0038047400,259,0.4402030000,260,-0.0464649000,261,1.5570800000,262,-0.2121630000,263,0.4776380000,264,0.5510450000,265,-0.1642510000,266,0.2538780000,267,-0.6396830000,268,-0.1577280000,269,0.7187690000,270,0.0283431000,271,0.0309073000,272,0.4923100000,273,1.0617800000,274,0.8216280000,275,0.1609350000,276,-0.0546697000,277,-0.5864810000,278,0.0329562000,279,0.0677677000,280,-0.9161660000,281,0.9218490000,282,0.7872010000,283,0.0114602000,284,1.1286600000,285,0.0610111000,286,0.1394590000,287,0.4458050000,288,0.7826750000,289,-1.3769000000,290,-0.5027640000,291,0.0023704400,292,-0.0175572000,293,-0.0782381000,294,0.3809720000,295,-0.1952640000,296,0.5388710000,297,-0.1429430000,298,-1.0017900000,299,0.2794700000,300,0.2296640000,301,-0.4104210000,302,0.0651555000,303,-0.2083810000,304,-0.5653760000 +155,0,0.0357871000,310,-1.0000000000,255,-0.6864230000,256,0.1403020000,257,0.1675640000,258,0.0285923000,259,0.4673920000,260,-0.1028750000,261,0.7859520000,262,-1.4631000000,263,1.3285800000,264,0.5700020000,265,0.1877310000,266,-0.3143260000,267,-0.2961340000,268,0.0447290000,269,-0.0679479000,270,-0.7988020000,271,-0.7231080000,272,-0.4669510000,273,1.0728500000,274,0.0895213000,275,0.6816910000,276,-0.0762104000,277,-0.0049485100,278,-0.0295596000,279,0.1102230000,280,0.8233670000,281,0.2210570000,282,-0.5533260000,283,0.6430590000,284,0.2455730000,285,-0.6556750000,286,0.2667720000,287,-0.5641690000,288,-0.2265110000,289,-1.5907800000,290,0.5993640000,291,-0.0159480000,292,0.7552130000,293,-0.0906535000,294,0.4682550000,295,-0.0652577000,296,-0.6975310000,297,-0.1826220000,298,-0.1436710000,299,-0.5069590000,300,-0.1873350000,301,-0.1921070000,302,-1.1368900000,303,-0.0956293000,304,0.1506940000 +156,0,0.2575230000,311,-1.0000000000,255,-0.9298890000,256,1.0622100000,257,0.1810030000,258,0.0130958000,259,-0.4714110000,260,0.0167656000,261,1.2762600000,262,0.3786840000,263,0.5848990000,264,1.0016100000,265,-0.9144310000,266,0.3250480000,267,1.3716800000,268,-0.4530690000,269,-0.2479810000,270,0.2874390000,271,0.0816455000,272,0.8142110000,273,0.4389560000,274,1.9047900000,275,-0.1347390000,276,-0.0363998000,277,0.5392640000,278,-0.8807320000,279,0.7691020000,280,-0.2866480000,281,0.5958470000,282,0.5085590000,283,-0.7212470000,284,0.3275340000,285,0.5840220000,286,0.3301430000,287,0.5811550000,288,-0.0630916000,289,0.4363600000,290,1.2669000000,291,0.0047470700,292,0.1077060000,293,-0.2069240000,294,0.6995410000,295,-0.5999170000,296,-1.8559300000,297,0.3842110000,298,-0.4957820000,299,0.0375291000,300,0.3264420000,301,0.8862800000,302,-2.2362300000,303,-0.7014840000,304,-1.7991700000 +157,0,0.2554930000,312,-1.0000000000,255,0.2028870000,256,1.6983100000,257,-1.2659900000,258,0.0224392000,259,0.6001480000,260,-0.0349675000,261,-0.7388050000,262,-0.6961420000,263,-1.2281300000,264,0.9868600000,265,0.3122490000,266,-0.4440080000,267,0.7079010000,268,0.2371490000,269,0.4817120000,270,-0.1639750000,271,-0.3794940000,272,0.5384760000,273,0.5831800000,274,-0.2689930000,275,-0.0994465000,276,0.0116755000,277,-0.2473970000,278,0.2695850000,279,0.4245620000,280,-0.0720306000,281,-0.1946020000,282,-1.4553800000,283,0.2280420000,284,0.7394600000,285,0.3184350000,286,-0.7739890000,287,0.2736010000,288,-0.6754420000,289,0.1459940000,290,-0.4744950000,291,0.0016579400,292,0.0662915000,293,-0.2185660000,294,-0.3039530000,295,0.5372090000,296,0.7163610000,297,0.2173120000,298,0.4189060000,299,0.1281530000,300,0.9319680000,301,-0.2004880000,302,0.0170046000,303,0.1424550000,304,0.2334010000 +158,0,0.2808590000,313,-1.0000000000,255,0.2575350000,256,-0.3602790000,257,0.0415205000,258,-0.0055905100,259,-0.7111510000,260,-0.0910616000,261,1.7317600000,262,1.2108200000,263,0.2342030000,264,-0.0972706000,265,0.0036455800,266,0.0793167000,267,-0.6917460000,268,0.0870694000,269,0.6257600000,270,-0.3534770000,271,-0.5007250000,272,0.2451610000,273,0.0160634000,274,-0.5113700000,275,-0.1678250000,276,-0.1313260000,277,0.1776510000,278,-0.0937794000,279,0.0973588000,280,0.4194220000,281,0.0600658000,282,0.2753930000,283,0.2333590000,284,0.2875930000,285,-0.0767844000,286,-0.7064510000,287,-0.8683890000,288,-0.0509453000,289,0.2620690000,290,-0.1652730000,291,-0.0174326000,292,-0.5764110000,293,0.2314680000,294,-0.0127862000,295,-0.0919463000,296,1.1125700000,297,-0.2200210000,298,0.1162290000,299,-0.2648480000,300,-0.5539840000,301,-0.5741980000,302,0.2513550000,303,0.3580570000,304,0.9022200000 +159,0,0.2443720000,314,-1.0000000000,255,-0.3887740000,256,-0.4483370000,257,-0.2325420000,258,-0.0009187410,259,-0.2722720000,260,0.0556760000,261,0.5095130000,262,0.5282590000,263,-0.3433340000,264,-0.3792960000,265,-0.1480270000,266,-0.6487210000,267,0.3536630000,268,-0.0815115000,269,0.2861040000,270,0.0270031000,271,-0.0222871000,272,-0.3037200000,273,0.2149330000,274,0.2540260000,275,0.1046420000,276,0.0869798000,277,0.2858290000,278,-0.0065071700,279,0.4950310000,280,-0.1748920000,281,0.2407800000,282,0.7497360000,283,-0.2119540000,284,-0.2094890000,285,-0.2642160000,286,0.4532870000,287,0.1793550000,288,0.0122723000,289,0.1301710000,290,0.3753700000,291,0.0190259000,292,-0.0213686000,293,0.1735580000,294,-0.0567835000,295,0.1210480000,296,1.6627600000,297,-0.2279240000,298,0.3292430000,299,0.2554140000,300,-0.2424910000,301,-0.1199410000,302,0.1191030000,303,0.1539250000,304,-0.4438280000 +160,0,0.1862540000,315,-1.0000000000,255,-0.3683220000,256,-0.5607720000,257,-0.6336070000,258,0.0373617000,259,0.0653804000,260,-0.3801190000,261,2.0002900000,262,0.9090890000,263,-0.3866490000,264,-0.5820880000,265,-0.6146060000,266,-0.6135090000,267,0.2251000000,268,-0.3542160000,269,-0.1095720000,270,0.6593130000,271,0.3281150000,272,-0.6079990000,273,0.5304760000,274,0.0296456000,275,0.8900690000,276,0.6766920000,277,-0.5217640000,278,-0.3686590000,279,0.4324480000,280,0.0344481000,281,0.5690910000,282,1.5880100000,283,-0.5207790000,284,1.2236800000,285,-0.2557030000,286,0.9388590000,287,0.9220040000,288,0.2394790000,289,1.0436700000,290,0.1305960000,291,-0.0274512000,292,-0.3161170000,293,-0.1195870000,294,0.0793007000,295,0.2540860000,296,0.6539600000,297,-0.3346910000,298,0.2859510000,299,0.8303190000,300,-0.2640240000,301,-0.3983710000,302,0.4578090000,303,0.3540600000,304,-1.0496500000 +161,0,0.0871022000,316,-1.0000000000,255,0.1255890000,256,-2.0383500000,257,-0.4627350000,258,0.0317867000,259,0.2483760000,260,0.0915840000,261,1.7780600000,262,-0.7487970000,263,-0.0237690000,264,-0.4117160000,265,0.0828703000,266,-0.5417150000,267,0.7258480000,268,0.0845695000,269,0.4822310000,270,0.0098592400,271,0.0070353200,272,-0.1732440000,273,-0.2904570000,274,0.0211795000,275,0.2092440000,276,0.1749890000,277,-0.1097250000,278,-0.0738735000,279,0.1155590000,280,-0.2262240000,281,0.1233540000,282,0.0830690000,283,0.1089870000,284,0.0384300000,285,-0.7561520000,286,0.1861700000,287,-0.0151872000,288,0.1920140000,289,-0.0836965000,290,-0.8445440000,291,-0.0342026000,292,-0.4516180000,293,-0.3612190000,294,0.0998418000,295,0.4033560000,296,0.9578020000,297,0.0304119000,298,-0.4324520000,299,0.6722780000,300,-0.2748550000,301,-0.4503760000,302,0.6048840000,303,0.1044440000,304,0.6562780000 +162,0,0.0505961000,317,-1.0000000000,255,0.0089597300,256,0.2230520000,257,-0.1575340000,258,-0.0031184900,259,-0.3892110000,260,0.0478222000,261,-0.1790540000,262,-0.3316090000,263,1.3516900000,264,-0.0751479000,265,-0.3808210000,266,0.0579327000,267,0.2868860000,268,0.0590241000,269,0.4980170000,270,-0.0496560000,271,0.0153266000,272,0.1145010000,273,-0.4322800000,274,0.4160210000,275,-0.1707230000,276,0.1337940000,277,-0.6829190000,278,-0.3668700000,279,0.0353668000,280,0.0602006000,281,0.7945750000,282,0.1042300000,283,0.2283720000,284,0.0870897000,285,-0.3667200000,286,0.1699580000,287,-0.0309874000,288,-1.1661300000,289,-0.1234410000,290,0.0676957000,291,-0.0373874000,292,0.6410770000,293,0.0368144000,294,0.0360730000,295,-0.4458900000,296,0.5109830000,297,0.2884310000,298,1.0341000000,299,-0.1083060000,300,-0.4328130000,301,0.3932320000,302,0.0215891000,303,0.3827700000,304,-0.6932480000 +163,0,0.0454913000,318,-1.0000000000,255,0.2795150000,256,-0.0998238000,257,-0.3318690000,258,-0.0474027000,259,-0.2923610000,260,0.2233670000,261,0.2823710000,262,-0.9919510000,263,0.1943300000,264,1.3195700000,265,0.5616840000,266,0.3308690000,267,-0.3179770000,268,0.2722640000,269,0.1210660000,270,-0.0389529000,271,-0.4291590000,272,0.6447950000,273,1.0087300000,274,0.7780500000,275,-0.1662810000,276,-0.2694370000,277,0.4835320000,278,0.5530050000,279,0.3340270000,280,0.2072860000,281,0.8750680000,282,0.6338710000,283,0.1930380000,284,-0.5213910000,285,0.0401837000,286,0.6437420000,287,0.2549020000,288,-0.7906810000,289,0.3731920000,290,0.7130810000,291,-0.0317037000,292,-0.0633741000,293,-0.3202750000,294,-0.3995280000,295,0.0369965000,296,0.0544196000,297,0.3034570000,298,0.9937470000,299,-0.0854972000,300,-0.9394040000,301,0.3935010000,302,0.3173590000,303,0.4611160000,304,0.2562820000 +164,0,0.1145900000,319,-1.0000000000,255,-0.0114511000,256,0.6592460000,257,-0.3732610000,258,-0.0443628000,259,-0.3416470000,260,0.1337560000,261,-0.3665100000,262,-0.5332510000,263,0.4995700000,264,0.6967100000,265,0.4623310000,266,-0.1932910000,267,-0.5343760000,268,0.2688310000,269,0.2672650000,270,0.0126894000,271,-1.6552100000,272,0.2821810000,273,0.6191380000,274,-0.0491527000,275,-0.0367344000,276,-0.0365807000,277,0.1599290000,278,-0.4023870000,279,0.1145820000,280,0.0343963000,281,0.9563470000,282,-0.3912980000,283,0.8129530000,284,0.1027020000,285,-0.5796060000,286,0.4580010000,287,-1.0974500000,288,-0.1688230000,289,0.3716350000,290,0.4124500000,291,-0.0465844000,292,-0.6990710000,293,-0.0752359000,294,0.3661590000,295,0.1505180000,296,0.1775580000,297,-0.4046270000,298,-2.1505300000,299,-0.0272493000,300,0.3539900000,301,-0.3369100000,302,0.2532050000,303,0.1792500000,304,-0.6206280000 +165,0,0.1090150000,320,-1.0000000000,255,-0.1418560000,256,-0.2482660000,257,-0.1206160000,258,0.0464978000,259,0.0567705000,260,-0.0539897000,261,1.4878100000,262,-0.2006890000,263,-0.2654770000,264,0.1166050000,265,-0.3356630000,266,0.1074580000,267,-0.1622530000,268,-0.2579670000,269,-0.7430140000,270,0.1979180000,271,-0.0402847000,272,-0.0613337000,273,0.4395270000,274,0.1462840000,275,0.0266629000,276,0.3766040000,277,-0.0401599000,278,-0.6866370000,279,-0.1323980000,280,-0.7397270000,281,-0.4799520000,282,1.1122800000,283,-0.4165540000,284,0.3916070000,285,0.3510440000,286,0.6707380000,287,0.7474350000,288,0.1713510000,289,0.2807810000,290,0.6791870000,291,0.0454586000,292,0.0529518000,293,-0.3305570000,294,-0.6542360000,295,0.5192180000,296,1.1134200000,297,-0.2362930000,298,0.3818530000,299,0.0877145000,300,0.7924790000,301,0.0220966000,302,0.2779170000,303,0.3284930000,304,-0.4096820000 +166,0,0.8182040000,321,-1.0000000000,255,-0.4275410000,256,-0.0469516000,257,-0.3598730000,258,-0.0189472000,259,-0.0379152000,260,-0.2380030000,261,-1.5548200000,262,-0.9219550000,263,-0.0674426000,264,-0.0752268000,265,0.4332690000,266,0.4402880000,267,-0.2387480000,268,0.0661338000,269,-0.1658790000,270,0.1283980000,271,-0.2437740000,272,-0.9455200000,273,1.3360300000,274,-0.2739730000,275,0.5170540000,276,0.3497650000,277,-0.2834290000,278,-0.4766520000,279,0.2312810000,280,1.1770800000,281,1.6662200000,282,-0.0552129000,283,-0.2548560000,284,-1.2348100000,285,0.0360153000,286,0.2341080000,287,-0.0738123000,288,-2.7560000000,289,-0.5096220000,290,1.3250600000,291,0.0128291000,292,-0.0569401000,293,0.0924194000,294,0.2167810000,295,-0.3403210000,296,0.1159930000,297,0.5320890000,298,0.9288660000,299,-0.1358430000,300,-0.7415060000,301,-0.3041160000,302,0.0348185000,303,0.1664600000,304,-0.7041880000 +167,0,0.2521410000,322,-1.0000000000,255,-0.0454586000,256,0.4377830000,257,0.3919830000,258,-0.0114398000,259,-0.0217449000,260,-0.3222500000,261,-0.2618300000,262,0.9358330000,263,0.0394197000,264,0.7661770000,265,0.5140200000,266,-0.0655424000,267,-0.8706230000,268,0.2548240000,269,0.3711510000,270,-0.3048440000,271,0.0078603400,272,0.0520904000,273,-1.6081500000,274,0.1704100000,275,-0.3689500000,276,-0.1909660000,277,0.1312680000,278,0.2318220000,279,0.0478439000,280,0.3736480000,281,0.1213370000,282,-0.1660520000,283,0.0738397000,284,0.1355830000,285,-0.1285000000,286,0.5664920000,287,-0.9590220000,288,-0.0541073000,289,-0.4241060000,290,-0.1526570000,291,0.0442873000,292,0.2774660000,293,0.2328150000,294,-0.4482730000,295,0.2197920000,296,-0.1323990000,297,0.5545920000,298,0.6229480000,299,-0.1514490000,300,0.3740450000,301,-0.4084830000,302,0.0305587000,303,0.0943859000,304,0.3092810000 +168,0,-0.4371210000,323,-1.0000000000,255,-0.1074500000,256,-0.0727049000,257,0.5957080000,258,0.0004885320,259,-0.2144300000,260,0.1997110000,261,-0.0176220000,262,-1.0543000000,263,-0.1738290000,264,0.5073560000,265,-0.4733080000,266,0.1606840000,267,-0.7829840000,268,-0.3149350000,269,-0.5461540000,270,0.0085973600,271,0.4034630000,272,-0.0128508000,273,-0.3587400000,274,0.2450860000,275,-0.1902120000,276,0.2078940000,277,0.2746540000,278,-0.7025670000,279,-0.0181741000,280,-0.4831160000,281,0.5321440000,282,-0.4515380000,283,-0.0661667000,284,0.7053280000,285,-0.6631220000,286,0.6965740000,287,-0.6393470000,288,-0.1698990000,289,-0.7848560000,290,0.2093270000,291,-0.0380039000,292,-0.5246680000,293,-0.1231510000,294,-0.1171770000,295,-0.0117169000,296,-0.8977200000,297,-0.3563770000,298,-0.7502730000,299,-0.0622016000,300,0.5394010000,301,0.3067030000,302,0.2532350000,303,-0.5264090000,304,0.4618010000 +169,0,0.0166663000,324,-1.0000000000,255,0.0016913100,256,-0.0248215000,257,0.0003050260,258,-0.0033014000,259,0.0064934900,260,0.0165239000,261,0.0114530000,262,0.0469550000,263,-0.0090958500,264,0.0027137300,265,0.0002313630,266,0.0089088300,267,0.0242375000,268,-0.0280662000,269,0.0155524000,270,0.0420030000,271,0.0236561000,272,-0.0488389000,273,-0.0217026000,274,-0.0491790000,275,0.0180479000,276,-0.0095642100,277,-0.0134408000,278,-0.0129553000,279,-0.0483949000,280,-0.0175948000,281,0.0137551000,282,-0.0176949000,283,0.0085760600,284,-0.0471592000,285,-0.0111024000,286,0.0117570000,287,0.0160892000,288,-0.0533253000,289,-0.0380681000,290,0.0282616000,291,-0.0389104000,292,-0.0482671000,293,-0.0016428500,294,-0.0173514000,295,0.0294489000,296,-0.0518655000,297,-0.0219534000,298,0.0171589000,299,-0.0283476000,300,-0.0174449000,301,-0.0395546000,302,-0.0443206000,303,-0.0378410000,304,0.0395147000 +170,0,0.3175740000,325,-1.0000000000,255,-0.4425200000,256,0.0850963000,257,-0.4257450000,258,-0.0031277100,259,0.5411790000,260,-0.1049580000,261,1.3675800000,262,-0.2143920000,263,-0.0496947000,264,-0.3295460000,265,-0.3573530000,266,-0.3110640000,267,-0.0007060210,268,-0.5018240000,269,1.3792400000,270,0.5244310000,271,-0.0573254000,272,0.4492700000,273,-0.3818330000,274,-0.6641730000,275,-0.3517980000,276,-0.1784330000,277,0.3909490000,278,0.1403090000,279,-0.0558925000,280,0.0046120100,281,0.4922450000,282,-0.1209160000,283,0.2867830000,284,0.3124110000,285,0.1015590000,286,-0.5139130000,287,0.1840470000,288,0.1577050000,289,1.2886200000,290,-0.6000080000,291,-0.0387152000,292,-0.1819950000,293,0.2171530000,294,-0.1331800000,295,0.1202230000,296,0.2899390000,297,0.1203010000,298,0.1281210000,299,0.0023478000,300,0.5841340000,301,0.2088080000,302,0.0246956000,303,0.0421831000,304,0.0835962000 +171,0,0.0649419000,326,-1.0000000000,255,0.2362470000,256,0.3883720000,257,0.0853066000,258,0.0398838000,259,0.5730540000,260,0.3118000000,261,-0.7253360000,262,0.4219590000,263,-0.3217550000,264,0.0888571000,265,0.2475630000,266,0.0500399000,267,1.2377700000,268,-0.2087970000,269,-0.5904030000,270,-0.1331280000,271,-0.3649080000,272,0.1527610000,273,0.7730060000,274,-0.4337730000,275,-1.1392000000,276,0.0580431000,277,0.3952080000,278,0.0210274000,279,0.0696787000,280,0.4978150000,281,0.6513280000,282,-0.8176460000,283,-0.1203930000,284,-0.5975960000,285,0.0758110000,286,-0.0317713000,287,-0.5464680000,288,0.4098030000,289,0.1753140000,290,-0.0761176000,291,-0.0337364000,292,-0.1615190000,293,-0.0237192000,294,-0.1787280000,295,0.1461490000,296,1.5311300000,297,-0.3998080000,298,-0.2415910000,299,-0.8140510000,300,0.1513640000,301,0.0835807000,302,0.1269790000,303,-0.1712690000,304,-0.3269180000 +172,0,0.8847620000,327,-1.0000000000,255,-0.2607430000,256,-0.9097680000,257,-0.5808300000,258,0.0476980000,259,0.1783060000,260,-0.3595880000,261,2.8154000000,262,-0.4380740000,263,-0.4785290000,264,0.0496424000,265,-0.5150930000,266,-1.2772900000,267,0.6767110000,268,-0.6829650000,269,0.0938346000,270,0.3753660000,271,0.6436300000,272,-0.1653960000,273,0.5776590000,274,0.1478160000,275,1.0249800000,276,0.6167000000,277,-0.3423890000,278,0.1657920000,279,0.6748780000,280,-0.0754586000,281,0.8605470000,282,1.1631400000,283,-0.6097240000,284,-0.8952910000,285,0.2412530000,286,1.0872600000,287,1.4595200000,288,-0.8250670000,289,0.8982540000,290,-0.1804370000,291,0.0426407000,292,0.1960750000,293,-0.0110658000,294,-0.1003560000,295,0.3456770000,296,1.7743700000,297,-0.7823180000,298,-0.8859290000,299,0.5711250000,300,0.4325630000,301,-0.3181400000,302,0.9533400000,303,0.4180120000,304,-1.1402500000 +173,0,0.0253047000,328,-1.0000000000,255,0.0203797000,256,0.0377457000,257,-0.0426919000,258,0.0260576000,259,-0.0026999700,260,-0.0148431000,261,-0.0222991000,262,0.0358022000,263,-0.0239594000,264,-0.0181414000,265,-0.0338065000,266,0.0281941000,267,-0.0510922000,268,0.0087191300,269,-0.0446310000,270,-0.0308392000,271,-0.0247757000,272,-0.0085698600,273,0.0278910000,274,-0.0306574000,275,-0.0033211600,276,-0.0476072000,277,0.0049570000,278,0.0180256000,279,-0.0440888000,280,-0.0461514000,281,-0.0244463000,282,-0.0333755000,283,-0.0121739000,284,0.0353615000,285,-0.0457813000,286,-0.0210368000,287,-0.0101115000,288,-0.0530714000,289,-0.0108448000,290,0.0289577000,291,0.0243094000,292,-0.0577745000,293,0.0085106600,294,-0.0065324400,295,-0.0196244000,296,0.0179400000,297,0.0196290000,298,-0.0492127000,299,-0.0443216000,300,-0.0021108000,301,0.0142734000,302,0.0040385300,303,-0.0463009000,304,-0.0230474000 +174,0,-0.0796853000,329,-1.0000000000,255,-0.4975650000,256,0.6161810000,257,0.2082760000,258,0.0088070700,259,0.2373790000,260,0.1188720000,261,0.0228989000,262,0.2676450000,263,-0.5465360000,264,0.7384340000,265,0.9734660000,266,0.4472100000,267,1.1689800000,268,-0.2444060000,269,0.0452008000,270,-0.8410220000,271,-0.1260710000,272,0.1485880000,273,-0.1881010000,274,-2.2908700000,275,-0.0134668000,276,-0.1607340000,277,1.2935400000,278,-1.2087000000,279,0.5359860000,280,1.0361600000,281,1.4995000000,282,-0.5683690000,283,0.9256990000,284,-0.4861500000,285,-0.7527710000,286,1.1663900000,287,-1.9135200000,288,0.7595610000,289,-1.5014800000,290,1.4957900000,291,0.0404638000,292,0.1017210000,293,1.0308300000,294,0.5323080000,295,0.3508090000,296,-2.9982100000,297,-0.4570110000,298,-0.1101120000,299,-0.2372430000,300,0.0802689000,301,-0.2943310000,302,-0.5028560000,303,-0.7244370000,304,1.5570300000 +175,0,0.2003980000,330,-1.0000000000,255,-0.2085580000,256,0.5044150000,257,-0.0809145000,258,-0.0082433500,259,-0.1909630000,260,0.0571080000,261,-0.0057058600,262,0.0131160000,263,1.6056700000,264,1.2163200000,265,0.2834810000,266,-0.3955410000,267,0.2022010000,268,0.1464660000,269,0.8559850000,270,-0.4562290000,271,0.2140830000,272,0.1300930000,273,0.4516870000,274,0.6099690000,275,-0.1384940000,276,0.0111231000,277,-0.3143520000,278,-0.8429780000,279,-0.7356810000,280,-0.2294740000,281,-0.1393550000,282,-0.5939010000,283,0.5401700000,284,-1.3476100000,285,-0.3749130000,286,0.1751850000,287,-0.0350002000,288,-0.0673682000,289,-0.3258530000,290,-0.2827970000,291,-0.0372956000,292,0.1123060000,293,-0.1059180000,294,0.2333700000,295,0.0492078000,296,0.8400460000,297,0.2975470000,298,-0.5465560000,299,0.0300714000,300,-0.2505140000,301,-0.0344505000,302,0.2094710000,303,-0.0259306000,304,-0.0556973000 +176,0,-0.3202230000,331,-1.0000000000,255,0.2349620000,256,0.3979670000,257,0.0119761000,258,-0.0204314000,259,-0.2805550000,260,-0.0036078100,261,-0.9931810000,262,-0.9786150000,263,0.1133330000,264,-0.1242160000,265,-0.0497097000,266,-0.4065740000,267,-0.4049210000,268,-0.4117820000,269,-0.3524430000,270,-0.1414850000,271,-0.1818290000,272,-0.0518060000,273,-0.7225270000,274,-0.2221910000,275,0.1043980000,276,-0.0099768800,277,-0.0467553000,278,-0.1039330000,279,-0.0746578000,280,0.0520061000,281,-0.0506541000,282,-0.2700790000,283,-0.1475450000,284,-0.0632361000,285,0.2493830000,286,0.5461380000,287,-0.1816960000,288,0.1466680000,289,0.1839650000,290,0.4221720000,291,-0.0425273000,292,-0.7427760000,293,0.0679984000,294,0.1189990000,295,-0.1173380000,296,0.8472430000,297,-0.2735210000,298,0.0554174000,299,-0.0698943000,300,-0.0974010000,301,-0.0859578000,302,0.2255580000,303,0.0183307000,304,0.1613150000 +177,0,0.3337030000,332,-1.0000000000,255,0.0088592200,256,0.0690820000,257,-0.1764000000,258,-0.0376863000,259,0.0326470000,260,-0.0575588000,261,0.4247790000,262,0.7444200000,263,-0.6017210000,264,-0.4258300000,265,0.2193740000,266,0.3194160000,267,0.2469220000,268,0.3175670000,269,0.3311950000,270,0.4385860000,271,-0.4459920000,272,-0.1171250000,273,0.5631770000,274,-0.3722090000,275,-0.2917440000,276,0.0554533000,277,0.4674830000,278,0.6020470000,279,-0.4659540000,280,-0.0589255000,281,-0.8014160000,282,0.5514460000,283,-0.1721870000,284,0.5467080000,285,-0.0031047800,286,-0.1407110000,287,-0.0757977000,288,-0.3004600000,289,0.5173470000,290,0.0319109000,291,-0.0209331000,292,-0.0917035000,293,0.1022640000,294,0.2662030000,295,0.3136920000,296,0.7343990000,297,0.4919780000,298,-0.0250684000,299,-0.0920375000,300,-0.5196690000,301,-0.0877932000,302,-0.2339760000,303,0.0447923000,304,0.0390739000 +178,0,-0.1671620000,333,-1.0000000000,255,0.2417390000,256,-0.1238080000,257,-0.1686520000,258,0.0277807000,259,0.1552760000,260,0.0383259000,261,-0.3141100000,262,0.9170190000,263,-0.2224170000,264,0.0826831000,265,0.0688428000,266,0.2888440000,267,0.2454240000,268,0.1568020000,269,0.0894330000,270,0.0201978000,271,-0.2645690000,272,-0.0091094600,273,-0.3569420000,274,0.0699951000,275,-0.1021040000,276,-0.0099717100,277,0.0593217000,278,0.1284160000,279,0.2173560000,280,0.1566760000,281,0.5676930000,282,0.1875750000,283,0.1628920000,284,0.8749030000,285,-0.1957010000,286,-0.0767867000,287,-0.2266760000,288,0.1355080000,289,0.0593238000,290,0.0192025000,291,-0.0434133000,292,-0.1744880000,293,-0.0245925000,294,-0.1399370000,295,-0.2758900000,296,-0.6205310000,297,0.1214260000,298,0.6023910000,299,-0.1514360000,300,-0.3087100000,301,0.1411370000,302,-0.0613260000,303,-0.0525397000,304,-0.1463070000 +179,0,0.0141451000,334,-1.0000000000,255,0.0119379000,256,-0.0405108000,257,-0.0461737000,258,0.0408235000,259,0.0424984000,260,-0.0193057000,261,0.0192759000,262,-0.0598588000,263,-0.0144414000,264,0.0135301000,265,-0.0054152200,266,-0.0091357900,267,-0.0056835800,268,0.0045328400,269,-0.0194027000,270,-0.0444434000,271,-0.0212121000,272,0.0378633000,273,0.0063540000,274,-0.0188028000,275,0.0335759000,276,-0.0116581000,277,-0.0417801000,278,-0.0446457000,279,0.0148335000,280,0.0133925000,281,-0.0099906800,282,-0.0338377000,283,-0.0321067000,284,-0.0144909000,285,-0.0192288000,286,-0.0292686000,287,-0.0219077000,288,-0.0420035000,289,-0.0140561000,290,-0.0381464000,291,0.0354332000,292,0.0263848000,293,-0.0066060000,294,0.0359980000,295,0.0205651000,296,0.0045736500,297,-0.0559312000,298,-0.0053022100,299,-0.0411624000,300,0.0236690000,301,0.0377378000,302,-0.0365861000,303,0.0202161000,304,0.0440453000 +180,0,0.3753980000,335,-1.0000000000,255,-0.0341064000,256,-0.2859460000,257,0.0121492000,258,-0.0345904000,259,0.0833693000,260,-0.2265690000,261,1.0190000000,262,0.2984490000,263,0.8047030000,264,0.1198760000,265,0.1415280000,266,-0.0461669000,267,-0.0035597000,268,0.0091704000,269,1.0653000000,270,0.2039940000,271,0.4468820000,272,-0.1836940000,273,-0.6254570000,274,-0.1504110000,275,0.2093470000,276,0.0606347000,277,0.1218870000,278,0.6651880000,279,-0.0135734000,280,0.0961429000,281,-0.3507010000,282,0.4870070000,283,-0.2150690000,284,0.5441530000,285,-0.0552882000,286,0.2691170000,287,-0.0692486000,288,-0.6211680000,289,0.6131070000,290,-0.2487820000,291,-0.0057357700,292,-0.1342320000,293,0.2120440000,294,-0.0274169000,295,-0.0492615000,296,-0.0916743000,297,-0.3366140000,298,0.4785240000,299,0.5204790000,300,0.0224929000,301,0.3201590000,302,-0.0751762000,303,-0.0765507000,304,-0.2460470000 +181,0,0.9047060000,336,-1.0000000000,255,0.3411430000,256,1.1224200000,257,0.9527860000,258,-0.0206722000,259,-1.2469100000,260,-0.1263830000,261,-1.9736800000,262,2.3118900000,263,0.6742000000,264,0.3873050000,265,-0.6061110000,266,-0.3919950000,267,0.4292470000,268,0.1847430000,269,0.1022350000,270,0.2724870000,271,-0.3740200000,272,0.1050500000,273,0.7949440000,274,0.4668770000,275,0.8669440000,276,-0.1359410000,277,1.5095900000,278,0.5597660000,279,0.5917540000,280,0.7608270000,281,1.0737400000,282,0.6868740000,283,-0.4794210000,284,0.5347700000,285,0.7059340000,286,0.6001840000,287,-0.9876590000,288,-0.4397160000,289,0.3669410000,290,-0.3501010000,291,0.0428339000,292,0.0357632000,293,0.2400100000,294,0.3186450000,295,-0.7780220000,296,0.5646390000,297,-0.4945660000,298,0.4193270000,299,0.3441980000,300,-0.5445900000,301,0.7205010000,302,-0.0668448000,303,0.2799950000,304,-0.2949440000 +182,0,-0.0501437000,337,-1.0000000000,255,-0.3326120000,256,0.1313080000,257,0.0379739000,258,-0.0038507400,259,-0.4307910000,260,0.0017522300,261,0.0780426000,262,0.2868610000,263,-1.1206700000,264,0.2200320000,265,-0.3442000000,266,-0.0421346000,267,-0.0907346000,268,0.0017646800,269,-0.0157868000,270,-0.0019637500,271,-0.1670420000,272,0.1779110000,273,-0.0886931000,274,0.0313661000,275,0.1621650000,276,-0.0041107100,277,0.0889936000,278,-0.4133780000,279,0.1549990000,280,0.0645285000,281,-0.6884520000,282,-0.2891750000,283,-0.1054420000,284,0.5420290000,285,0.2179900000,286,0.1741480000,287,-0.2130100000,288,0.2785350000,289,-0.1712810000,290,-0.0437264000,291,-0.0442849000,292,-0.0084156700,293,0.0599474000,294,-0.0119518000,295,0.0373663000,296,-0.5902860000,297,-0.2060800000,298,-0.2338170000,299,-0.0730408000,300,-0.1459820000,301,-0.2505310000,302,0.0198361000,303,0.0289969000,304,0.7115980000 +183,0,0.2578120000,338,-1.0000000000,255,-0.7500420000,256,0.1351250000,257,0.1518640000,258,-0.0454445000,259,-0.3722180000,260,-0.0764027000,261,0.5145720000,262,0.9525100000,263,1.6433200000,264,0.5721470000,265,-1.0247000000,266,0.0900398000,267,0.6946250000,268,-0.2818310000,269,0.4296220000,270,-0.1311730000,271,0.1813980000,272,0.5137850000,273,1.0917500000,274,-0.2980410000,275,-0.0863215000,276,0.0961986000,277,-0.4725090000,278,0.2989230000,279,0.3959550000,280,-0.3557180000,281,-0.7078380000,282,0.2818820000,283,-0.9178450000,284,0.0597830000,285,0.5084670000,286,-0.6683340000,287,1.0168800000,288,0.2912020000,289,0.3960480000,290,-0.1408950000,291,-0.0351468000,292,-0.2437440000,293,-0.1415420000,294,0.6232420000,295,-0.0941275000,296,2.2428000000,297,-0.0797693000,298,0.8429870000,299,0.4942380000,300,0.0942439000,301,0.2207090000,302,0.0017859000,303,0.0857169000,304,-0.3411060000 +184,0,0.0060706400,339,-1.0000000000,255,-0.0210279000,256,-0.0445547000,257,-0.0469292000,258,-0.0405358000,259,0.0294662000,260,-0.0390211000,261,0.0094590900,262,-0.0033825600,263,0.0050431500,264,-0.0395551000,265,-0.0272649000,266,-0.0360474000,267,-0.0496820000,268,0.0021662800,269,0.0071121100,270,-0.0042221700,271,-0.0091223100,272,-0.0470887000,273,-0.0356051000,274,-0.0394605000,275,-0.0206584000,276,-0.0257951000,277,-0.0313470000,278,-0.0181559000,279,0.0318398000,280,0.0419911000,281,-0.0315756000,282,0.0322988000,283,-0.0456339000,284,0.0423268000,285,0.0044856900,286,-0.0452773000,287,0.0057400000,288,-0.0038017200,289,-0.0117492000,290,0.0254341000,291,0.0037804700,292,-0.0031144700,293,-0.0401544000,294,-0.0189280000,295,0.0192058000,296,0.0332924000,297,0.0102114000,298,0.0093469600,299,0.0159034000,300,-0.0325947000,301,-0.0392639000,302,-0.0513301000,303,-0.0167438000,304,-0.0070220600 +185,0,-0.3440360000,340,-1.0000000000,255,-0.1951620000,256,0.0527051000,257,0.2960530000,258,0.0429807000,259,-0.1126820000,260,-0.0218679000,261,-0.7621490000,262,0.5229170000,263,-0.5007870000,264,0.1246480000,265,0.4712580000,266,-0.0885883000,267,0.3443680000,268,0.4470900000,269,0.3646810000,270,-0.2308590000,271,-0.2802140000,272,0.0982598000,273,-0.3079240000,274,0.7165170000,275,-0.1042760000,276,-0.2174050000,277,0.2117160000,278,0.0424581000,279,0.2188430000,280,-0.2742050000,281,-1.1071800000,282,0.2967890000,283,-0.0299602000,284,0.3778720000,285,-0.0884113000,286,0.1439220000,287,0.3007970000,288,0.4761370000,289,0.2655020000,290,-0.0447619000,291,-0.0443550000,292,0.0234095000,293,-0.1247390000,294,-0.2538000000,295,-0.1269640000,296,0.6853730000,297,0.3181350000,298,0.7318190000,299,-0.0687692000,300,-0.4073590000,301,-0.3522830000,302,0.1671340000,303,-0.0299146000,304,0.3342730000 +186,0,0.0242754000,341,-1.0000000000,255,-0.3155690000,256,-0.1778490000,257,-0.0398839000,258,0.0060223300,259,0.2405830000,260,-0.0102897000,261,-0.6084870000,262,0.3644260000,263,-0.5032120000,264,0.4363150000,265,0.0388070000,266,0.2337590000,267,-0.0065769000,268,0.1844390000,269,0.4786420000,270,-0.1042090000,271,-0.0651173000,272,-0.2398550000,273,-0.5398870000,274,0.2599040000,275,-0.2009730000,276,-0.4073420000,277,0.5889450000,278,0.4804940000,279,0.0481202000,280,-0.0798484000,281,0.1226660000,282,0.1474370000,283,-0.1104200000,284,-0.4258750000,285,-0.0419479000,286,-0.7254950000,287,0.1256350000,288,-0.2760360000,289,0.2958820000,290,-0.4813920000,291,0.0002383330,292,0.1397560000,293,0.3119820000,294,-0.2322590000,295,-0.1657850000,296,-0.5514290000,297,0.0375420000,298,0.9407060000,299,0.0369976000,300,0.0545223000,301,0.2126720000,302,-0.1239190000,303,-0.2790380000,304,0.4625380000 +187,0,0.2950090000,342,-1.0000000000,255,1.0864000000,256,-0.0784054000,257,-0.2544200000,258,-0.0499840000,259,-0.3734180000,260,0.3674130000,261,-0.5914590000,262,-0.3267640000,263,1.1084900000,264,0.3050560000,265,0.4918830000,266,-0.2332890000,267,-1.4251000000,268,0.2041560000,269,0.8244110000,270,-0.0901416000,271,-0.1899950000,272,0.7738680000,273,1.2019000000,274,-0.1149760000,275,1.0874800000,276,-0.2296030000,277,-0.2658350000,278,-1.8490300000,279,0.4952860000,280,0.1661810000,281,1.0896900000,282,1.2510900000,283,0.5695050000,284,1.4722100000,285,-0.3103710000,286,-0.0398421000,287,0.2121130000,288,-0.6234890000,289,0.1685340000,290,0.4108290000,291,0.0059119700,292,-0.0899420000,293,-0.0982845000,294,0.1775990000,295,-0.1758080000,296,-0.6047200000,297,-0.2565350000,298,-0.5106160000,299,0.1195440000,300,0.3985290000,301,0.2163940000,302,-0.0095187500,303,-0.2489910000,304,-0.9406490000 +188,0,0.1626790000,343,-1.0000000000,255,0.2044490000,256,0.6487870000,257,-0.0474029000,258,-0.0031660600,259,-0.1043210000,260,-0.0113393000,261,2.2042200000,262,0.2547400000,263,0.4441430000,264,0.4004690000,265,0.3808800000,266,0.3147960000,267,-0.8206250000,268,-0.0182998000,269,-0.0848051000,270,-0.1557090000,271,-0.2699290000,272,-0.0217529000,273,0.2544740000,274,-0.3723540000,275,0.2431290000,276,-0.1768820000,277,-0.0424270000,278,1.0391200000,279,0.1561230000,280,0.7842910000,281,1.1932900000,282,-0.5126120000,283,-0.0311169000,284,-0.6122950000,285,-0.0036320600,286,0.0365334000,287,-0.2924620000,288,-0.7428680000,289,-0.1627490000,290,-0.8504260000,291,0.0217845000,292,-0.3516590000,293,-0.0620096000,294,0.1944180000,295,0.0844593000,296,0.5975010000,297,0.1706110000,298,1.2752000000,299,0.2311140000,300,-0.3384820000,301,-0.2379090000,302,0.3920760000,303,-0.4810030000,304,0.2665290000 +189,0,0.3256090000,344,-1.0000000000,255,0.2231380000,256,0.4320620000,257,0.0674931000,258,-0.0196263000,259,-0.2966470000,260,-0.3201120000,261,-0.5803940000,262,-0.4698030000,263,0.1432030000,264,-0.2307310000,265,0.1305100000,266,0.3326880000,267,0.0629946000,268,-0.3237260000,269,0.1375160000,270,-1.1287600000,271,-0.6586640000,272,0.3555920000,273,0.8413490000,274,-0.7822280000,275,-0.3014700000,276,0.2006400000,277,0.3215420000,278,-0.2623560000,279,-0.0939747000,280,-1.2285900000,281,0.2660070000,282,0.2371950000,283,0.1680860000,284,0.1598480000,285,0.6172230000,286,1.3592700000,287,-1.5547100000,288,-0.1056190000,289,-0.1453170000,290,0.1302910000,291,-0.0008569230,292,-0.0624121000,293,0.0624458000,294,0.3414600000,295,-0.1897130000,296,-0.5767550000,297,0.4124560000,298,-0.7926400000,299,-0.4807070000,300,0.2262780000,301,-0.0860806000,302,-0.0564998000,303,0.4337830000,304,-0.1419200000 +190,0,-0.4586040000,345,-1.0000000000,255,0.1153070000,256,-0.2416030000,257,-0.0451520000,258,-0.0007767470,259,-0.0330265000,260,-0.1765680000,261,-0.7432380000,262,0.6513580000,263,-1.0786200000,264,0.5237990000,265,0.2897290000,266,-0.0607406000,267,0.4289050000,268,-0.1041700000,269,0.0355129000,270,-0.1092200000,271,-0.5767060000,272,-0.1052160000,273,-0.0568547000,274,0.3544320000,275,0.3758870000,276,0.0570910000,277,-0.2164820000,278,-0.1269660000,279,0.3998690000,280,-0.0185103000,281,0.5647430000,282,-0.2300250000,283,-0.1282210000,284,-0.0081206100,285,-0.1916540000,286,-0.3345550000,287,-0.0680665000,288,-0.2287050000,289,0.0194161000,290,0.1716320000,291,-0.0445392000,292,0.1773100000,293,-0.1453010000,294,0.1199260000,295,-0.1982620000,296,-0.3459330000,297,-0.2627550000,298,-0.1752590000,299,-0.2069390000,300,0.3633140000,301,-0.1972540000,302,0.1077580000,303,0.1604800000,304,-0.5091520000 +191,0,-0.1510070000,346,-1.0000000000,255,-0.1359990000,256,-0.0795731000,257,-0.0399640000,258,0.0299377000,259,0.1338290000,260,-0.0729335000,261,0.4686210000,262,-0.5303590000,263,0.0990331000,264,0.1766880000,265,0.0491409000,266,-0.0833723000,267,0.2315720000,268,-0.0387017000,269,0.1260000000,270,-0.0083927900,271,0.1613500000,272,-0.0095404400,273,0.3277190000,274,-0.0485220000,275,0.0557172000,276,-0.0131938000,277,-0.1668190000,278,-0.2586230000,279,0.0081523100,280,-0.0509135000,281,-0.1992930000,282,-0.1739900000,283,0.0627476000,284,-0.0953022000,285,-0.0258202000,286,0.0501937000,287,0.0583939000,288,0.0139331000,289,-0.1415320000,290,0.0068136700,291,0.0451650000,292,0.0756266000,293,-0.0545398000,294,0.0785408000,295,0.0210603000,296,-0.0860305000,297,0.0250507000,298,0.2131490000,299,0.1352930000,300,0.0357069000,301,0.0155279000,302,-0.0239753000,303,-0.0257288000,304,-0.0550470000 +192,0,0.0131130000,347,-1.0000000000,255,-0.2185260000,256,-0.1616450000,257,0.0039792800,258,-0.0352265000,259,-1.0321600000,260,0.1048510000,261,2.4892300000,262,1.0441200000,263,1.1517000000,264,0.0808445000,265,-0.5377660000,266,-0.3616210000,267,1.4872500000,268,-1.0218400000,269,-1.0635600000,270,0.1797010000,271,0.2818820000,272,0.1432860000,273,-0.2691110000,274,0.5806150000,275,0.1270080000,276,-0.4886740000,277,0.4703330000,278,-1.6306600000,279,0.8303050000,280,-0.1629990000,281,0.2241260000,282,2.0741900000,283,0.1202280000,284,1.3003000000,285,-0.2407300000,286,1.3065400000,287,0.3594650000,288,0.6758290000,289,0.8707850000,290,1.3906700000,291,-0.0259255000,292,0.2797300000,293,-0.0888029000,294,-0.1319220000,295,-0.2315890000,296,-0.5953540000,297,-0.0848234000,298,-0.3329720000,299,0.0929280000,300,0.4068220000,301,0.4359920000,302,-2.0095600000,303,-0.3468920000,304,-0.6830330000 +193,0,0.3803570000,348,-1.0000000000,255,1.3358900000,256,0.5840530000,257,0.8742220000,258,-0.0395852000,259,-0.2902290000,260,-0.0843604000,261,2.9877700000,262,0.5273550000,263,0.7474060000,264,1.9913000000,265,0.7474510000,266,0.8501810000,267,1.1959600000,268,0.6302810000,269,-0.2759240000,270,-0.3300460000,271,-0.9697040000,272,1.4583800000,273,0.0620811000,274,1.1128800000,275,-0.3570250000,276,-0.3834960000,277,0.8119720000,278,0.0758305000,279,0.1677290000,280,-0.7794260000,281,0.5463790000,282,0.8353240000,283,-0.2035220000,284,0.3413660000,285,0.1555420000,286,-0.4152830000,287,-0.0550409000,288,0.0952625000,289,0.2811710000,290,0.2005090000,291,-0.0470076000,292,-0.4261990000,293,-0.2753330000,294,-0.0700723000,295,-0.8863700000,296,-2.3574600000,297,0.1021280000,298,-0.9438370000,299,0.5156790000,300,-1.3553000000,301,0.2801460000,302,0.3490790000,303,-0.9220050000,304,0.6794640000 +194,0,-0.0221107000,349,-1.0000000000,255,0.9350780000,256,0.2749210000,257,-0.8291670000,258,0.0197176000,259,-0.3089290000,260,-0.1405580000,261,-1.4074300000,262,-2.0139400000,263,0.4807730000,264,-0.6276000000,265,-0.7671560000,266,0.5232540000,267,0.5532550000,268,-0.0967071000,269,-0.6010490000,270,-0.7472580000,271,-2.1449800000,272,0.8395420000,273,0.8318870000,274,0.8902390000,275,0.4668800000,276,-0.2067850000,277,0.2683340000,278,-1.2484100000,279,-0.7495510000,280,-0.5216310000,281,0.4862500000,282,0.6496420000,283,0.4151610000,284,0.4241370000,285,0.2421680000,286,-0.0789351000,287,0.2968080000,288,0.3283300000,289,0.3951970000,290,-0.5806550000,291,-0.0161968000,292,-0.3332870000,293,-0.0416723000,294,-0.0453187000,295,-0.2541270000,296,-1.1974000000,297,-1.5906300000,298,-0.4935030000,299,-0.8680310000,300,0.8625670000,301,0.0314251000,302,0.5432250000,303,-0.1021260000,304,-0.7130250000 +195,0,0.1098260000,350,-1.0000000000,255,-0.2031110000,256,-0.2952640000,257,0.2542540000,258,0.0529871000,259,-0.4200060000,260,0.0106524000,261,-0.7372980000,262,-0.6234160000,263,-1.2327400000,264,-0.4754450000,265,-0.0790546000,266,-0.3498320000,267,0.1022920000,268,-0.1078020000,269,0.1436240000,270,0.1651190000,271,-0.3623970000,272,0.0206972000,273,-0.7570850000,274,-0.0707342000,275,0.0480367000,276,0.0779787000,277,0.4175250000,278,-0.2881930000,279,0.0876521000,280,-0.1572250000,281,-0.4811840000,282,0.7787770000,283,-0.1870080000,284,0.1659600000,285,0.1126500000,286,0.3954960000,287,0.3676420000,288,0.1592220000,289,0.4235330000,290,0.1008400000,291,-0.0108368000,292,0.1015850000,293,0.0456070000,294,-0.1146250000,295,0.1912810000,296,0.6159420000,297,-0.0837196000,298,0.0756378000,299,-0.0485391000,300,0.1901290000,301,-0.2760460000,302,0.1939930000,303,0.2003660000,304,0.4234550000 +196,0,0.1503340000,351,-1.0000000000,255,-0.0646395000,256,0.2911150000,257,0.2214020000,258,-0.0342299000,259,-1.0752600000,260,-0.0506495000,261,0.3757470000,262,-0.5368600000,263,-1.0374700000,264,1.1177700000,265,-0.5201540000,266,-0.1657440000,267,0.1172810000,268,-0.0638641000,269,0.6475350000,270,-0.2286620000,271,-0.4727030000,272,0.3133150000,273,0.0448449000,274,0.6995380000,275,-0.0400716000,276,0.0995316000,277,0.6383090000,278,0.1347320000,279,-0.4797250000,280,-0.1414170000,281,-0.0963754000,282,0.5397560000,283,0.1546040000,284,0.0025252500,285,0.5211410000,286,0.8617460000,287,-0.4622750000,288,0.0050059000,289,-0.0979518000,290,0.4978480000,291,-0.0245918000,292,-0.3858100000,293,-0.1320010000,294,0.2481880000,295,-0.2471240000,296,0.7191440000,297,-0.3399280000,298,-0.3265140000,299,0.1563960000,300,0.5437360000,301,0.0636577000,302,0.1691280000,303,0.2878810000,304,-0.5129190000 +197,0,0.0132851000,352,-1.0000000000,255,0.0209826000,256,0.0405758000,257,-0.0373101000,258,0.0121668000,259,0.0193170000,260,-0.0011185700,261,-0.0114047000,262,-0.0116900000,263,-0.0393189000,264,0.0317931000,265,-0.0373302000,266,-0.0118318000,267,0.0341842000,268,0.0199885000,269,-0.0171402000,270,-0.0476033000,271,0.0005099870,272,0.0123916000,273,-0.0136344000,274,-0.0387353000,275,-0.0280574000,276,0.0119866000,277,-0.0334767000,278,-0.0112853000,279,-0.0171320000,280,-0.0007553870,281,-0.0198035000,282,-0.0147582000,283,-0.0301202000,284,0.0195868000,285,-0.0300615000,286,-0.0152424000,287,-0.0126866000,288,-0.0038263200,289,-0.0189064000,290,0.0257291000,291,0.0003527350,292,-0.0153848000,293,-0.0232242000,294,-0.0003227620,295,0.0039523800,296,-0.0521874000,297,-0.0261391000,298,0.0312946000,299,-0.0350596000,300,-0.0241762000,301,-0.0176734000,302,0.0226490000,303,0.0287076000,304,0.0069630200 +198,0,0.0488059000,353,-1.0000000000,255,-0.5582160000,256,0.1161610000,257,-0.7773680000,258,-0.0431353000,259,-0.1588370000,260,0.1828830000,261,-0.4072280000,262,0.3969470000,263,-0.2455590000,264,0.0394510000,265,0.3592850000,266,-0.3053170000,267,-0.0101412000,268,-0.2636340000,269,0.2924620000,270,-0.9990940000,271,-0.7236600000,272,-0.1668160000,273,-1.6228900000,274,-0.8827810000,275,-0.2672330000,276,-0.0036871700,277,0.6421100000,278,2.1279300000,279,0.6574360000,280,-0.1279670000,281,1.6549100000,282,-0.1270710000,283,0.1463420000,284,-0.2546160000,285,-0.5238110000,286,0.0573537000,287,-1.3321600000,288,1.0553400000,289,-1.0455700000,290,0.3736590000,291,0.0255687000,292,-0.6856690000,293,0.2974320000,294,0.1691580000,295,0.0677184000,296,-1.0424400000,297,-0.1274810000,298,-0.1778800000,299,-0.0924755000,300,0.4722130000,301,0.0432632000,302,-0.0375094000,303,-0.8554260000,304,-0.1687930000 +199,0,0.0466392000,354,-1.0000000000,255,-0.2750150000,256,-0.0734672000,257,0.1844260000,258,0.0053625500,259,-0.2860940000,260,0.0070565400,261,0.6562800000,262,-0.1646770000,263,0.6420220000,264,0.1456680000,265,-0.1178720000,266,-0.2176590000,267,0.1553320000,268,-0.0255605000,269,0.4182900000,270,-0.0232033000,271,0.2683020000,272,0.3649080000,273,0.1566120000,274,-0.2786590000,275,0.1723540000,276,-0.0009727440,277,-0.0960905000,278,-0.4144000000,279,-0.0977780000,280,-0.1612920000,281,-0.4267120000,282,-0.1104720000,283,-0.2044600000,284,0.1683820000,285,0.3499910000,286,0.0504478000,287,0.2954000000,288,-0.1360920000,289,0.2037390000,290,0.2115520000,291,0.0244646000,292,0.2694870000,293,-0.0341465000,294,0.4603540000,295,0.1700000000,296,0.2099670000,297,-0.2612440000,298,0.5346540000,299,0.2451650000,300,0.0774151000,301,0.1674590000,302,-0.0758003000,303,0.0758050000,304,-0.1524100000 +200,0,0.2907240000,405,-1.0000000000,355,-0.2941580000,356,0.3658000000,357,-0.0595503000,358,-0.2218730000,359,0.6979460000,360,-0.8233220000,361,-0.6166550000,362,-0.2590510000,363,0.1861660000,364,0.0501556000,365,0.3077730000,366,-0.3536780000,367,0.0930832000,368,0.2663160000,369,-0.1447290000,370,0.0253151000,371,-0.3213340000,372,0.1251620000,373,0.3628370000,374,-0.0352300000,375,-0.1456930000,376,0.1521750000,377,-0.1838820000,378,-0.0319263000,379,0.0901459000,380,0.2000840000,381,0.0955784000,382,0.2913060000,383,-0.2112140000,384,0.0129865000,385,-1.3398500000,386,0.2124270000,387,0.5681490000,388,0.0149256000,389,-0.0446768000,390,-0.3203610000,391,0.2970360000,392,-0.7030880000,393,-0.0405004000,394,-0.8212310000,395,0.5491390000,396,-1.4930900000,397,-0.7803230000,398,-0.2400420000,399,-0.1644510000,400,-0.5619370000,401,-0.1269570000,402,0.0204219000,403,0.0971678000,404,0.3662640000 +201,0,-0.0272886000,406,-1.0000000000,355,0.4012780000,356,0.4927230000,357,-0.0685391000,358,0.6665520000,359,-0.1599290000,360,0.2034030000,361,0.3693610000,362,-0.0187633000,363,0.4504400000,364,0.2289390000,365,0.1156090000,366,-0.4434300000,367,-0.0412215000,368,0.0634824000,369,0.1279300000,370,-0.1061300000,371,-0.1241790000,372,-0.1009290000,373,0.3454700000,374,-0.0009094650,375,0.0574172000,376,0.3173830000,377,-0.2527230000,378,-0.0111242000,379,0.0234174000,380,0.2636530000,381,0.4366090000,382,-0.0200560000,383,0.0161878000,384,-0.0073352200,385,0.5074060000,386,-0.0766342000,387,0.2495630000,388,0.1404730000,389,-0.0206429000,390,-0.3350410000,391,-0.2381940000,392,0.0591357000,393,-0.4521620000,394,-0.2371910000,395,-0.1651500000,396,0.5850170000,397,0.1968940000,398,0.5154820000,399,0.1161650000,400,0.3537560000,401,-0.1195080000,402,-0.0400142000,403,-0.2927980000,404,-0.1414860000 +202,0,-0.1793730000,407,-1.0000000000,355,0.1370360000,356,-0.0026776100,357,-0.0388281000,358,0.1375960000,359,0.1172630000,360,-0.1601560000,361,0.2143940000,362,-0.0157751000,363,0.1499400000,364,-0.0353251000,365,0.0785493000,366,-0.1834430000,367,0.0893678000,368,-0.0135359000,369,0.1067190000,370,0.0952916000,371,-0.1636750000,372,-0.1501920000,373,-0.1380140000,374,-0.0013044200,375,0.0075335100,376,0.2014250000,377,-0.0571462000,378,0.0085700500,379,-0.0177371000,380,0.1464950000,381,-0.1620840000,382,0.0817538000,383,-0.2682990000,384,0.0012468800,385,0.1465150000,386,0.0389064000,387,-0.0424228000,388,0.0591649000,389,-0.0245997000,390,0.0608133000,391,0.0006227960,392,0.1424670000,393,0.0186987000,394,-0.1007590000,395,-0.2665700000,396,0.7138540000,397,-0.0489710000,398,0.5212040000,399,-0.1829560000,400,0.1318280000,401,-0.1269880000,402,0.0399621000,403,-0.0003295950,404,-0.1267110000 +203,0,0.0717365000,408,-1.0000000000,355,-1.1910100000,356,-0.3613670000,357,-0.0289326000,358,0.1737530000,359,0.4191300000,360,-0.6317870000,361,0.3715780000,362,-1.3822200000,363,-0.0449167000,364,-0.2765920000,365,0.4803820000,366,0.0253318000,367,0.0209835000,368,0.0437708000,369,0.4230650000,370,-0.1147350000,371,-0.9792540000,372,0.3495240000,373,0.3365240000,374,0.0316628000,375,-0.7113190000,376,-0.0443378000,377,0.0369917000,378,0.0109477000,379,-0.0151094000,380,-0.9755750000,381,-0.6994840000,382,0.1921550000,383,0.3363070000,384,0.0480887000,385,-1.2101200000,386,0.4039260000,387,1.3171800000,388,-0.3375220000,389,0.0042054000,390,-0.0904776000,391,-0.2211790000,392,-0.3915700000,393,-0.2887480000,394,-0.2644230000,395,0.2805550000,396,1.5567100000,397,-0.1278740000,398,-0.0819555000,399,0.4890520000,400,0.1084600000,401,-0.1171200000,402,-0.0224882000,403,0.2259810000,404,0.7353220000 +204,0,0.2348440000,409,-1.0000000000,355,0.5547740000,356,2.4025300000,357,-0.4107540000,358,-0.8388140000,359,2.0555700000,360,-0.1661950000,361,-1.1407700000,362,-0.4108970000,363,-0.0767037000,364,1.7676100000,365,1.3108200000,366,-1.7378100000,367,-0.3333730000,368,-0.5669090000,369,2.5842200000,370,-1.1549500000,371,-0.4566960000,372,-0.8607050000,373,1.1953200000,374,-0.0205491000,375,0.5331860000,376,-0.5719650000,377,-1.2563400000,378,-0.0344481000,379,-0.0657446000,380,2.0142800000,381,0.3449330000,382,0.1088640000,383,0.9686420000,384,0.0000510708,385,0.6275460000,386,-1.0634800000,387,0.6621630000,388,0.2393450000,389,0.0332261000,390,-0.4012490000,391,-0.2341750000,392,1.6264500000,393,1.1542900000,394,2.4496000000,395,0.1361220000,396,1.7624700000,397,1.7024700000,398,0.5712130000,399,1.1671700000,400,1.1599200000,401,1.8005500000,402,-0.0030509000,403,-0.8166770000,404,0.5806330000 +205,0,0.8578570000,410,-1.0000000000,355,-1.2490100000,356,0.4545850000,357,0.0089237200,358,0.5860390000,359,0.5916740000,360,1.3050000000,361,2.2134800000,362,-0.4409350000,363,1.2466000000,364,-0.4892350000,365,-0.1638890000,366,1.1939800000,367,-0.2991290000,368,0.5086150000,369,0.8834440000,370,0.5874470000,371,-0.8796110000,372,1.4342200000,373,1.2001500000,374,-0.0180889000,375,0.4091100000,376,0.1786260000,377,-0.8298620000,378,-0.0399247000,379,-0.3341710000,380,0.2394870000,381,-0.7154580000,382,-0.4858220000,383,0.5060930000,384,0.0173196000,385,1.3538100000,386,0.0595247000,387,-0.2949940000,388,0.6798320000,389,0.0457752000,390,-0.8303760000,391,0.8208180000,392,1.0581700000,393,0.6344390000,394,0.8900630000,395,-0.7560260000,396,3.3427900000,397,0.0366707000,398,2.3689500000,399,-0.1175470000,400,0.5797810000,401,0.4798510000,402,0.0150071000,403,-0.9094440000,404,-0.1542900000 +206,0,0.0082229200,411,-1.0000000000,355,-0.0036387200,356,-0.0420286000,357,-0.0519906000,358,-0.0063240600,359,0.0294975000,360,-0.0310583000,361,0.0159319000,362,-0.0450209000,363,0.0046173100,364,0.0247832000,365,0.0003362260,366,0.0025649800,367,-0.0007645010,368,0.0057673800,369,-0.0211355000,370,-0.0093831400,371,-0.0473173000,372,-0.0083681700,373,0.0218885000,374,0.0356063000,375,-0.0468530000,376,-0.0369004000,377,-0.0426234000,378,-0.0232573000,379,0.0235024000,380,-0.0460155000,381,-0.0439712000,382,-0.0517440000,383,-0.0501546000,384,0.0421547000,385,0.0061008000,386,0.0042050900,387,0.0046160200,388,0.0338004000,389,0.0169618000,390,-0.0537429000,391,-0.0531208000,392,-0.0342919000,393,0.0139090000,394,-0.0261800000,395,-0.0115576000,396,-0.0182435000,397,-0.0380744000,398,-0.0252096000,399,0.0319850000,400,0.0043464500,401,0.0196626000,402,-0.0416988000,403,0.0368937000,404,-0.0068565700 +207,0,-0.2656430000,412,-1.0000000000,355,0.0491174000,356,0.0475879000,357,-0.0971433000,358,-0.4473170000,359,0.2311050000,360,-0.0815981000,361,-0.1786820000,362,-0.0012572400,363,-0.0376709000,364,-0.1259510000,365,-0.0138239000,366,-0.4145400000,367,-0.0102617000,368,-0.0578479000,369,0.1054080000,370,0.1269290000,371,-0.0443694000,372,-0.0618470000,373,0.1093280000,374,0.0148385000,375,-0.1611730000,376,-0.3598890000,377,0.0257470000,378,-0.0200663000,379,0.0724335000,380,0.0835094000,381,0.0484963000,382,-0.1289710000,383,-0.1830350000,384,0.0472737000,385,0.0551159000,386,-0.0636798000,387,0.2057830000,388,-0.1910800000,389,0.0220490000,390,0.0225824000,391,0.1387520000,392,-0.2147530000,393,0.0225713000,394,-0.1268740000,395,-0.0220119000,396,-1.3091800000,397,-0.9227420000,398,-0.6557380000,399,-0.2011210000,400,0.0568005000,401,0.0282448000,402,0.0212533000,403,-0.1676810000,404,0.3138610000 +208,0,1.3297400000,413,-1.0000000000,355,-0.7982560000,356,-0.9518140000,357,0.1756370000,358,0.0498855000,359,-0.3215050000,360,-0.0950185000,361,-0.0041481900,362,0.7415800000,363,0.2266650000,364,-0.0934678000,365,0.5105450000,366,0.3206000000,367,0.0249850000,368,0.0074908500,369,0.2630740000,370,0.1887490000,371,-1.2237100000,372,-0.3403650000,373,-0.6221640000,374,-0.0508037000,375,0.3727940000,376,1.4465500000,377,0.2656100000,378,0.0174850000,379,-0.6317770000,380,0.6417140000,381,-0.3402910000,382,-0.7681300000,383,-0.5532400000,384,-0.0505504000,385,0.6112970000,386,0.8247970000,387,-0.0868975000,388,0.3481640000,389,0.0448454000,390,-0.7122090000,391,0.5499870000,392,0.6359260000,393,-0.1289870000,394,-0.0005633390,395,-0.7629190000,396,0.2786100000,397,0.7575280000,398,-0.3336780000,399,0.6564910000,400,0.9899960000,401,0.3178910000,402,0.0055884800,403,0.3042310000,404,0.0667041000 +209,0,-0.1350660000,414,-1.0000000000,355,0.0056461700,356,-0.0032898000,357,0.0072122500,358,0.2573730000,359,0.2380210000,360,-0.1336040000,361,0.1228220000,362,-0.2229960000,363,-0.1082200000,364,-0.0064262100,365,0.2926590000,366,-0.1696410000,367,-0.2293290000,368,-0.0508594000,369,-0.1449420000,370,0.1963670000,371,0.0149154000,372,-0.0594734000,373,-0.0902730000,374,0.0351511000,375,0.1334980000,376,-0.0288134000,377,-0.3697200000,378,0.0036599800,379,-0.0042039600,380,0.1056930000,381,-0.0509866000,382,-0.3161030000,383,-0.2320890000,384,-0.0260210000,385,-0.1440500000,386,-0.1502370000,387,0.1137360000,388,0.1193320000,389,0.0418202000,390,-0.0633554000,391,-0.0374437000,392,0.0271734000,393,0.2837010000,394,-0.4864170000,395,0.1314250000,396,0.6536000000,397,-0.3741740000,398,0.6445830000,399,-0.2678900000,400,-0.1448340000,401,0.0968347000,402,0.0121380000,403,0.1757220000,404,-0.0867758000 +210,0,0.1485900000,415,-1.0000000000,355,0.1757950000,356,0.8937430000,357,-0.2066490000,358,0.4121900000,359,-0.3942020000,360,-0.5108220000,361,-0.1848990000,362,-0.3325400000,363,-1.4505300000,364,1.0857100000,365,0.0112113000,366,-0.3158430000,367,0.0772562000,368,-0.5133070000,369,2.3288900000,370,0.2617310000,371,-0.0776588000,372,-0.7270340000,373,0.3896990000,374,-0.0389152000,375,0.7727950000,376,-1.0756500000,377,-0.8263750000,378,0.0429564000,379,0.0024383600,380,0.5550240000,381,0.5909450000,382,0.2953310000,383,0.5602310000,384,0.0325253000,385,0.3450450000,386,-0.3181190000,387,0.0962461000,388,-0.3411900000,389,0.0051661800,390,0.5001900000,391,-0.9444660000,392,1.9769900000,393,0.1764790000,394,1.7406400000,395,0.4419900000,396,1.1840000000,397,1.7078500000,398,-2.0105800000,399,-0.1010660000,400,0.4521180000,401,1.6290600000,402,-0.0119157000,403,-0.7771390000,404,-0.3525750000 +211,0,-0.0802448000,416,-1.0000000000,355,0.4860460000,356,1.1687900000,357,-0.3599420000,358,-0.0510128000,359,0.9760690000,360,-0.4824270000,361,0.3786480000,362,-0.1909660000,363,1.9352100000,364,0.9729490000,365,0.3050670000,366,-0.6610670000,367,0.1357450000,368,-0.5624070000,369,0.4809980000,370,-0.4200140000,371,-0.1215150000,372,0.2726350000,373,0.6495800000,374,-0.0169567000,375,-0.4543900000,376,0.2120360000,377,-1.1199700000,378,-0.0232078000,379,0.0660252000,380,0.8788870000,381,-1.6264800000,382,0.6566390000,383,0.7052980000,384,0.0426880000,385,0.6488210000,386,-0.1027060000,387,0.6720890000,388,0.2234020000,389,0.0115739000,390,-0.6402710000,391,-1.7744400000,392,1.0208800000,393,0.1357660000,394,0.8461470000,395,0.3362260000,396,2.4745600000,397,0.7031410000,398,0.3115950000,399,1.3800700000,400,-0.6936180000,401,0.0155127000,402,0.0192478000,403,-0.0826527000,404,-0.2422480000 +212,0,-0.2690920000,417,-1.0000000000,355,-1.1490400000,356,-0.2940550000,357,-0.1250220000,358,-2.7739900000,359,-2.3826200000,360,-1.7273900000,361,-1.7799700000,362,0.0100857000,363,-1.1877300000,364,-0.7046230000,365,0.0435157000,366,0.3795890000,367,-0.0413830000,368,0.1251040000,369,-1.6378100000,370,-3.0308200000,371,-0.0976734000,372,-0.5168820000,373,-0.6853380000,374,0.0429303000,375,-0.6351360000,376,-2.1074700000,377,0.0327751000,378,0.0156083000,379,0.2476110000,380,-0.8424330000,381,-0.2711710000,382,-2.0669100000,383,0.3656870000,384,-0.0385067000,385,-2.0811700000,386,-0.1437050000,387,0.3056860000,388,0.2017040000,389,-0.0359506000,390,-0.3888810000,391,0.0460784000,392,-1.3646900000,393,-0.7283240000,394,-1.5739300000,395,-0.0700426000,396,0.0497432000,397,-1.4008800000,398,-0.6562810000,399,-0.1323420000,400,-1.2442300000,401,-0.6691320000,402,-0.0033170400,403,0.3302120000,404,-0.1491270000 +213,0,0.2852600000,418,-1.0000000000,355,0.4126830000,356,0.2667350000,357,0.0910874000,358,0.1208630000,359,0.0929643000,360,0.1817260000,361,0.2046260000,362,-0.0049586600,363,0.7079370000,364,0.2301990000,365,0.0616300000,366,-0.4893630000,367,-0.2007450000,368,-0.3217230000,369,0.6826000000,370,-0.1159040000,371,0.1022540000,372,-0.3365750000,373,0.1647880000,374,0.0527658000,375,0.4230690000,376,0.2993270000,377,-0.7155460000,378,-0.0393109000,379,-0.1751850000,380,0.0382208000,381,-0.1895520000,382,0.1142500000,383,-0.0744245000,384,-0.0337129000,385,0.2170820000,386,0.2385910000,387,1.3032800000,388,0.1456720000,389,-0.0006439690,390,-0.1027160000,391,-0.1008500000,392,0.5202460000,393,0.0610990000,394,0.2636450000,395,0.2042600000,396,2.2268900000,397,0.2098130000,398,0.6544220000,399,0.0452619000,400,0.3829520000,401,0.7785550000,402,-0.0086239500,403,0.0101878000,404,-0.5319040000 +214,0,-0.1955970000,419,-1.0000000000,355,-0.1956490000,356,-0.0406459000,357,-0.0024092600,358,0.3587970000,359,-0.0918880000,360,-0.1964180000,361,0.0901040000,362,0.0015132500,363,-0.2294050000,364,0.3457950000,365,0.0076838800,366,0.1783570000,367,-0.2202250000,368,0.2612890000,369,-0.0162419000,370,-0.1168360000,371,0.2121100000,372,-0.1307630000,373,0.1092690000,374,-0.0387561000,375,-0.0539643000,376,-0.1613220000,377,-0.2388980000,378,0.0117550000,379,0.0836986000,380,-0.0847837000,381,0.3987420000,382,-0.2862660000,383,-0.1630570000,384,0.0450308000,385,-0.0447026000,386,-0.0961520000,387,1.1396600000,388,0.0759283000,389,0.0144985000,390,-0.4094440000,391,-0.0476635000,392,-0.3307340000,393,-0.2545150000,394,-0.0349253000,395,0.4932890000,396,-0.8734120000,397,-0.2752450000,398,0.0634623000,399,0.0683256000,400,-0.1698010000,401,0.0523143000,402,-0.0079801800,403,0.6262210000,404,-0.0924154000 +215,0,-0.3249020000,420,-1.0000000000,355,-0.0550053000,356,-0.1061370000,357,-0.0613765000,358,0.0966897000,359,0.1221820000,360,0.1812640000,361,-0.1422550000,362,-0.0800128000,363,0.0044027300,364,0.2352970000,365,-0.1746230000,366,0.2568040000,367,-0.2270210000,368,-0.0626522000,369,-0.7196010000,370,-0.0237982000,371,-0.0169260000,372,0.1489760000,373,0.0691800000,374,-0.0263704000,375,-0.1946340000,376,0.0199895000,377,-0.0122471000,378,0.0292886000,379,-0.0364996000,380,-0.0683549000,381,0.2319830000,382,-0.1624000000,383,0.1424270000,384,0.0342755000,385,-0.1512570000,386,-0.2958850000,387,0.5933490000,388,0.0798825000,389,-0.0245572000,390,-0.0610403000,391,0.1782240000,392,-0.5298080000,393,0.1912790000,394,0.3348560000,395,-0.0013139500,396,0.2358380000,397,-0.1883200000,398,0.6493110000,399,-0.0262245000,400,0.0098895500,401,0.3162610000,402,0.0245293000,403,-0.1699740000,404,-0.2304280000 +216,0,-0.4949250000,421,-1.0000000000,355,-0.2386050000,356,0.3105710000,357,-0.1398850000,358,-0.5835830000,359,-0.9270780000,360,-0.6466880000,361,-0.2423780000,362,-0.7087420000,363,-2.0094700000,364,-0.3623010000,365,-0.1200930000,366,-0.2702740000,367,-0.1955370000,368,0.0326319000,369,0.2358870000,370,-0.4311650000,371,-0.0174149000,372,-0.0621050000,373,0.4524270000,374,0.0350282000,375,-0.2110340000,376,-0.5585810000,377,0.1779880000,378,-0.0132199000,379,0.0459252000,380,0.0567469000,381,-0.4499880000,382,-0.8790910000,383,0.6562880000,384,-0.0308213000,385,0.0015208800,386,0.2154570000,387,-0.3898410000,388,-0.4854390000,389,-0.0120568000,390,-0.4775250000,391,-0.5434960000,392,-0.3273570000,393,-0.5403270000,394,-0.1243370000,395,-0.0659687000,396,1.5585400000,397,0.5365550000,398,-0.6713210000,399,0.0653462000,400,-1.3276200000,401,0.3946410000,402,-0.0022771400,403,-0.0114378000,404,0.5795180000 +217,0,0.0636037000,422,-1.0000000000,355,-0.0935374000,356,0.1992330000,357,0.0365551000,358,0.3692440000,359,0.3694910000,360,-0.1388450000,361,0.2074460000,362,-0.0830852000,363,0.0810962000,364,0.3769820000,365,0.1022580000,366,-0.0849648000,367,-0.0512930000,368,-0.1651140000,369,-0.2409250000,370,0.0015956400,371,-0.1148450000,372,-0.2664010000,373,-0.0408982000,374,0.0330087000,375,0.2895950000,376,-0.1218830000,377,-0.1734170000,378,-0.0379138000,379,0.0143418000,380,-0.0836422000,381,0.1769020000,382,-0.4296320000,383,-0.4428940000,384,-0.0288654000,385,-0.0227451000,386,0.0056585800,387,-0.4028880000,388,-0.2290280000,389,0.0412125000,390,-0.2425180000,391,-0.3431340000,392,-0.2872550000,393,0.0744772000,394,-0.0019919400,395,0.2645920000,396,-0.9157700000,397,-0.1738390000,398,0.3691470000,399,-0.1431760000,400,-0.0060736200,401,0.4803260000,402,0.0262478000,403,0.1081310000,404,-0.0445427000 +218,0,0.0144713000,423,-1.0000000000,355,-0.0503188000,356,-0.0165261000,357,-0.0148694000,358,0.0086204800,359,0.0136533000,360,0.0414692000,361,-0.0071053100,362,-0.0306849000,363,0.0383864000,364,-0.0458574000,365,-0.0250729000,366,0.0046949000,367,0.0122458000,368,-0.0462795000,369,0.0443678000,370,-0.0048431700,371,-0.0042454200,372,0.0416854000,373,0.0023109700,374,-0.0008168790,375,0.0061352900,376,-0.0411453000,377,0.0143996000,378,-0.0088321000,379,-0.0032863300,380,-0.0079386000,381,-0.0403912000,382,-0.0115319000,383,-0.0050251800,384,0.0233830000,385,-0.0119979000,386,0.0193436000,387,0.0043451500,388,0.0036773800,389,-0.0195499000,390,0.0333621000,391,-0.0547645000,392,-0.0255267000,393,-0.0331603000,394,0.0284509000,395,-0.0418723000,396,-0.0023813800,397,-0.0208328000,398,-0.0361785000,399,-0.0100520000,400,-0.0356933000,401,0.0247689000,402,-0.0442733000,403,-0.0325109000,404,-0.0015249600 +219,0,0.3028800000,424,-1.0000000000,355,0.2152110000,356,0.0178891000,357,-0.1101710000,358,0.5906460000,359,2.6517500000,360,-0.3288250000,361,1.6290000000,362,-1.5700100000,363,0.8258630000,364,0.1844880000,365,-0.2849180000,366,0.2398770000,367,-0.0750754000,368,0.3418880000,369,1.8816600000,370,-0.1236710000,371,-0.2401890000,372,0.5337660000,373,-0.4077490000,374,0.0077034100,375,0.4217820000,376,-0.0964989000,377,-1.6571500000,378,0.0245300000,379,0.0977045000,380,-1.2254600000,381,1.0745800000,382,-0.2859270000,383,0.0125006000,384,0.0367852000,385,0.5384340000,386,0.5284750000,387,2.6970900000,388,-0.5629630000,389,-0.0432258000,390,0.2754020000,391,0.6356900000,392,2.4241800000,393,0.5414870000,394,0.7678840000,395,1.2034400000,396,2.0876100000,397,-1.0392200000,398,1.6483300000,399,0.2462800000,400,0.5577030000,401,0.2482180000,402,0.0103114000,403,-0.0265289000,404,0.9187100000 +220,0,0.1371610000,425,-1.0000000000,355,-0.3191710000,356,-0.3085230000,357,-0.0089259600,358,0.0519462000,359,-0.8958620000,360,-1.0046400000,361,0.0648808000,362,0.0714137000,363,0.6068600000,364,0.1029410000,365,0.2358020000,366,0.2560760000,367,-0.0688200000,368,0.1939400000,369,-0.3628270000,370,-1.3829500000,371,-0.0087368300,372,-0.2648520000,373,0.1051690000,374,0.0224616000,375,-0.0920854000,376,-0.2247490000,377,-0.6983880000,378,-0.0112684000,379,-0.0007939860,380,-0.7532840000,381,0.1689700000,382,-0.4752300000,383,-0.0383934000,384,-0.0124735000,385,-0.1653180000,386,-0.3403050000,387,-0.1608070000,388,-0.8219160000,389,0.0013889200,390,-0.1598610000,391,0.3141920000,392,-1.1555600000,393,0.3321820000,394,0.0659820000,395,-0.1083200000,396,1.4095800000,397,0.1937170000,398,-0.4177480000,399,0.0922666000,400,0.4524090000,401,-1.9009000000,402,-0.0389955000,403,0.2046810000,404,-0.1534700000 +221,0,1.1310400000,426,-1.0000000000,355,0.9263350000,356,-0.0869146000,357,0.1851200000,358,0.5533530000,359,0.9022490000,360,-0.0071209100,361,-0.0806507000,362,0.4602760000,363,1.8167000000,364,0.6883940000,365,0.0476638000,366,-1.5846800000,367,-0.6171020000,368,-0.4609780000,369,0.3292850000,370,0.3476480000,371,-0.1259440000,372,-1.2367700000,373,-0.3289190000,374,0.0335640000,375,0.7260240000,376,0.7049600000,377,-1.0569600000,378,-0.0040587200,379,-0.2478390000,380,1.3153000000,381,-0.6425920000,382,0.2069050000,383,-0.0648494000,384,-0.0228386000,385,0.9992270000,386,0.3113320000,387,1.6070600000,388,0.5272270000,389,0.0005723470,390,-0.4778060000,391,-0.3878990000,392,-0.1805100000,393,-0.5621660000,394,0.3627970000,395,0.7293370000,396,4.6718400000,397,1.2579300000,398,1.2381900000,399,-0.7930780000,400,1.1157700000,401,0.1393660000,402,-0.0346502000,403,0.4342240000,404,-0.6525430000 +222,0,0.4406230000,427,-1.0000000000,355,0.5642700000,356,-0.3091970000,357,-0.0469657000,358,0.3847180000,359,0.2935110000,360,-0.1415540000,361,1.1067000000,362,-0.1438420000,363,0.3887010000,364,-0.2570880000,365,0.1816570000,366,0.0958705000,367,-0.2333420000,368,0.2938770000,369,-0.7729380000,370,-0.0787526000,371,-0.3206840000,372,0.0097633900,373,1.1459300000,374,-0.0179924000,375,-0.1850590000,376,0.6513760000,377,-0.1989370000,378,-0.0131295000,379,-0.0053225700,380,0.5022870000,381,-1.5792300000,382,-0.0656307000,383,0.3897890000,384,-0.0315037000,385,-0.3878360000,386,0.0935377000,387,-0.0011659300,388,0.6565450000,389,0.0274043000,390,-0.7255270000,391,-0.1470760000,392,0.1646290000,393,-0.2443060000,394,1.0875300000,395,0.0266583000,396,0.9128440000,397,0.8636690000,398,0.6900990000,399,-0.2026530000,400,0.2055310000,401,0.2304100000,402,0.0423820000,403,-0.4734210000,404,-0.2441010000 +223,0,-0.0364376000,428,-1.0000000000,355,-0.0897806000,356,0.1167450000,357,-0.0010086100,358,0.2577870000,359,-0.3068140000,360,0.1029160000,361,0.2125700000,362,0.0356898000,363,0.1996410000,364,0.0514214000,365,-0.0491762000,366,0.0925771000,367,0.0440812000,368,0.1015090000,369,0.5655130000,370,-0.0360488000,371,0.0577778000,372,-0.1613690000,373,-0.0098994600,374,-0.0229888000,375,-0.0584547000,376,0.1007680000,377,-0.1192660000,378,0.0280470000,379,-0.0111912000,380,-0.2905170000,381,0.2469300000,382,0.0499733000,383,-0.2427700000,384,0.0556660000,385,0.2249940000,386,-0.2882330000,387,-0.1746070000,388,-0.0980754000,389,-0.0109758000,390,-0.2248240000,391,0.2713590000,392,-0.4305350000,393,-0.2223540000,394,0.0854407000,395,-0.1469840000,396,0.4477660000,397,-0.0529052000,398,0.2445180000,399,0.1187560000,400,0.1881650000,401,0.0696707000,402,-0.0030769400,403,-0.1708380000,404,0.1647460000 +224,0,-0.1914640000,429,-1.0000000000,355,-0.3144060000,356,0.1683340000,357,-0.0248605000,358,0.2051130000,359,0.0583431000,360,0.1709220000,361,-0.3234480000,362,-0.0668978000,363,-0.3907010000,364,0.2919060000,365,0.0317087000,366,-1.2642900000,367,0.0450977000,368,-0.2230140000,369,-1.0250700000,370,0.2216740000,371,0.2251660000,372,0.0032238700,373,0.1259950000,374,0.0422110000,375,0.2448700000,376,0.0411632000,377,-0.4125320000,378,-0.0044751200,379,-0.0888974000,380,-0.4224610000,381,0.2660270000,382,-0.2689340000,383,-0.0925747000,384,-0.0404661000,385,-0.1743490000,386,0.1873340000,387,0.1475230000,388,0.0139482000,389,0.0275913000,390,-0.0311759000,391,0.1362860000,392,0.3718260000,393,-0.7035890000,394,-0.1787060000,395,0.4013020000,396,0.7590310000,397,-0.0824765000,398,0.3409610000,399,-0.3990360000,400,-0.7435710000,401,0.1101590000,402,-0.0147263000,403,0.0345227000,404,-0.0396631000 +225,0,-0.1777740000,430,-1.0000000000,355,0.0268583000,356,0.2443920000,357,-0.0370849000,358,-0.4355600000,359,0.0303812000,360,-0.0446768000,361,0.1360180000,362,-0.0994839000,363,-0.1763680000,364,0.2121570000,365,-0.1429490000,366,-0.3041060000,367,0.0643807000,368,-0.0568079000,369,0.0482607000,370,-0.0311893000,371,0.0748282000,372,-0.0638331000,373,0.0625998000,374,-0.0329518000,375,-0.1025930000,376,-0.0947032000,377,0.0920589000,378,-0.0322526000,379,0.0369063000,380,-0.0637839000,381,-0.1848070000,382,-0.0151228000,383,0.3152030000,384,0.0119604000,385,-0.1377000000,386,-0.0773357000,387,0.2810000000,388,-0.0260211000,389,0.0348897000,390,-0.2293420000,391,-0.2269350000,392,0.2075060000,393,0.0310451000,394,-0.0563612000,395,0.1893600000,396,0.6520050000,397,0.0386714000,398,0.4164520000,399,-0.1333970000,400,-0.0055239500,401,0.1932450000,402,0.0207381000,403,-0.2673770000,404,0.1458160000 +226,0,0.4494470000,431,-1.0000000000,355,0.0411772000,356,-0.5456190000,357,0.1446600000,358,-0.0840218000,359,-1.4347900000,360,0.2696100000,361,0.0189050000,362,-0.7887480000,363,-0.2818570000,364,0.1828010000,365,-0.4409830000,366,0.1624020000,367,-0.1872650000,368,0.1960670000,369,-1.9883500000,370,0.2582870000,371,-0.3915220000,372,-0.5663000000,373,-0.0410963000,374,0.0097794800,375,-0.4296520000,376,-0.3924040000,377,0.1997030000,378,0.0449306000,379,0.0396278000,380,-0.0699429000,381,0.3049180000,382,-0.4224600000,383,0.3337680000,384,-0.0196489000,385,0.1477450000,386,-0.3111570000,387,-0.1261850000,388,0.2590150000,389,-0.0068125500,390,-1.2093600000,391,-0.0284109000,392,-0.5595680000,393,0.5685130000,394,-0.0884120000,395,0.7504110000,396,-3.5189100000,397,-0.0674120000,398,0.0362858000,399,0.3625070000,400,-0.4122650000,401,0.1559240000,402,0.0434806000,403,0.1749190000,404,-0.5446350000 +227,0,0.1299330000,432,-1.0000000000,355,-1.0002500000,356,0.0711288000,357,-0.1967710000,358,-0.0868032000,359,1.1595000000,360,0.2525400000,361,-0.7110940000,362,-1.6020100000,363,-0.3051760000,364,0.0161772000,365,0.2837620000,366,0.2426120000,367,0.1109150000,368,0.0142828000,369,-0.5663180000,370,-0.3129020000,371,0.4463780000,372,0.5426460000,373,0.2688770000,374,-0.0458759000,375,0.1698640000,376,-0.6061930000,377,0.3597150000,378,0.0428258000,379,0.2551460000,380,-0.2259200000,381,0.0631250000,382,-1.2137200000,383,-0.3672620000,384,0.0363748000,385,-0.3111890000,386,0.0410432000,387,1.3555200000,388,0.9040310000,389,-0.0021663100,390,0.0907643000,391,-0.4606340000,392,-0.2745330000,393,0.3553000000,394,-0.4547690000,395,0.3305930000,396,0.0834341000,397,-0.4051680000,398,-0.0315618000,399,0.4739050000,400,-0.7809270000,401,0.2251790000,402,-0.0447831000,403,0.1942420000,404,0.1163830000 +228,0,0.0183973000,433,-1.0000000000,355,-0.0992341000,356,-0.0612063000,357,0.0025512900,358,-0.2799140000,359,-0.1249430000,360,0.0571696000,361,-0.0821332000,362,-0.0545476000,363,-0.3042040000,364,0.3757410000,365,-0.3195170000,366,0.4286390000,367,0.1625120000,368,0.1019180000,369,-0.6297120000,370,-0.2427510000,371,0.1942550000,372,0.1388090000,373,-0.1248870000,374,-0.0352030000,375,-0.0013280400,376,-0.2387640000,377,0.1279340000,378,0.0535726000,379,0.0915187000,380,-0.4458640000,381,0.0352202000,382,-0.2288990000,383,0.0523324000,384,0.0375989000,385,-0.3600050000,386,0.0079208100,387,-0.7761020000,388,-0.1088850000,389,-0.0031110200,390,-0.3337830000,391,0.0108770000,392,0.1357260000,393,-0.0577287000,394,0.0828109000,395,0.7087900000,396,-0.6846490000,397,0.0864400000,398,0.0032496000,399,0.3245520000,400,-0.1200130000,401,-0.0037170900,402,-0.0256037000,403,-0.2155830000,404,0.1191610000 +229,0,0.0193124000,434,-1.0000000000,355,0.0304587000,356,0.0135291000,357,-0.0469808000,358,0.0056059500,359,0.0266815000,360,-0.0304469000,361,-0.0358826000,362,0.0376213000,363,0.0317628000,364,-0.0157547000,365,-0.0090689700,366,0.0332249000,367,-0.0146720000,368,0.0012377400,369,-0.0270465000,370,-0.0080721100,371,-0.0185217000,372,0.0332872000,373,0.0344732000,374,0.0114024000,375,-0.0169581000,376,-0.0200791000,377,-0.0147245000,378,-0.0108084000,379,-0.0125913000,380,-0.0326060000,381,-0.0290522000,382,0.0071916200,383,-0.0233273000,384,-0.0096378900,385,-0.0192463000,386,0.0056000200,387,0.0019743600,388,0.0087177600,389,0.0176027000,390,-0.0487159000,391,0.0230798000,392,-0.0074579800,393,-0.0268634000,394,0.0287159000,395,0.0223944000,396,-0.0170356000,397,0.0094733100,398,-0.0133442000,399,0.0028306900,400,0.0181413000,401,-0.0480324000,402,0.0167160000,403,-0.0205823000,404,-0.0279246000 +230,0,-0.1074760000,435,-1.0000000000,355,-0.2149500000,356,0.0445280000,357,-0.0842802000,358,0.0962859000,359,-0.1385940000,360,-0.1785370000,361,0.0680797000,362,-0.2628820000,363,-0.1829810000,364,0.4257860000,365,0.0913017000,366,-0.0353054000,367,0.0083006600,368,0.1367690000,369,-0.0701472000,370,-0.0634402000,371,-0.2543890000,372,0.1134680000,373,0.0899004000,374,0.0298542000,375,-0.0001970340,376,0.1000890000,377,-0.1617860000,378,-0.0503133000,379,-0.0039575100,380,-0.0234042000,381,0.4028270000,382,-0.1831980000,383,0.2754400000,384,0.0414095000,385,-0.0172892000,386,-0.0043467300,387,0.0252949000,388,0.0385646000,389,-0.0254159000,390,-0.2328960000,391,0.3864540000,392,-0.0376757000,393,0.2145390000,394,0.1508020000,395,0.1706900000,396,-0.0354370000,397,-0.0477005000,398,-0.2946570000,399,0.0910079000,400,-0.2023900000,401,0.1379700000,402,0.0268218000,403,-0.4657830000,404,-0.1182770000 +231,0,-0.1691250000,436,-1.0000000000,355,-0.0428751000,356,-0.0154559000,357,0.0075158900,358,-0.2899860000,359,-0.0770349000,360,0.0992992000,361,-0.0660525000,362,0.1671740000,363,-0.2965550000,364,-0.1161010000,365,-0.2037340000,366,0.1379480000,367,0.0646115000,368,-0.0473914000,369,-0.0250432000,370,-0.1237430000,371,0.0331281000,372,-0.0693682000,373,-0.1470140000,374,-0.0426645000,375,-0.0725842000,376,0.0245622000,377,0.1923980000,378,0.0088795200,379,-0.0105072000,380,-0.1879840000,381,-0.0550893000,382,-0.1131380000,383,0.5944880000,384,0.0512102000,385,-0.0255643000,386,0.1494510000,387,-0.1208450000,388,-0.0483213000,389,0.0405806000,390,-0.0985050000,391,-0.0694172000,392,0.0049165000,393,-0.5344130000,394,0.2736530000,395,-0.0164825000,396,-0.0024172800,397,0.1042480000,398,-0.0125583000,399,0.0513421000,400,0.1248990000,401,0.3792610000,402,0.0222091000,403,-0.1215130000,404,-0.1860900000 +232,0,0.0444545000,437,-1.0000000000,355,-0.2187320000,356,-0.0924774000,357,0.0176737000,358,-0.0922951000,359,0.1053040000,360,0.1200850000,361,0.4705800000,362,0.0124933000,363,-0.2598300000,364,-0.2440010000,365,-0.0662536000,366,0.5178950000,367,0.0651424000,368,-0.0099131900,369,-0.4277040000,370,-0.1620990000,371,0.1405360000,372,0.2894650000,373,-0.1756300000,374,0.0156374000,375,0.0956245000,376,-0.2699180000,377,-0.1403030000,378,-0.0084845400,379,-0.1289410000,380,-0.2234630000,381,0.0507286000,382,-0.0209533000,383,0.1084100000,384,0.0332622000,385,-0.8263000000,386,-0.3272610000,387,0.5325500000,388,-0.0033334300,389,0.0421798000,390,0.1871140000,391,0.1400670000,392,-0.1517170000,393,0.2638480000,394,1.0046900000,395,-0.0244730000,396,-1.1182800000,397,-0.0035114200,398,-0.0411916000,399,0.3672260000,400,-0.1816030000,401,0.1635820000,402,-0.0362844000,403,-0.0652236000,404,0.0093190300 +233,0,-0.2505540000,438,-1.0000000000,355,-0.1020960000,356,0.7612200000,357,0.0026080400,358,-0.7281480000,359,0.0649532000,360,-0.2820300000,361,-0.4567030000,362,-0.0263808000,363,-0.5839080000,364,0.0555964000,365,-0.5221990000,366,0.0660963000,367,0.1167940000,368,-0.0303651000,369,1.1993400000,370,-0.3157420000,371,0.1717960000,372,0.1036790000,373,0.3159100000,374,-0.0093819700,375,-0.2256190000,376,-0.3376370000,377,0.1778790000,378,-0.0389958000,379,0.1311290000,380,-0.3596370000,381,-0.2930190000,382,-0.0073891800,383,0.2287150000,384,0.0123757000,385,-0.1018530000,386,0.3228470000,387,-0.2899190000,388,-0.1553770000,389,-0.0437111000,390,0.1025800000,391,-0.5143750000,392,-0.3934820000,393,-0.0926693000,394,0.1932560000,395,0.4759780000,396,1.7333500000,397,0.6920940000,398,0.0061827500,399,0.3874800000,400,-0.2191080000,401,0.0646272000,402,0.0645698000,403,-0.0842743000,404,0.3992580000 +234,0,0.3319330000,439,-1.0000000000,355,0.1827540000,356,-0.1732780000,357,0.1064080000,358,0.9014800000,359,0.4188830000,360,0.2339070000,361,0.5251100000,362,-0.1815400000,363,0.6392920000,364,0.6317010000,365,0.0326409000,366,0.1225130000,367,-0.6418030000,368,-0.1334300000,369,0.3169250000,370,0.1966750000,371,-0.1232970000,372,0.2372640000,373,0.3968240000,374,0.0316376000,375,0.2416000000,376,0.6529900000,377,-0.4893720000,378,0.0396913000,379,-0.2100480000,380,0.6950240000,381,0.3363920000,382,-0.1303810000,383,-0.1087810000,384,0.0040947700,385,0.6750920000,386,0.1309900000,387,1.6376600000,388,0.2591700000,389,-0.0391049000,390,-0.3907310000,391,-0.0921775000,392,0.2690110000,393,0.1951850000,394,-0.5456080000,395,-0.3567430000,396,0.3183710000,397,0.3502550000,398,0.0075227100,399,0.1295780000,400,0.2646190000,401,-0.5087730000,402,-0.0418447000,403,-0.6593080000,404,-0.3375140000 +235,0,-0.1414890000,440,-1.0000000000,355,0.1066560000,356,0.0231662000,357,-0.0133504000,358,0.0030277300,359,0.2586150000,360,0.2131810000,361,-0.1452190000,362,-0.1057810000,363,0.1089130000,364,0.3052330000,365,0.0383637000,366,-0.6195810000,367,-0.0636712000,368,0.0103416000,369,-0.5880410000,370,-0.4700870000,371,0.0476889000,372,0.2658670000,373,-0.0740843000,374,-0.0067101100,375,0.1268660000,376,-0.0340207000,377,-0.4094280000,378,0.0134829000,379,-0.0493205000,380,0.1056960000,381,-0.0011944500,382,0.0452354000,383,-0.1607080000,384,0.0439706000,385,-0.1982720000,386,-0.1102900000,387,0.0315881000,388,0.0742292000,389,0.0166336000,390,-0.2421150000,391,-0.1362160000,392,-0.3361060000,393,0.2315080000,394,0.3847110000,395,0.3399050000,396,-1.5212100000,397,1.0246900000,398,-0.0792018000,399,0.5997920000,400,-0.0345946000,401,0.0358862000,402,-0.0383255000,403,0.0425473000,404,-0.4163060000 +236,0,-0.1969250000,441,-1.0000000000,355,0.0268142000,356,-0.2304970000,357,-0.0233510000,358,-0.0343509000,359,-0.4715480000,360,-0.0274839000,361,-0.1019790000,362,0.0252094000,363,0.0353375000,364,-0.1414580000,365,-0.1458480000,366,-1.0113200000,367,-0.0825612000,368,-0.1022930000,369,-0.7257200000,370,-0.1795890000,371,-0.1008030000,372,-0.0448593000,373,-0.0478456000,374,0.0060066700,375,0.3226900000,376,-0.0363038000,377,0.0521488000,378,-0.0229390000,379,-0.0528045000,380,-0.0313225000,381,-0.1131840000,382,-0.0686580000,383,-0.0018509900,384,0.0583421000,385,-0.0701493000,386,0.0946028000,387,0.6359240000,388,-0.1153300000,389,-0.0336092000,390,0.0693073000,391,0.1279850000,392,-0.0403488000,393,0.0755154000,394,-0.4098640000,395,-0.0289129000,396,0.7022610000,397,-0.1361300000,398,-1.0806400000,399,-0.3991270000,400,0.2134490000,401,-0.4088390000,402,0.0621831000,403,0.2482900000,404,-0.1528790000 +237,0,0.7680870000,442,-1.0000000000,355,0.3836550000,356,0.9306750000,357,0.0120680000,358,-0.1139210000,359,1.3246400000,360,-0.2670160000,361,0.2722360000,362,-0.5783760000,363,0.7181840000,364,-0.5914070000,365,-0.7180300000,366,0.7421880000,367,0.1501910000,368,0.0162580000,369,0.0085604100,370,0.2234710000,371,0.5906020000,372,-0.2311000000,373,0.4511870000,374,-0.0018107200,375,-0.4531140000,376,1.1720500000,377,-0.3433790000,378,-0.0047356400,379,-0.2944180000,380,-0.9796000000,381,0.6127160000,382,0.7149580000,383,0.5680740000,384,0.0099188600,385,0.1260630000,386,-0.0969892000,387,1.7285400000,388,-0.7894430000,389,-0.0182650000,390,0.3059090000,391,0.4355600000,392,1.7361700000,393,0.2266580000,394,0.4027440000,395,-1.1410900000,396,3.6491800000,397,0.2501350000,398,1.2253400000,399,-0.1659070000,400,0.5968000000,401,0.3723770000,402,-0.0495461000,403,-0.0327404000,404,0.6158900000 +238,0,-0.0601723000,443,-1.0000000000,355,0.0180630000,356,-0.0188688000,357,0.0430521000,358,-0.1223240000,359,-0.1202720000,360,0.2002300000,361,-0.0450790000,362,-0.1773330000,363,-0.2234050000,364,0.0427114000,365,-0.1718650000,366,0.2212010000,367,-0.1954360000,368,0.0656524000,369,-0.1921750000,370,0.0498775000,371,-0.0650849000,372,-0.0635754000,373,0.0840117000,374,-0.0038585500,375,0.0543038000,376,-0.1673730000,377,0.0790159000,378,0.0198352000,379,0.0406456000,380,-0.1265730000,381,0.1669790000,382,-0.2029790000,383,0.4846480000,384,-0.0224731000,385,-0.0905053000,386,-0.1783060000,387,0.0321119000,388,0.0010528000,389,-0.0192428000,390,-0.2287470000,391,-0.0345618000,392,0.0117154000,393,0.1546460000,394,-0.0140181000,395,0.0504062000,396,-0.2172960000,397,0.0543112000,398,0.1703820000,399,0.1578110000,400,-0.1617770000,401,-0.0439961000,402,0.0152325000,403,0.0100112000,404,0.0856424000 +239,0,1.2360500000,444,-1.0000000000,355,-0.6327620000,356,0.2860130000,357,-0.2168900000,358,0.1852220000,359,0.1799300000,360,-0.0084628000,361,-0.1773210000,362,0.1594940000,363,-0.1792940000,364,-0.5513230000,365,0.1920000000,366,-0.1004060000,367,-0.1789170000,368,0.7653850000,369,0.2394170000,370,0.4299810000,371,-0.0684362000,372,0.0368117000,373,-0.0065542000,374,-0.0544179000,375,-0.2586760000,376,0.3444940000,377,-0.2094100000,378,-0.0490688000,379,-0.0223307000,380,0.1259730000,381,0.1433550000,382,-0.5847650000,383,-0.4775500000,384,0.0036409700,385,0.1035910000,386,-0.3174320000,387,0.0020968600,388,0.3809120000,389,0.0475476000,390,-0.2355710000,391,-0.4560700000,392,0.0694787000,393,-0.5079790000,394,-0.0234694000,395,-0.0467944000,396,0.1693690000,397,0.4059540000,398,0.0351513000,399,-0.0156734000,400,0.3643410000,401,-0.3708510000,402,-0.0217520000,403,0.0428222000,404,0.4037860000 +240,0,0.9361340000,445,-1.0000000000,355,-0.2120590000,356,-0.2472520000,357,0.0505143000,358,-0.8217810000,359,0.2661500000,360,0.6179850000,361,-0.2167750000,362,-2.6831700000,363,-0.1048820000,364,-0.2711010000,365,0.0896709000,366,0.7741630000,367,-0.3995630000,368,0.3089870000,369,1.1430700000,370,0.4649050000,371,-0.0539060000,372,-0.1417160000,373,0.4319040000,374,0.0298220000,375,0.1909560000,376,0.7092250000,377,-0.4746320000,378,0.0326302000,379,0.0146491000,380,-0.6406870000,381,-0.3119620000,382,0.4595850000,383,0.4526560000,384,0.0095699000,385,0.1008820000,386,0.2081020000,387,0.8496800000,388,-0.4601390000,389,-0.0196067000,390,-0.0218031000,391,0.9646600000,392,1.4425500000,393,-0.0287266000,394,0.5569930000,395,0.8461270000,396,1.8376100000,397,0.1487850000,398,0.2893030000,399,-0.1914060000,400,0.6395200000,401,0.5700860000,402,0.0053433100,403,-0.1920920000,404,-0.0712943000 +241,0,0.1641060000,446,-1.0000000000,355,-0.3622430000,356,-0.7048790000,357,0.0998316000,358,0.2510500000,359,-0.3259860000,360,0.3094540000,361,0.0172912000,362,-0.2618020000,363,-0.6905400000,364,-0.1614830000,365,-0.2253980000,366,0.0559868000,367,-0.0163456000,368,-0.4940570000,369,0.6223730000,370,-0.1154800000,371,-0.0359259000,372,-0.1817970000,373,-0.0786581000,374,-0.0383839000,375,-0.3282290000,376,-0.1412370000,377,-0.2981240000,378,-0.0070113000,379,-0.1404180000,380,-0.5548790000,381,0.8014010000,382,-0.0111989000,383,0.7963520000,384,-0.0408262000,385,0.1116750000,386,-0.7681210000,387,0.2623340000,388,-2.4545500000,389,-0.0054054000,390,-0.3142930000,391,0.3223160000,392,0.2806760000,393,0.0045866800,394,0.3298860000,395,-0.6873060000,396,0.0706676000,397,0.1458980000,398,-0.4330170000,399,-0.5201680000,400,-0.4150290000,401,0.3367820000,402,0.0015432200,403,0.0089051200,404,-0.3790970000 +242,0,0.2175860000,447,-1.0000000000,355,-0.2560070000,356,-0.1110270000,357,0.0363602000,358,0.2667960000,359,0.4412900000,360,0.3912220000,361,0.6541970000,362,-0.0410827000,363,-0.1272070000,364,0.4028170000,365,-0.2040720000,366,0.3728040000,367,0.0258697000,368,0.0774616000,369,0.4267830000,370,0.1485130000,371,-0.0290407000,372,0.3030650000,373,-0.4928900000,374,-0.0059322600,375,-0.0333911000,376,0.0203261000,377,-0.7416510000,378,-0.0366718000,379,0.0310318000,380,-0.2576580000,381,0.4843820000,382,-0.0684153000,383,-0.2439860000,384,-0.0144113000,385,-0.2653880000,386,0.1866330000,387,-0.3922490000,388,-0.1408140000,389,-0.0399592000,390,0.2149920000,391,0.2052370000,392,-0.1741990000,393,-0.1933520000,394,-0.0626482000,395,0.1216110000,396,-0.1547580000,397,-0.5403730000,398,0.1439050000,399,0.3831350000,400,-0.4774180000,401,0.2619620000,402,0.0403539000,403,0.2716310000,404,-0.0883529000 +243,0,0.0254947000,448,-1.0000000000,355,0.0266625000,356,-0.0190092000,357,-0.0652994000,358,-0.0296127000,359,0.0319519000,360,0.0065453700,361,-0.0407266000,362,0.0355720000,363,0.0375537000,364,0.0160895000,365,-0.0097561800,366,-0.0295761000,367,0.0122847000,368,-0.0127348000,369,0.0327068000,370,-0.0455852000,371,-0.0081078100,372,-0.0053936800,373,0.0226304000,374,0.0274573000,375,0.0358671000,376,-0.0444264000,377,0.0087617900,378,0.0053179900,379,-0.0145857000,380,-0.0019292500,381,0.0376677000,382,-0.0249324000,383,0.0048447500,384,-0.0034989800,385,-0.0149749000,386,0.0134947000,387,0.0135416000,388,-0.0295477000,389,-0.0319829000,390,-0.0049854600,391,0.0058019800,392,0.0231465000,393,0.0212974000,394,0.0393930000,395,-0.0477417000,396,-0.0476964000,397,0.0114306000,398,-0.0159643000,399,0.0437861000,400,-0.0386900000,401,0.0232759000,402,-0.0370740000,403,-0.0001902690,404,-0.0538177000 +244,0,0.1747920000,449,-1.0000000000,355,0.1670650000,356,0.1453990000,357,0.0814511000,358,0.0688589000,359,0.2417490000,360,0.1957430000,361,0.0206823000,362,0.2062450000,363,0.1063160000,364,0.2881570000,365,-0.4288410000,366,-0.1161700000,367,0.0010989300,368,-0.2648410000,369,-0.2801770000,370,0.2542820000,371,0.0673654000,372,-0.0905028000,373,0.0396089000,374,-0.0444984000,375,0.1302710000,376,-0.0152141000,377,0.0065958200,378,0.0215212000,379,0.0182184000,380,-0.2145900000,381,-0.2253420000,382,0.0591716000,383,0.3552620000,384,-0.0270361000,385,0.0392799000,386,0.0834429000,387,-0.0402271000,388,-0.0371691000,389,0.0440848000,390,-0.2254290000,391,-0.3312340000,392,-0.1149010000,393,0.0898619000,394,-0.1434670000,395,0.6445160000,396,-1.1120300000,397,0.2407470000,398,0.8872340000,399,-0.0977583000,400,0.0632653000,401,-0.1133680000,402,0.0015369000,403,-0.0418923000,404,0.2446570000 +245,0,0.1638570000,450,-1.0000000000,355,-0.4059730000,356,0.5976370000,357,0.0581732000,358,-0.2801690000,359,0.4117090000,360,-0.0478926000,361,0.0730388000,362,-0.0687060000,363,0.3455570000,364,0.5213520000,365,-0.4048080000,366,0.7489660000,367,-0.2658550000,368,0.4124210000,369,0.1746240000,370,0.1324610000,371,0.3197140000,372,-0.6547440000,373,-0.3008440000,374,-0.0484099000,375,0.0534532000,376,-0.7093610000,377,-0.1574760000,378,0.0370811000,379,0.1146100000,380,-0.6125030000,381,0.3828580000,382,-0.4327090000,383,-0.3189990000,384,-0.0347350000,385,-0.1634070000,386,-0.3067130000,387,0.5601150000,388,-0.5132540000,389,0.0477594000,390,-1.1654900000,391,-0.2567450000,392,-0.5762860000,393,-0.5405610000,394,-0.4130720000,395,0.8298130000,396,-1.3734700000,397,-0.0367747000,398,0.7923290000,399,-0.1441820000,400,-0.6084940000,401,-0.6545570000,402,0.0365405000,403,0.3084390000,404,-0.5569670000 +246,0,2.1445000000,451,-1.0000000000,355,-0.4026520000,356,-0.2353550000,357,-0.3783050000,358,-0.5503330000,359,-0.5794240000,360,0.0785301000,361,0.0464621000,362,0.0266118000,363,-0.0828158000,364,-0.3950300000,365,0.1407400000,366,-0.2971060000,367,0.0217634000,368,1.0433800000,369,-0.5341190000,370,0.4806790000,371,-0.5465210000,372,-0.4831730000,373,0.0362457000,374,-0.0086439500,375,-0.0694421000,376,0.3033260000,377,-0.1619840000,378,-0.0197382000,379,-0.0385746000,380,0.1856810000,381,0.0205643000,382,-0.3723960000,383,-0.9092460000,384,0.0467201000,385,-0.2124640000,386,-0.1958700000,387,0.0052321500,388,0.5595300000,389,0.0174775000,390,-0.5820720000,391,-0.5789220000,392,-0.0158919000,393,-0.1573280000,394,-0.1222220000,395,-1.0308900000,396,0.0237879000,397,-0.2151960000,398,-0.0238084000,399,0.0979879000,400,0.2450740000,401,-1.0216100000,402,-0.0316064000,403,-0.0982245000,404,0.3368360000 +247,0,0.4599070000,452,-1.0000000000,355,-0.0872495000,356,0.2176320000,357,0.0679606000,358,-0.2834500000,359,-0.7888150000,360,0.3526470000,361,-0.0157498000,362,-0.0108573000,363,-0.3190650000,364,-0.0747498000,365,-0.8104840000,366,0.6711420000,367,0.1771480000,368,0.0020961400,369,1.1331200000,370,-0.2249720000,371,0.0584030000,372,0.0962211000,373,0.1251520000,374,0.0334122000,375,0.2762030000,376,0.0092165400,377,-0.4766630000,378,-0.0283786000,379,-0.0664494000,380,-0.5631680000,381,0.0346270000,382,0.0050508400,383,0.0375114000,384,-0.0159455000,385,0.7271760000,386,0.7212330000,387,0.6008930000,388,-0.3594770000,389,-0.0408295000,390,0.4748330000,391,-0.1351230000,392,0.0408034000,393,-0.1357580000,394,0.9434340000,395,0.4595860000,396,1.6102000000,397,0.2005970000,398,-0.7825330000,399,-0.1120420000,400,-0.0756627000,401,0.3987620000,402,0.0306558000,403,-0.9827380000,404,0.2284530000 +248,0,0.0957012000,453,-1.0000000000,355,-0.6227730000,356,-0.1745820000,357,0.0587423000,358,0.2803810000,359,0.0551776000,360,-0.0295380000,361,-0.8156020000,362,-0.1779580000,363,0.0345794000,364,0.1133930000,365,-0.0338753000,366,-0.1289510000,367,-0.0398014000,368,0.1927030000,369,-0.1167370000,370,-0.4684260000,371,0.3431370000,372,-0.4178760000,373,0.0048696000,374,-0.0514056000,375,-0.1962360000,376,-1.0382000000,377,0.1534260000,378,0.0069666400,379,0.0587793000,380,-0.2964950000,381,-0.6969870000,382,-0.7751760000,383,-0.6020950000,384,-0.0108400000,385,0.0696410000,386,-0.1282920000,387,-0.4517250000,388,-0.0951998000,389,-0.0211334000,390,-0.9933200000,391,-0.0065429100,392,0.0388621000,393,0.2945300000,394,-0.8601560000,395,-0.2451990000,396,0.0405506000,397,-0.0057899600,398,0.1722820000,399,-0.1066310000,400,-0.1357120000,401,-0.0878625000,402,0.0011815400,403,0.4422670000,404,-0.7382920000 +249,0,-0.1325890000,454,-1.0000000000,355,0.2016820000,356,1.0058000000,357,-0.2367940000,358,-0.4418540000,359,0.2934920000,360,-0.6294620000,361,-0.0793124000,362,-0.5885720000,363,-0.9194750000,364,0.4510750000,365,0.0607055000,366,-1.2610600000,367,0.1343270000,368,-0.2524810000,369,0.7758880000,370,0.2977030000,371,-0.0188455000,372,-0.2124660000,373,0.2363210000,374,0.0093137100,375,-0.0180789000,376,-0.1852640000,377,-0.2562280000,378,-0.0149686000,379,0.0012171100,380,0.3343520000,381,0.0507463000,382,0.1080490000,383,0.2301800000,384,-0.0151422000,385,0.4654490000,386,-0.3198490000,387,0.4760110000,388,-0.1454540000,389,0.0029634700,390,-0.2303280000,391,-0.3931640000,392,0.2052450000,393,0.4915690000,394,0.8597380000,395,-0.1892490000,396,1.6467200000,397,-0.3300700000,398,0.3729200000,399,0.8812570000,400,0.0197256000,401,0.4550040000,402,0.0127330000,403,0.2243180000,404,0.9906790000 +250,0,-0.0541178000,505,-1.0000000000,455,0.0577040000,456,-0.0073826500,457,-0.1343340000,458,-0.1038580000,459,-0.0432697000,460,-0.0459085000,461,-0.0370416000,462,0.0277299000,463,0.0128106000,464,-0.1526130000,465,-0.0781902000,466,-0.0590907000,467,-0.5700080000,468,0.0830571000,469,0.0325387000,470,-0.0144731000,471,-0.0797519000,472,0.0170731000,473,-0.0074965200,474,0.0160110000,475,0.0385378000,476,-0.1772020000,477,-0.0393454000,478,0.0329516000,479,0.0298125000,480,0.0540447000,481,-0.0365310000,482,-0.0155163000,483,-0.1162280000,484,-0.0258216000,485,0.0453148000,486,0.0556529000,487,-0.0486794000,488,-0.0579080000,489,-0.1567760000,490,0.0204766000,491,-0.0064210200,492,-0.0193800000,493,-0.0614138000,494,0.0497325000,495,0.0381852000,496,0.0356512000,497,-0.0555967000,498,0.0100725000,499,0.1165950000,500,-0.0555249000,501,-0.0836394000,502,0.0030545700,503,-0.0190369000,504,-0.1205920000 +251,0,0.0298637000,506,-1.0000000000,455,-0.0215492000,456,-0.0434190000,457,-0.0328821000,458,-0.0447627000,459,0.0150750000,460,-0.0340600000,461,-0.0385561000,462,0.0201959000,463,-0.0394183000,464,-0.0160566000,465,-0.0166179000,466,0.0365967000,467,0.0324909000,468,0.0047159700,469,-0.0073491600,470,-0.0007623520,471,0.0001602640,472,0.0077708300,473,0.0218236000,474,-0.0425232000,475,0.0357868000,476,-0.0153539000,477,-0.0393239000,478,-0.0336032000,479,-0.0026077500,480,-0.0075075500,481,-0.0155861000,482,-0.0391034000,483,-0.0229576000,484,0.0440619000,485,-0.0502013000,486,-0.0512596000,487,0.0371178000,488,-0.0518580000,489,-0.0000283971,490,0.0425400000,491,0.0186403000,492,0.0162873000,493,0.0258766000,494,0.0395296000,495,0.0245961000,496,-0.0350494000,497,-0.0471259000,498,-0.0406750000,499,0.0039239300,500,-0.0352558000,501,-0.0504560000,502,-0.0326145000,503,-0.0516823000,504,-0.0451643000 +252,0,0.3050450000,507,-1.0000000000,455,-0.6751300000,456,0.2180950000,457,-0.5358040000,458,0.0588775000,459,-0.0330385000,460,0.0894796000,461,-0.0396137000,462,0.6108990000,463,-0.2933280000,464,0.2919730000,465,0.1772820000,466,-0.3550920000,467,0.2484780000,468,-0.0022215800,469,-0.0461047000,470,0.8275180000,471,0.1799860000,472,-0.3633380000,473,-0.0235678000,474,-0.0632730000,475,0.8385240000,476,-0.2271870000,477,-0.0940113000,478,0.0225331000,479,-0.1427470000,480,0.2410760000,481,-0.9338120000,482,-0.1276590000,483,0.1197030000,484,-0.0305801000,485,-0.2498750000,486,0.6506290000,487,-0.3882400000,488,-0.0968402000,489,0.5609110000,490,0.3092880000,491,0.2567470000,492,-0.3990080000,493,0.4474270000,494,-0.1162440000,495,0.0420344000,496,-0.3505300000,497,0.3261170000,498,0.0263226000,499,-0.1355980000,500,-0.2147340000,501,0.0104887000,502,0.0400790000,503,-0.7549300000,504,0.1659480000 +253,0,0.0456323000,508,-1.0000000000,455,0.0158093000,456,-0.0504423000,457,0.0009971510,458,0.0068991900,459,-0.0188386000,460,0.0116822000,461,-0.0462983000,462,0.0379600000,463,-0.0531216000,464,-0.0342920000,465,-0.0280527000,466,-0.0318711000,467,0.0441009000,468,0.0250568000,469,-0.0516086000,470,0.0008000400,471,-0.0095128300,472,-0.0373143000,473,0.0462133000,474,-0.0126806000,475,-0.0050192700,476,0.0098914600,477,-0.0094610100,478,-0.0459333000,479,0.0041512600,480,0.0334176000,481,-0.0152521000,482,0.0155555000,483,0.0104837000,484,-0.0398539000,485,-0.0037913800,486,-0.0486685000,487,0.0335981000,488,-0.0401521000,489,0.0201816000,490,-0.0078758600,491,0.0261169000,492,-0.0018368300,493,-0.0449791000,494,0.0273995000,495,-0.0212983000,496,-0.0228279000,497,-0.0472404000,498,0.0056784400,499,0.0205665000,500,0.0230990000,501,-0.0068370800,502,0.0283385000,503,0.0450104000,504,-0.0021975200 +254,0,0.9121240000,509,-1.0000000000,455,0.0342949000,456,0.3434420000,457,0.8356750000,458,0.2025520000,459,-0.4449270000,460,-0.2350890000,461,0.0336746000,462,0.0295101000,463,-0.1661670000,464,0.4453970000,465,-0.2601720000,466,0.1454350000,467,1.5207700000,468,-0.4389820000,469,0.1285740000,470,-0.0297217000,471,0.8215730000,472,0.0898873000,473,-0.0463093000,474,0.1114570000,475,0.8979390000,476,-0.7781270000,477,-0.5720920000,478,0.1671750000,479,0.2742270000,480,0.2963320000,481,-0.0277124000,482,0.1247510000,483,0.7071150000,484,0.0035366600,485,0.2458970000,486,0.1688930000,487,-0.0976490000,488,-0.0160598000,489,-0.2302400000,490,0.1433720000,491,0.7542030000,492,0.0441639000,493,-0.1906590000,494,-0.0214446000,495,0.4472420000,496,0.1648090000,497,0.5273850000,498,-0.0392592000,499,0.0233504000,500,0.2332510000,501,-0.0057370900,502,0.2688090000,503,0.7825630000,504,0.2532720000 +255,0,0.3836030000,510,-1.0000000000,455,-0.0499038000,456,-0.1275180000,457,0.1835330000,458,0.1116160000,459,-0.1261550000,460,-0.0813031000,461,0.0396419000,462,0.0084957600,463,-0.0377499000,464,-0.0800296000,465,0.1925690000,466,0.1994490000,467,0.3445820000,468,-0.1675430000,469,0.1454670000,470,0.1981760000,471,0.0873307000,472,-0.1105910000,473,0.0184326000,474,0.0666761000,475,0.3023950000,476,-0.4013740000,477,-0.2869410000,478,-0.2263080000,479,0.0976706000,480,-0.1381270000,481,-0.0407761000,482,-0.0443311000,483,0.1901620000,484,0.0275261000,485,0.0389396000,486,-0.1329910000,487,0.0444065000,488,-0.0310783000,489,-0.0357617000,490,0.2671800000,491,0.1726060000,492,-0.1743820000,493,-0.0888596000,494,0.0199845000,495,0.1211990000,496,0.0335067000,497,0.2606720000,498,0.0218485000,499,-0.0765420000,500,-0.0383199000,501,0.0192945000,502,0.1019170000,503,-0.0444034000,504,0.2403480000 +256,0,1.2402600000,511,-1.0000000000,455,0.5362020000,456,0.5166510000,457,-0.2454130000,458,0.4752490000,459,-0.7452600000,460,-0.4233230000,461,-0.0440459000,462,0.7162860000,463,-0.0891640000,464,0.0659656000,465,-0.0345448000,466,0.1116970000,467,2.2122200000,468,0.0406903000,469,-0.0988658000,470,0.6764440000,471,0.9449710000,472,1.1448000000,473,-0.0095339400,474,0.4639780000,475,0.5315820000,476,-0.4385950000,477,0.0538484000,478,0.1684470000,479,0.0522012000,480,-0.9298360000,481,-0.8771390000,482,-0.1186150000,483,-0.1347240000,484,-0.0541523000,485,-0.1688400000,486,-0.8575050000,487,0.0106062000,488,-0.1164930000,489,-0.1718480000,490,0.3488800000,491,0.0889550000,492,-0.0668427000,493,0.0461445000,494,-0.0718594000,495,0.0711247000,496,0.9495660000,497,-0.5713030000,498,-0.0082878600,499,-0.0986880000,500,1.1966400000,501,-0.0301504000,502,1.1845300000,503,1.5356100000,504,0.6585130000 +257,0,-0.0382174000,512,-1.0000000000,455,-0.1232190000,456,0.0074442700,457,-0.0911562000,458,-0.9564070000,459,-0.0038163700,460,-0.0035147200,461,-0.0125591000,462,-0.1624000000,463,-0.0106729000,464,0.0162049000,465,-0.0219300000,466,-0.0183598000,467,0.7343620000,468,-0.0278433000,469,-0.0414357000,470,-0.1130240000,471,-1.0879600000,472,0.0709054000,473,0.0099409700,474,0.0122167000,475,-0.4382540000,476,-0.0022302700,477,0.0030864100,478,0.0124166000,479,-0.0067777300,480,-0.1232880000,481,-0.2011450000,482,-0.0310673000,483,-0.2525810000,484,0.0283426000,485,0.0408125000,486,0.0366140000,487,-0.1316530000,488,-0.0390508000,489,0.0141469000,490,0.0297554000,491,0.0348780000,492,-0.0696614000,493,0.1776620000,494,0.0133412000,495,-0.0484351000,496,0.0236350000,497,-0.0710634000,498,0.0514860000,499,0.0135478000,500,-0.1718470000,501,-0.0143929000,502,-0.1646210000,503,-0.1118110000,504,-0.0765225000 +258,0,0.0033715500,513,-1.0000000000,455,-0.1385290000,456,0.0205275000,457,-0.1219800000,458,-0.0096599000,459,-0.1026920000,460,-0.0254839000,461,0.0014387600,462,-0.2825950000,463,0.0240113000,464,-0.0435168000,465,0.0309210000,466,-0.0703970000,467,-0.7861500000,468,0.0645795000,469,-0.0010883900,470,-0.1140210000,471,0.0101450000,472,0.0513695000,473,0.0385039000,474,-0.0178778000,475,-0.8123680000,476,-0.1563540000,477,-0.5733630000,478,-0.0251776000,479,0.0366000000,480,0.4599250000,481,-0.6490680000,482,-0.1131860000,483,-0.2613250000,484,0.0139858000,485,-0.1755490000,486,-0.0982225000,487,-0.2410380000,488,0.0154777000,489,-0.2505180000,490,-0.0143417000,491,0.1198560000,492,-0.0390677000,493,0.0001882520,494,0.1471030000,495,-0.7524480000,496,-1.8616800000,497,-0.1430750000,498,-0.0117586000,499,-0.0653783000,500,-0.2600060000,501,-0.0545656000,502,-0.2274440000,503,-0.6727610000,504,-0.1275530000 +259,0,-0.7082970000,514,-1.0000000000,455,-0.7738170000,456,-3.4105900000,457,-2.6102900000,458,-1.2059000000,459,-0.3174090000,460,-1.3011400000,461,0.0342351000,462,-1.5270500000,463,0.0477174000,464,-0.8048300000,465,-0.4697860000,466,-0.5119210000,467,-0.1648890000,468,-0.3269330000,469,0.3631850000,470,0.8291900000,471,-0.2264230000,472,-1.6049600000,473,0.0233049000,474,0.1354310000,475,-2.4337400000,476,-0.9426870000,477,-0.5841070000,478,0.5287280000,479,-1.1595700000,480,-0.8940450000,481,-2.1781500000,482,-0.0250293000,483,-1.3497900000,484,-0.0083803200,485,-2.6036800000,486,1.1947000000,487,-0.4830050000,488,-1.7939900000,489,-1.9958400000,490,-3.0441700000,491,-0.5718120000,492,-0.7734880000,493,0.2345650000,494,-0.0771600000,495,-0.1435710000,496,-2.5582800000,497,-2.2503300000,498,0.0496247000,499,-1.0401700000,500,-0.5783370000,501,-0.0103560000,502,-0.1447310000,503,0.4841230000,504,-0.0039603200 +260,0,0.0424785000,515,-1.0000000000,455,-0.0395971000,456,-0.0411398000,457,-0.0370298000,458,-0.0362776000,459,-0.0068575900,460,0.0202650000,461,-0.0110091000,462,-0.0327868000,463,0.0146893000,464,-0.0268576000,465,0.0103281000,466,-0.0395705000,467,0.0090077300,468,0.0223223000,469,-0.0090886900,470,0.0071346700,471,0.0446219000,472,0.0011804500,473,0.0237508000,474,-0.0473060000,475,-0.0022099400,476,-0.0376958000,477,-0.0114536000,478,0.0302743000,479,-0.0084563400,480,-0.0265280000,481,0.0124248000,482,-0.0226687000,483,0.0011631600,484,0.0360352000,485,0.0343039000,486,0.0126165000,487,0.0410567000,488,-0.0285903000,489,0.0285594000,490,-0.0447593000,491,0.0124610000,492,0.0182099000,493,-0.0130769000,494,-0.0113656000,495,-0.0169945000,496,-0.0447975000,497,-0.0419649000,498,0.0119111000,499,-0.0342214000,500,-0.0352668000,501,-0.0455716000,502,0.0412009000,503,0.0306167000,504,-0.0077457800 +261,0,0.4639950000,516,-1.0000000000,455,0.3453820000,456,0.1549810000,457,-0.2470890000,458,0.0599567000,459,-0.1962700000,460,0.1331650000,461,0.0417153000,462,-0.2532260000,463,-0.1279630000,464,-0.0561478000,465,0.3080290000,466,-0.0797246000,467,0.4310320000,468,-0.3333760000,469,0.1270530000,470,0.3987410000,471,0.4748840000,472,0.0922377000,473,0.0213835000,474,-0.0201384000,475,0.2089900000,476,-0.2314690000,477,-0.5601650000,478,0.4436270000,479,0.2586660000,480,-0.2980170000,481,-0.0192448000,482,-0.2326190000,483,0.0736587000,484,0.0312017000,485,0.3666060000,486,-0.0168158000,487,-0.1026170000,488,0.0800761000,489,-0.2177550000,490,0.0035390100,491,0.1295220000,492,0.2347540000,493,0.4116620000,494,-0.3212780000,495,0.2829690000,496,0.1862750000,497,0.4049000000,498,-0.0092469400,499,0.0027899700,500,0.0724721000,501,0.0098814800,502,-0.1606810000,503,-0.1344690000,504,0.2197970000 +262,0,0.0483019000,517,-1.0000000000,455,0.0025658200,456,-0.0255078000,457,-0.0188949000,458,-0.0077688500,459,-0.0130308000,460,0.0208679000,461,0.0074316200,462,0.0192896000,463,0.0191146000,464,-0.0363350000,465,-0.0029809500,466,0.0325135000,467,0.0396749000,468,-0.0361056000,469,-0.0487983000,470,0.0014404500,471,0.0349846000,472,0.0368883000,473,0.0225398000,474,-0.0469804000,475,0.0276495000,476,-0.0021065000,477,-0.0249894000,478,-0.0449258000,479,-0.0476400000,480,0.0192374000,481,-0.0327944000,482,0.0155446000,483,-0.0423606000,484,-0.0243988000,485,-0.0189038000,486,-0.0331649000,487,-0.0421398000,488,-0.0392002000,489,-0.0006950190,490,-0.0378513000,491,0.0174035000,492,-0.0119456000,493,-0.0336818000,494,-0.0283671000,495,0.0233694000,496,-0.0000221493,497,-0.0194853000,498,-0.0377087000,499,0.0073956200,500,0.0125219000,501,0.0187896000,502,-0.0472477000,503,0.0292288000,504,0.0127243000 +263,0,0.4792160000,518,-1.0000000000,455,0.4999160000,456,0.1607340000,457,0.4280870000,458,0.4058790000,459,-0.9077370000,460,-1.1030600000,461,-0.0358093000,462,0.0807007000,463,-0.0256050000,464,0.3342920000,465,0.3118940000,466,-0.0444303000,467,0.7299320000,468,-0.5041500000,469,0.1105180000,470,0.6247270000,471,0.3240540000,472,-1.9494400000,473,0.0220236000,474,-0.4099660000,475,1.1429100000,476,-0.1189920000,477,-0.9581040000,478,0.6117160000,479,0.6145540000,480,0.5899130000,481,-0.6473670000,482,-0.4384530000,483,-0.0042221100,484,0.0017267100,485,-0.2885560000,486,0.2694090000,487,-0.1265200000,488,-0.0517679000,489,-1.2802600000,490,-0.7732470000,491,0.5555670000,492,-1.4199600000,493,-0.1270700000,494,-0.0082146500,495,-0.1938580000,496,1.1854000000,497,-1.0173800000,498,0.0273810000,499,-1.9433900000,500,-0.1476940000,501,-0.0117035000,502,-0.0847268000,503,-0.1474620000,504,0.1673020000 +264,0,-0.0751053000,519,-1.0000000000,455,-0.7846380000,456,-1.8784100000,457,-2.9630300000,458,-0.0497611000,459,-2.0503900000,460,-0.6744720000,461,-0.0438481000,462,-0.4500230000,463,0.0033034000,464,-0.0695502000,465,-1.9503100000,466,-1.1185700000,467,0.6799920000,468,-1.4103500000,469,-0.2957210000,470,-1.8265200000,471,0.7433970000,472,-0.4511590000,473,0.0484305000,474,-1.9848400000,475,0.6161910000,476,-0.1918840000,477,-0.5539690000,478,-0.5338560000,479,-0.2484470000,480,0.8375690000,481,0.2930280000,482,-0.9642070000,483,-0.6076960000,484,0.0002490690,485,-0.2283090000,486,0.6835760000,487,-0.6856720000,488,0.3590940000,489,-1.4244000000,490,0.3768080000,491,0.1150270000,492,-4.4538600000,493,0.1258350000,494,-0.0323629000,495,-0.6558340000,496,-0.6789720000,497,-2.4560000000,498,0.0107741000,499,-1.1866700000,500,0.9076310000,501,-0.0292209000,502,0.0476639000,503,-0.2925410000,504,-0.6881500000 +265,0,0.0531925000,520,-1.0000000000,455,-0.0497695000,456,-0.0166771000,457,0.0138294000,458,0.0425462000,459,-0.0118771000,460,-0.0054274500,461,-0.0221189000,462,-0.0382205000,463,0.0055635700,464,-0.0188027000,465,-0.0095692300,466,0.0106746000,467,0.0202484000,468,0.0155588000,469,0.0361142000,470,-0.0420337000,471,-0.0037852100,472,-0.0149980000,473,0.0427770000,474,-0.0310050000,475,0.0102004000,476,-0.0100191000,477,-0.0286963000,478,-0.0395773000,479,-0.0164481000,480,0.0248682000,481,0.0060336700,482,0.0203410000,483,0.0095670000,484,0.0338670000,485,0.0181431000,486,0.0056141300,487,-0.0033937700,488,-0.0206935000,489,0.0317489000,490,-0.0303186000,491,0.0038069200,492,-0.0474671000,493,-0.0098476400,494,0.0089498700,495,0.0234466000,496,-0.0364419000,497,-0.0015297800,498,0.0411309000,499,-0.0300479000,500,0.0089961800,501,0.0049913800,502,0.0200481000,503,0.0398135000,504,-0.0366983000 +266,0,-0.1580640000,521,-1.0000000000,455,0.1837710000,456,-1.0811700000,457,-4.8598500000,458,-0.5421640000,459,-0.1126980000,460,-1.8844700000,461,-0.0107272000,462,0.0313103000,463,-0.0098296900,464,-0.7370770000,465,-0.2474260000,466,-0.6194750000,467,0.1911190000,468,-2.1590200000,469,0.0130990000,470,-0.5948980000,471,-0.1385600000,472,-0.3818120000,473,-0.0106306000,474,-1.4275600000,475,-1.0087700000,476,-0.0640664000,477,-0.0938432000,478,-0.1822690000,479,-0.2358030000,480,0.0384997000,481,-0.4841180000,482,-0.0060509300,483,-0.8408560000,484,-0.0464401000,485,-0.4645360000,486,0.4040990000,487,-0.2624790000,488,-0.9603640000,489,-1.1288800000,490,0.1205810000,491,-0.6920940000,492,-0.7876210000,493,0.1941780000,494,0.0045897100,495,-1.3389500000,496,-0.1860520000,497,-1.7001000000,498,-0.0151619000,499,0.1424970000,500,0.3798110000,501,-0.0156151000,502,-1.3629000000,503,-0.3228180000,504,0.1751470000 +267,0,0.0637236000,522,-1.0000000000,455,-0.0249733000,456,-0.0288294000,457,-0.0209150000,458,-0.0358355000,459,-0.0012489000,460,0.0250816000,461,-0.0490935000,462,0.0462303000,463,-0.0003292090,464,0.0064581400,465,-0.0489423000,466,-0.0102217000,467,-0.0243625000,468,-0.0281872000,469,0.0106215000,470,-0.0126671000,471,0.0221657000,472,0.0090480300,473,-0.0398161000,474,-0.0477378000,475,0.0312956000,476,0.0114817000,477,-0.0035216900,478,-0.0213973000,479,-0.0444293000,480,-0.0401198000,481,0.0220759000,482,0.0172773000,483,-0.0517863000,484,0.0440777000,485,0.0164107000,486,0.0091727400,487,0.0225815000,488,-0.0229145000,489,-0.0178026000,490,-0.0055144300,491,-0.0266206000,492,-0.0510606000,493,0.0378272000,494,-0.0426683000,495,-0.0105731000,496,0.0190314000,497,0.0325959000,498,-0.0533584000,499,0.0142581000,500,0.0174491000,501,0.0013150500,502,0.0410742000,503,0.0046883700,504,0.0403554000 +268,0,-0.0074259700,523,-1.0000000000,455,0.1150970000,456,-0.0666945000,457,-0.1059550000,458,0.2437480000,459,-1.5507300000,460,-0.0880685000,461,-0.0430428000,462,-0.1760250000,463,-0.7394350000,464,-0.0217922000,465,-0.0289257000,466,-0.0846071000,467,1.5682700000,468,0.0268447000,469,-0.1781660000,470,0.0119150000,471,0.4201850000,472,0.0852535000,473,0.0078259200,474,0.0320835000,475,-0.2062740000,476,-0.3125700000,477,0.0393124000,478,0.0517698000,479,0.1804710000,480,0.1417890000,481,-0.1425290000,482,-0.2126370000,483,-0.1831800000,484,0.0505303000,485,0.0086353400,486,0.0528098000,487,-0.0473200000,488,0.1012260000,489,0.1018330000,490,0.0440882000,491,0.0391773000,492,-0.0416891000,493,0.0757191000,494,0.0727524000,495,0.0024785300,496,0.1319130000,497,-0.0258641000,498,-0.0090084200,499,-0.1419440000,500,0.3168050000,501,-0.3648800000,502,-0.0948861000,503,0.1724810000,504,-0.2842540000 +269,0,0.2370560000,524,-1.0000000000,455,0.4810710000,456,-0.4690720000,457,-0.0211083000,458,0.1004310000,459,-0.0705937000,460,-0.2912950000,461,-0.0053235600,462,0.7255620000,463,-0.1413330000,464,0.3358790000,465,0.0568255000,466,-0.0269906000,467,0.3798930000,468,-0.1600330000,469,0.2769270000,470,0.4672040000,471,-0.9480040000,472,0.1683420000,473,-0.0052582600,474,-0.1524410000,475,-0.0232953000,476,-0.0960236000,477,-0.0514204000,478,0.2999890000,479,0.0260169000,480,0.3887200000,481,-0.5434910000,482,-0.2099800000,483,0.1207340000,484,0.0482477000,485,0.4475780000,486,0.2648470000,487,-0.0322128000,488,-0.0172175000,489,0.0882974000,490,0.4608130000,491,0.0374416000,492,0.0471373000,493,-0.1651700000,494,-0.0847862000,495,-0.0541183000,496,0.2228400000,497,-0.0868301000,498,-0.0104910000,499,-0.1115240000,500,-0.2144520000,501,-0.0472552000,502,0.0988140000,503,0.0807744000,504,0.0093450300 +270,0,0.7746970000,525,-1.0000000000,455,-0.4669490000,456,0.8293300000,457,-0.9895520000,458,0.3652020000,459,-0.2499020000,460,0.5217870000,461,-0.0426950000,462,0.0240250000,463,-0.0440122000,464,-0.2027900000,465,0.1337790000,466,0.0800613000,467,-0.0081063400,468,-0.5851420000,469,-0.0722641000,470,0.4609410000,471,-0.1229410000,472,0.4702640000,473,-0.0280492000,474,-0.2931560000,475,0.0019018200,476,-0.3900560000,477,-0.5906440000,478,-0.7746520000,479,0.0234333000,480,-0.5256170000,481,0.6314670000,482,0.0178692000,483,0.2491350000,484,0.0136536000,485,-0.0099927000,486,0.6825180000,487,-0.1424430000,488,-0.0756731000,489,0.3475770000,490,-0.2686420000,491,0.7302600000,492,0.4324150000,493,0.2401050000,494,-0.1337820000,495,0.2555910000,496,0.8135930000,497,0.7370790000,498,0.0348765000,499,0.4590590000,500,-0.2508600000,501,-0.0666974000,502,-0.6774400000,503,-0.3345990000,504,-0.1968620000 +271,0,-0.0006590870,526,-1.0000000000,455,-0.0890955000,456,-0.0454507000,457,0.0352861000,458,-0.1748750000,459,-0.0459080000,460,0.0034395000,461,-0.0009002080,462,-0.0255045000,463,-0.0446544000,464,0.0383439000,465,-0.0087747200,466,0.0197913000,467,0.0241021000,468,-0.0961144000,469,-0.0102139000,470,0.0008817840,471,-0.1285160000,472,0.0483130000,473,-0.0169405000,474,-0.0090470800,475,0.1055470000,476,-0.0031078500,477,-0.0957252000,478,0.0238191000,479,-0.0121093000,480,-0.0244003000,481,-0.1296340000,482,0.0077944300,483,0.0728414000,484,0.0145734000,485,-0.0096470500,486,-0.0172108000,487,0.0257127000,488,-0.0288898000,489,-0.0229729000,490,-0.0489433000,491,-0.0613517000,492,-0.0005605320,493,0.0619550000,494,-0.1355210000,495,-0.0328659000,496,-0.2344330000,497,-0.0074982200,498,0.0119464000,499,0.0015697500,500,0.0568110000,501,-0.0239912000,502,0.0235385000,503,0.0378846000,504,0.0556153000 +272,0,0.3573320000,527,-1.0000000000,455,-0.5002180000,456,-0.1840960000,457,-1.6530800000,458,-0.0453976000,459,0.0113972000,460,-0.1269180000,461,-0.0225243000,462,0.2807020000,463,0.0544050000,464,0.2696770000,465,0.0567237000,466,0.1558700000,467,-0.3072910000,468,-0.1235450000,469,0.1744540000,470,0.4425110000,471,-0.0785241000,472,-0.9542970000,473,-0.0037398500,474,-0.1590690000,475,-0.0412793000,476,0.1061050000,477,-0.4477890000,478,0.4670180000,479,-0.1387480000,480,-0.0870236000,481,0.1821420000,482,-0.2720520000,483,0.4033550000,484,-0.0271932000,485,0.5563650000,486,-0.0482934000,487,-0.2901690000,488,0.1614170000,489,0.1071980000,490,0.3786970000,491,0.6042420000,492,-0.3939790000,493,0.0248705000,494,0.0211480000,495,0.1902290000,496,-0.3579330000,497,0.0644342000,498,0.0036770000,499,0.0655679000,500,-0.0980906000,501,-0.0008901830,502,-0.0294862000,503,0.2108490000,504,0.2039150000 +273,0,-0.0168765000,528,-1.0000000000,455,0.0460753000,456,0.0093213200,457,-0.0322434000,458,0.0776412000,459,-0.0796209000,460,-0.0057491700,461,0.0249052000,462,0.0829379000,463,-0.0438794000,464,-0.0253922000,465,0.0141843000,466,-0.0216822000,467,0.3686560000,468,-0.0299308000,469,-0.0083525200,470,0.0197801000,471,0.1697730000,472,-0.0060547800,473,0.0114010000,474,0.0093624500,475,-0.0034265000,476,-0.0222335000,477,-0.0150787000,478,0.0010118200,479,0.0611898000,480,0.1208260000,481,0.0769453000,482,-0.0330844000,483,-0.0837426000,484,0.0040054100,485,-0.0319260000,486,0.0722298000,487,-0.0102684000,488,0.0442429000,489,-0.1226990000,490,0.0855793000,491,0.0673942000,492,0.0037398100,493,-0.0785602000,494,-0.0349720000,495,-0.0043774300,496,-0.0849967000,497,0.0127563000,498,-0.0122219000,499,-0.0324939000,500,0.0139563000,501,0.0969720000,502,-0.0250881000,503,0.0398307000,504,-0.1233750000 +274,0,0.0990453000,529,-1.0000000000,455,0.0964084000,456,-0.0668215000,457,-0.0080692500,458,-0.0220197000,459,-0.0170021000,460,0.0049015800,461,0.0252718000,462,0.0836223000,463,-0.0466334000,464,0.0393397000,465,0.0404581000,466,-0.0259011000,467,0.2476030000,468,-0.0823407000,469,0.1580190000,470,-0.0348005000,471,-0.0317427000,472,-0.0378637000,473,-0.0269698000,474,0.0066416800,475,0.1428200000,476,-0.0176799000,477,0.0213323000,478,0.1959860000,479,0.0331511000,480,0.0692503000,481,0.0202883000,482,-0.0302499000,483,0.0324805000,484,-0.0365247000,485,0.1262540000,486,0.0585629000,487,0.0681474000,488,-0.0059715600,489,0.1277350000,490,0.0571562000,491,-0.0276927000,492,-0.0063865000,493,0.1903290000,494,0.0195734000,495,-0.0073318300,496,-0.0320530000,497,-0.0186152000,498,0.0304764000,499,-0.0276722000,500,0.0068515000,501,-0.1914920000,502,0.0195912000,503,0.0399625000,504,-0.0123982000 +275,0,-0.0966739000,530,-1.0000000000,455,0.0289253000,456,-0.0917940000,457,-0.2600300000,458,-0.0061283200,459,-0.5713230000,460,-0.1001080000,461,0.0434403000,462,-0.1533530000,463,-0.0275612000,464,-0.0038438300,465,-0.0542104000,466,-0.5188840000,467,0.0262914000,468,-0.0434439000,469,-0.1507620000,470,-0.0401899000,471,0.1883580000,472,-0.0237053000,473,0.0042297600,474,0.0270683000,475,0.1094290000,476,-0.6852700000,477,-0.2658280000,478,-0.0556364000,479,0.0546212000,480,-0.0833716000,481,0.0213857000,482,0.0041389200,483,-0.0406284000,484,0.0473371000,485,-0.0004469840,486,-0.0558360000,487,-0.1081250000,488,-0.0293062000,489,-0.8374790000,490,0.0025240200,491,0.0176453000,492,-0.0302139000,493,-0.0863336000,494,-0.5948950000,495,0.0534864000,496,-0.8540270000,497,-0.0664110000,498,0.0046496700,499,-0.0116034000,500,0.0959848000,501,-0.0652293000,502,-0.0496857000,503,-0.1922210000,504,-0.1155690000 +276,0,0.0457098000,531,-1.0000000000,455,0.0179952000,456,0.0031991600,457,-0.0725679000,458,0.0088977700,459,-0.0201286000,460,0.0197504000,461,-0.0246879000,462,-0.0025616400,463,0.0198636000,464,-0.0559573000,465,-0.0491752000,466,-0.0042651000,467,-0.0402152000,468,0.0120273000,469,-0.0176744000,470,-0.0549021000,471,0.0216886000,472,-0.0333278000,473,0.0044868500,474,-0.0180474000,475,0.0115667000,476,0.0039399800,477,-0.0156080000,478,0.0090058700,479,0.0079492500,480,0.0152076000,481,-0.0119711000,482,0.0102667000,483,-0.0309312000,484,-0.0205701000,485,0.0105264000,486,0.0065497400,487,0.0033508800,488,-0.0549033000,489,-0.0126936000,490,-0.0401420000,491,-0.0048187300,492,0.0238296000,493,-0.0004791180,494,0.0160283000,495,0.0117935000,496,-0.0225291000,497,-0.0441924000,498,0.0004100280,499,0.0050023000,500,0.0055154600,501,0.0341175000,502,-0.0284731000,503,-0.0097812700,504,0.0367019000 +277,0,-0.1134050000,532,-1.0000000000,455,0.6504900000,456,-0.1484060000,457,-1.7719500000,458,-1.5136500000,459,-0.6615540000,460,-1.8565200000,461,0.0101588000,462,0.8961180000,463,-0.0437933000,464,-0.8367800000,465,-0.4652210000,466,-0.2832550000,467,-0.2474950000,468,-0.3985220000,469,-0.2298780000,470,-0.3579230000,471,-0.9202490000,472,0.4584350000,473,0.0503911000,474,0.0573907000,475,0.4035850000,476,-2.3754300000,477,-0.1607400000,478,-1.3296800000,479,-0.8821140000,480,-0.1124730000,481,-0.1121230000,482,0.1903170000,483,-0.1211110000,484,-0.0218720000,485,0.0937157000,486,1.7692900000,487,-0.2733870000,488,-0.7952630000,489,-3.2188700000,490,-0.8329290000,491,-0.0831990000,492,-2.3330100000,493,0.5679880000,494,-0.1089580000,495,-0.7009360000,496,0.1638680000,497,-1.3500100000,498,0.0445263000,499,0.6573450000,500,0.9085660000,501,-0.2945030000,502,-0.8163350000,503,0.3784340000,504,0.3007190000 +278,0,-0.1596950000,533,-1.0000000000,455,-0.1007940000,456,-0.4644000000,457,-1.1418500000,458,-0.5079540000,459,-0.6563620000,460,-3.1917600000,461,-0.0007333600,462,-0.4946790000,463,-0.0184155000,464,-1.8051300000,465,-1.0055400000,466,-1.0479000000,467,0.5895850000,468,-0.0048086000,469,0.6329310000,470,-1.2039000000,471,-0.0009838710,472,-1.6098600000,473,-0.0296737000,474,-2.2784900000,475,-2.0561300000,476,-0.4756110000,477,-0.9082840000,478,-0.2922060000,479,-0.4723240000,480,0.2089060000,481,0.0685737000,482,-0.0478944000,483,-1.2400700000,484,-0.0022834100,485,-1.3152900000,486,0.5919070000,487,-0.1306930000,488,-1.3688200000,489,-1.4008900000,490,0.1923090000,491,-0.6667010000,492,-1.4143200000,493,0.4530810000,494,-0.0306243000,495,-0.6735720000,496,-0.0991321000,497,-2.6308500000,498,-0.0103070000,499,0.4903680000,500,0.4189430000,501,-0.0064659300,502,-1.7350300000,503,-0.5504040000,504,-0.4109110000 +279,0,0.1220290000,534,-1.0000000000,455,0.0418979000,456,-0.0355323000,457,-0.0897467000,458,0.0356616000,459,0.0169971000,460,-0.0083030300,461,-0.0134592000,462,0.0648232000,463,-0.0129855000,464,-0.0028982500,465,0.0127020000,466,-0.0103916000,467,0.1553370000,468,0.0540447000,469,0.0283304000,470,0.0923530000,471,0.0533085000,472,-0.0574354000,473,0.0271539000,474,0.0041248100,475,-0.0436464000,476,-0.0587894000,477,-0.0300580000,478,0.0446297000,479,0.0264851000,480,0.0130178000,481,0.0249190000,482,-0.0616482000,483,-0.0825817000,484,-0.0250723000,485,-0.0248133000,486,-0.0408926000,487,0.0554576000,488,-0.0147737000,489,-0.0459319000,490,-0.0085944500,491,0.1815390000,492,0.0430307000,493,-0.0813668000,494,-0.0427935000,495,0.0466885000,496,0.2206750000,497,-0.0304961000,498,-0.0177331000,499,0.0243391000,500,-0.0117745000,501,0.0421738000,502,-0.0130320000,503,0.0118540000,504,-0.0541730000 +280,0,0.2903740000,535,-1.0000000000,455,0.2506440000,456,0.3085990000,457,-0.5704940000,458,0.2916230000,459,0.0003230410,460,-0.2086820000,461,0.0286046000,462,0.4659640000,463,-0.0402260000,464,-0.1981980000,465,0.0250247000,466,-0.0517554000,467,-0.0933427000,468,0.0234879000,469,0.1801840000,470,0.3340430000,471,-0.0816985000,472,-0.3253230000,473,-0.0276881000,474,-0.1901490000,475,-0.5449830000,476,-0.0745880000,477,-0.0404494000,478,0.0465972000,479,-0.2218060000,480,0.2868950000,481,-0.0759712000,482,-0.3881700000,483,0.1021530000,484,0.0355206000,485,-0.0681565000,486,0.1067740000,487,-0.2231070000,488,0.0367469000,489,0.2471960000,490,-0.3396700000,491,-0.0163274000,492,0.0514366000,493,0.0085630400,494,-0.0581186000,495,0.0009037250,496,0.3732470000,497,0.2745440000,498,0.0176485000,499,-0.0711600000,500,0.1147130000,501,-0.0508655000,502,0.1700450000,503,-0.1092870000,504,-0.0748633000 +281,0,0.0639892000,536,-1.0000000000,455,-0.0154352000,456,-0.0050074800,457,0.0014987000,458,-0.0523753000,459,-0.0080986000,460,-0.0266280000,461,0.0419205000,462,0.0121287000,463,-0.0359021000,464,-0.0366883000,465,0.0041175300,466,-0.0256505000,467,-0.0167767000,468,-0.0067721000,469,-0.0428221000,470,-0.0278170000,471,0.0256515000,472,0.0029937700,473,-0.0414931000,474,-0.0598999000,475,-0.0497089000,476,0.0129640000,477,-0.0012720700,478,-0.0536983000,479,-0.0374570000,480,-0.0024789500,481,-0.0157728000,482,-0.0034761600,483,-0.0574509000,484,-0.0362124000,485,0.0273491000,486,-0.0361100000,487,0.0031566100,488,0.0343919000,489,-0.0079606000,490,0.0042556000,491,-0.0501648000,492,-0.0155754000,493,0.0215656000,494,-0.0195473000,495,0.0100482000,496,0.0039751700,497,-0.0464251000,498,0.0089200000,499,0.0294268000,500,0.0344201000,501,0.0055136700,502,0.0157883000,503,-0.0458759000,504,-0.0028583300 +282,0,0.0760120000,537,-1.0000000000,455,0.1071650000,456,-0.0808617000,457,0.0841635000,458,-0.3249130000,459,-0.0631624000,460,-0.0023761000,461,-0.0345480000,462,0.3716290000,463,-0.1725820000,464,-0.2653880000,465,-0.1425140000,466,-0.2559880000,467,0.8998610000,468,-0.0008667820,469,0.1605670000,470,0.0902121000,471,-0.8490500000,472,0.1551640000,473,0.0330201000,474,0.0190847000,475,0.3915950000,476,-0.5197400000,477,-0.2364450000,478,0.0680616000,479,0.1274650000,480,0.0921770000,481,0.1271860000,482,-0.0689797000,483,-0.0340021000,484,0.0285824000,485,0.1227430000,486,0.1150720000,487,-0.2382290000,488,-0.0128203000,489,-0.2169380000,490,0.1957790000,491,0.0737262000,492,-0.0410208000,493,-0.0846532000,494,-0.3717900000,495,0.0405050000,496,-0.0893959000,497,0.0477430000,498,-0.0484701000,499,0.1146330000,500,-0.1830490000,501,0.8699770000,502,0.0160554000,503,-0.0293513000,504,-0.1868360000 +283,0,0.0789670000,538,-1.0000000000,455,0.0439422000,456,-0.0415518000,457,-0.0720617000,458,-0.0562811000,459,-0.0388366000,460,-0.0385276000,461,0.0446515000,462,-0.0020826800,463,0.0267038000,464,-0.0174525000,465,0.0232103000,466,-0.0386075000,467,0.1954820000,468,-0.0507402000,469,-0.0132943000,470,0.0110299000,471,0.2722870000,472,0.0052642000,473,-0.0037997300,474,-0.0861349000,475,-0.0248374000,476,-0.0651798000,477,-0.0164441000,478,-0.0522241000,479,0.0444876000,480,0.0469998000,481,-0.0353002000,482,-0.0403398000,483,0.0649313000,484,0.0009316340,485,0.0430735000,486,-0.0532844000,487,-0.0392579000,488,-0.0749010000,489,0.0343994000,490,0.0372086000,491,-0.0818835000,492,-0.0429565000,493,-0.1219640000,494,-0.0388702000,495,-0.0275668000,496,-0.0010033200,497,-0.1079720000,498,-0.0143385000,499,-0.0746500000,500,-0.0032021200,501,-0.0157707000,502,-0.0306006000,503,-0.0209018000,504,-0.0178423000 +284,0,0.3772700000,539,-1.0000000000,455,0.2933370000,456,-0.0247652000,457,0.3440810000,458,-0.1777910000,459,-0.1083120000,460,-0.1233200000,461,0.0444546000,462,0.2253320000,463,-0.3921450000,464,-0.1992060000,465,-0.3800750000,466,-0.2469080000,467,-0.0193351000,468,0.7699890000,469,-0.0007766170,470,-0.7144820000,471,-0.1651320000,472,0.1302300000,473,0.0424993000,474,0.0541992000,475,1.3973200000,476,-0.6413620000,477,-0.3171300000,478,0.6247180000,479,-0.5083900000,480,-0.9775520000,481,0.6201170000,482,-0.1876260000,483,0.0558657000,484,-0.0377753000,485,-0.0516386000,486,0.7898620000,487,-0.4991140000,488,-0.6371900000,489,-0.4899090000,490,0.3780950000,491,-0.5303080000,492,0.0807186000,493,-0.3314010000,494,-0.0909039000,495,0.4020800000,496,0.9010140000,497,0.4606590000,498,-0.0213694000,499,0.4478280000,500,0.7577440000,501,-0.0036782100,502,0.4489240000,503,1.0551900000,504,-0.1164220000 +285,0,0.0411410000,540,-1.0000000000,455,0.0421493000,456,-0.0013249500,457,-0.0109709000,458,0.0081407500,459,-0.0212576000,460,0.0086619800,461,0.0482235000,462,-0.0399671000,463,0.0032727500,464,-0.0162639000,465,-0.0193345000,466,-0.0064940800,467,-0.0424431000,468,-0.0372719000,469,-0.0441008000,470,0.0432631000,471,-0.0267090000,472,-0.0326785000,473,-0.0141915000,474,-0.0266235000,475,-0.0473062000,476,0.0198871000,477,-0.0380099000,478,0.0223863000,479,-0.0411349000,480,0.0193006000,481,-0.0097801600,482,-0.0432709000,483,0.0148288000,484,-0.0006533440,485,-0.0030172300,486,-0.0307018000,487,-0.0490232000,488,-0.0244414000,489,-0.0194843000,490,0.0311609000,491,-0.0171349000,492,-0.0355644000,493,0.0312239000,494,0.0443300000,495,-0.0273106000,496,-0.0422705000,497,-0.0223754000,498,-0.0125544000,499,-0.0315480000,500,0.0439935000,501,-0.0257749000,502,-0.0055111200,503,-0.0176906000,504,0.0151166000 +286,0,-0.0158232000,541,-1.0000000000,455,0.0655998000,456,-0.0764518000,457,-0.1044790000,458,-0.1080750000,459,-0.0567198000,460,-0.0290544000,461,0.0381746000,462,-0.0526070000,463,-0.0034852800,464,-0.0548997000,465,-0.0573096000,466,-0.1352140000,467,0.1232930000,468,0.0382742000,469,-0.0079280600,470,0.0191029000,471,-0.4392180000,472,0.1084680000,473,0.0154182000,474,0.0307025000,475,0.3953290000,476,-0.1112710000,477,0.0546013000,478,0.0943896000,479,-0.0643284000,480,-0.0913687000,481,0.1923250000,482,-0.3551630000,483,-0.1257170000,484,-0.0369628000,485,-0.0287313000,486,0.3320350000,487,-0.0469716000,488,-0.0991514000,489,-0.0544438000,490,0.0531137000,491,0.0395300000,492,-0.0396448000,493,0.1542990000,494,0.0017794400,495,0.0783404000,496,0.6178990000,497,-0.0624501000,498,-0.0024026000,499,0.0413461000,500,0.0232133000,501,-0.2274890000,502,-0.0159285000,503,0.0664076000,504,0.1195800000 +287,0,0.7603170000,542,-1.0000000000,455,-0.1049500000,456,-0.0902460000,457,-0.5692720000,458,0.0160370000,459,-0.0588113000,460,-0.2269410000,461,0.0181388000,462,0.4315860000,463,-0.1157410000,464,-0.7969950000,465,-0.5700000000,466,0.2904090000,467,-0.3346480000,468,-0.5236450000,469,0.7150910000,470,-0.1728330000,471,-1.6745600000,472,0.5945200000,473,-0.0121518000,474,0.0597256000,475,1.3609600000,476,-0.1720230000,477,0.3552080000,478,0.6727420000,479,-0.0116731000,480,-0.9469410000,481,0.4538830000,482,-0.5548070000,483,0.6750670000,484,0.0456625000,485,1.0302300000,486,0.3585230000,487,-0.4518380000,488,-0.2616020000,489,0.3171220000,490,0.4433810000,491,-0.2175420000,492,0.0461787000,493,0.0948031000,494,-0.0268505000,495,0.0601038000,496,0.7113250000,497,-0.4718030000,498,0.0200231000,499,0.5010090000,500,-0.1461760000,501,-0.0225947000,502,0.0642524000,503,0.4522870000,504,-0.2031990000 +288,0,0.2510150000,543,-1.0000000000,455,0.1670990000,456,-0.0055601300,457,-0.1466840000,458,0.0554427000,459,0.0443881000,460,0.0158187000,461,0.0425522000,462,0.1226120000,463,-0.1990070000,464,0.1594330000,465,-0.0155170000,466,0.0527065000,467,0.0305776000,468,-0.2186760000,469,0.1443290000,470,-0.2556960000,471,0.1224850000,472,-0.0510862000,473,0.0484493000,474,-0.0074578300,475,-0.0035592100,476,-0.0817727000,477,-0.0154862000,478,0.3991120000,479,0.2030750000,480,0.0291412000,481,-0.2601930000,482,0.1117850000,483,0.1064030000,484,0.0188064000,485,0.3699990000,486,0.0387554000,487,-0.0799546000,488,0.1042270000,489,0.0927823000,490,0.1776270000,491,0.1047750000,492,-0.0336509000,493,0.2226440000,494,0.0419823000,495,-0.0593560000,496,0.0031357000,497,0.0935168000,498,-0.0374434000,499,-0.0521358000,500,-0.1048480000,501,-0.0592751000,502,-0.1171590000,503,0.1001640000,504,-0.1538150000 +289,0,-0.0304803000,544,-1.0000000000,455,0.0103763000,456,-0.0027446100,457,-0.0688473000,458,0.0030374100,459,0.0001687190,460,-0.0007316900,461,-0.0111930000,462,0.0648330000,463,-0.0037977900,464,0.0146032000,465,-0.0075617000,466,-0.0096218800,467,-0.1228790000,468,-0.0265014000,469,0.1716920000,470,0.0846450000,471,-0.0610857000,472,0.0828555000,473,0.0457059000,474,0.0019447300,475,-0.0750518000,476,0.0001363920,477,0.0082475400,478,-0.0029657800,479,0.0053391600,480,-0.0196620000,481,-0.0945979000,482,-0.0092572500,483,-0.0347094000,484,-0.0221808000,485,0.0437658000,486,0.0627142000,487,-0.0117386000,488,0.0011242100,489,0.0091348300,490,0.0043390600,491,0.0200372000,492,0.0007863530,493,0.2283310000,494,0.0110688000,495,0.0017848700,496,0.1109510000,497,-0.0094293100,498,-0.0059833500,499,-0.0045764000,500,-0.1857570000,501,-0.0369834000,502,-0.0069503600,503,-0.0987809000,504,-0.0029349400 +290,0,0.0974038000,545,-1.0000000000,455,-0.0361146000,456,-0.1013090000,457,-0.0969389000,458,0.0090420400,459,-0.0400130000,460,-0.0434935000,461,-0.0462394000,462,-0.0074817000,463,-0.0360530000,464,0.0299476000,465,0.0847582000,466,-0.0713831000,467,0.0838504000,468,0.0500593000,469,0.0218830000,470,0.0161302000,471,0.0398927000,472,-0.0101414000,473,0.0136320000,474,0.0239190000,475,0.0311555000,476,-0.0484083000,477,0.0115057000,478,-0.0932818000,479,0.0762313000,480,-0.0249736000,481,-0.0884290000,482,0.0191675000,483,0.0687985000,484,-0.0447193000,485,0.0630844000,486,-0.0599188000,487,-0.1070020000,488,-0.0440448000,489,0.0002890340,490,0.1511180000,491,0.1353210000,492,0.0136801000,493,-0.0411173000,494,-0.0130670000,495,-0.0919827000,496,0.2309110000,497,0.0437670000,498,0.0426247000,499,0.0635911000,500,-0.1068450000,501,-0.0507241000,502,0.0156091000,503,-0.0325254000,504,-0.0753720000 +291,0,0.0386015000,546,-1.0000000000,455,0.0272698000,456,-0.0457742000,457,-0.0125086000,458,0.0296111000,459,0.0122359000,460,0.0151966000,461,-0.0004499190,462,0.0199563000,463,-0.0070858100,464,-0.0009192590,465,-0.0095546000,466,-0.0528868000,467,-0.0455358000,468,0.0018772200,469,-0.0008432120,470,-0.0013028500,471,-0.0153426000,472,-0.0445338000,473,-0.0212284000,474,-0.0117554000,475,0.0488241000,476,-0.0440613000,477,-0.0135952000,478,-0.0116872000,479,0.0000811360,480,0.0048681700,481,-0.0460284000,482,0.0034211800,483,0.0443359000,484,0.0220547000,485,-0.0361627000,486,-0.0190923000,487,-0.0239868000,488,0.0003738220,489,-0.0129825000,490,0.0140720000,491,-0.0112911000,492,0.0084552300,493,-0.0317872000,494,-0.0267560000,495,-0.0056377200,496,-0.0338319000,497,-0.0344150000,498,0.0255941000,499,-0.0316341000,500,-0.0318330000,501,-0.0232074000,502,0.0314964000,503,0.0355296000,504,-0.0498726000 +292,0,-0.0503860000,547,-1.0000000000,455,0.0263797000,456,-0.1614780000,457,0.0000503043,458,-0.0465607000,459,-0.0080403100,460,-0.0062374800,461,0.0498428000,462,-0.0611311000,463,-0.1834620000,464,0.0102979000,465,-0.0229994000,466,-0.0202960000,467,-0.4386970000,468,-0.0709986000,469,-0.0807950000,470,-0.0692864000,471,-0.0203532000,472,-0.6467840000,473,-0.0035265500,474,0.0054453800,475,0.2007050000,476,0.0167685000,477,-0.1810420000,478,-0.0663633000,479,-0.0154775000,480,-0.1345280000,481,-0.0343727000,482,0.0017490300,483,0.0817375000,484,0.0071470400,485,-0.0177731000,486,-0.1637900000,487,-0.0145082000,488,-0.0149666000,489,-0.0220280000,490,-0.0524083000,491,-0.0332372000,492,0.0047082000,493,0.1303780000,494,-0.3289430000,495,0.0195698000,496,-0.2062190000,497,-0.0080240800,498,-0.0333354000,499,-0.0892172000,500,0.1304530000,501,0.7066140000,502,0.0095967600,503,-0.1756020000,504,0.0607814000 +293,0,-0.0541021000,548,-1.0000000000,455,0.0588762000,456,0.0755575000,457,-0.1981270000,458,0.1146320000,459,-0.0058642900,460,0.0200180000,461,-0.0481042000,462,0.0305843000,463,0.0027670500,464,0.1339360000,465,0.0007712870,466,-0.0174185000,467,-0.5037000000,468,-0.0143393000,469,-0.2936350000,470,-0.1203840000,471,0.1531040000,472,-0.0461015000,473,-0.0368018000,474,0.0059792100,475,-0.1224310000,476,-0.0066091300,477,-0.0027779000,478,0.0808596000,479,-0.0589050000,480,0.0474645000,481,0.2339470000,482,0.0013285500,483,0.0602501000,484,-0.0034490800,485,0.2437480000,486,-0.2818070000,487,-0.0720970000,488,0.0094364300,489,-0.0064169600,490,-0.1709950000,491,-0.0719360000,492,-0.0002092870,493,-0.2378960000,494,0.0322228000,495,0.0304711000,496,0.0236334000,497,-0.0268217000,498,-0.0319945000,499,-0.0176553000,500,0.0988920000,501,-0.1516160000,502,0.0269286000,503,0.2393310000,504,-0.0148634000 +294,0,0.0353529000,549,-1.0000000000,455,-0.0493639000,456,-0.0029650100,457,0.0091246200,458,0.0436321000,459,-0.0514624000,460,-0.0231478000,461,0.0448542000,462,0.0370497000,463,-0.0243765000,464,-0.0484305000,465,-0.0072389100,466,-0.0133417000,467,0.0184084000,468,-0.0711460000,469,0.0348236000,470,0.0050817700,471,-0.0108833000,472,-0.0087439100,473,-0.0479121000,474,-0.0244089000,475,0.0433550000,476,0.0062554100,477,-0.0266917000,478,-0.0382884000,479,0.0198381000,480,-0.0165155000,481,0.0047908900,482,-0.0005375320,483,0.0366563000,484,-0.0173193000,485,-0.0160638000,486,0.0149107000,487,0.0068622600,488,-0.0449970000,489,-0.0349824000,490,-0.0446397000,491,-0.0380766000,492,0.0132565000,493,-0.0240288000,494,0.0094709600,495,-0.0438448000,496,0.0370008000,497,-0.0282111000,498,-0.0428258000,499,-0.0202906000,500,0.0198027000,501,-0.0332871000,502,0.0287617000,503,-0.0049848700,504,0.0219216000 +295,0,0.2688390000,550,-1.0000000000,455,-0.1590530000,456,-0.1330740000,457,-0.1995550000,458,0.0769106000,459,-0.2432450000,460,-0.0397945000,461,-0.0490970000,462,-0.2709240000,463,-0.1492020000,464,0.1597880000,465,-0.3946430000,466,-0.2801910000,467,0.9288950000,468,-0.2660400000,469,0.1681910000,470,0.1210320000,471,0.5318210000,472,0.1270420000,473,-0.0372580000,474,0.1147780000,475,-0.4657970000,476,0.0763387000,477,0.0837150000,478,0.4708590000,479,0.0514763000,480,-0.0239218000,481,-0.0910602000,482,-0.4976070000,483,-0.1704650000,484,0.0243618000,485,0.4965240000,486,-0.2298760000,487,-0.2172990000,488,-0.1245200000,489,-0.2333040000,490,0.7317350000,491,0.1669240000,492,0.1875500000,493,0.2918710000,494,-0.1226040000,495,-0.1289470000,496,-0.7311590000,497,-0.3937860000,498,0.0278948000,499,0.3475430000,500,-0.7881840000,501,-0.0517554000,502,0.1557830000,503,-0.1368070000,504,-0.8280820000 +296,0,0.0433390000,551,-1.0000000000,455,0.0009046210,456,-0.0598842000,457,-0.0113448000,458,0.0307608000,459,-0.0181298000,460,-0.0035359200,461,0.0071856400,462,-0.0041868600,463,0.0204565000,464,0.0189083000,465,-0.0520218000,466,-0.0462253000,467,0.0011762300,468,-0.0074807400,469,-0.0243100000,470,-0.0530463000,471,0.0233332000,472,-0.0332102000,473,-0.0170426000,474,-0.0091044600,475,-0.0402972000,476,0.0128398000,477,-0.0126299000,478,-0.0211993000,479,-0.0040225900,480,-0.0498629000,481,0.0447528000,482,-0.0316952000,483,-0.0036217100,484,-0.0402138000,485,0.0190479000,486,0.0089861200,487,0.0122611000,488,-0.0127038000,489,0.0004843630,490,0.0162858000,491,-0.0057154300,492,-0.0058038100,493,0.0251498000,494,-0.0187679000,495,0.0114016000,496,0.0215027000,497,-0.0431049000,498,0.0158349000,499,-0.0402533000,500,0.0272879000,501,0.0236742000,502,-0.0097360600,503,-0.0516880000,504,0.0327355000 +297,0,0.0260294000,552,-1.0000000000,455,0.0036614400,456,-0.0313567000,457,-0.0489858000,458,-0.0299499000,459,-0.0224419000,460,0.0000809445,461,-0.0201522000,462,0.0035631200,463,0.0043165300,464,-0.0395500000,465,0.0290135000,466,0.0230955000,467,-0.0438240000,468,-0.0110415000,469,0.0264479000,470,0.0143308000,471,0.0274428000,472,-0.0196903000,473,0.0031863600,474,-0.0287951000,475,0.0489708000,476,-0.0354544000,477,-0.0025936300,478,-0.0317157000,479,0.0109088000,480,0.0439663000,481,-0.0223937000,482,-0.0006972430,483,-0.0394665000,484,0.0160361000,485,0.0473965000,486,-0.0280169000,487,-0.0304084000,488,-0.0489907000,489,0.0419828000,490,0.0266016000,491,0.0029672600,492,0.0163763000,493,-0.0204141000,494,-0.0307020000,495,0.0113580000,496,-0.0074577600,497,-0.0093458300,498,0.0112747000,499,-0.0464265000,500,0.0071485100,501,0.0331494000,502,0.0070298900,503,0.0238090000,504,-0.0193720000 +298,0,0.1915530000,553,-1.0000000000,455,0.5445570000,456,-0.1786730000,457,-0.3363930000,458,0.1552950000,459,-0.1015550000,460,-1.1486600000,461,-0.0135930000,462,-0.0055937400,463,-0.1152520000,464,0.6744890000,465,-0.2365580000,466,-1.1510100000,467,-1.3642300000,468,-0.3359430000,469,-0.0607958000,470,-0.1762690000,471,-0.1565730000,472,0.4222540000,473,-0.0301336000,474,0.0595606000,475,0.5110840000,476,-1.2879000000,477,-1.3545600000,478,-0.2445180000,479,0.0050178900,480,0.3896880000,481,-0.0065598500,482,-0.3574830000,483,-0.1581200000,484,0.0438169000,485,-0.1603260000,486,0.4781940000,487,-0.0291533000,488,0.2818770000,489,0.4429480000,490,0.3251470000,491,0.7456310000,492,-0.5219390000,493,0.0634631000,494,-0.0034685500,495,-1.3036200000,496,-0.5580470000,497,-0.1232260000,498,0.0171009000,499,-0.6234700000,500,-0.2588160000,501,-0.0944496000,502,-0.3802440000,503,-0.4585700000,504,0.2155160000 +299,0,-0.0419695000,554,-1.0000000000,455,0.0048757800,456,-0.0115735000,457,-0.0905316000,458,-0.0084562800,459,0.0037519800,460,0.0010116200,461,-0.0186502000,462,0.0987216000,463,-0.0044435300,464,-0.0122640000,465,-0.0228070000,466,-0.0126238000,467,0.0314470000,468,-0.0150962000,469,-0.0298055000,470,0.1302330000,471,-0.0296413000,472,-0.0557469000,473,-0.0096859600,474,-0.0016625700,475,0.1112960000,476,-0.0041385900,477,0.0179889000,478,0.0109550000,479,-0.0089170900,480,-0.0466842000,481,-0.1106790000,482,-0.0049683800,483,-0.0578992000,484,-0.0198711000,485,-0.0760731000,486,0.1158850000,487,-0.0122586000,488,0.0002095250,489,0.0114786000,490,0.0220855000,491,0.0337778000,492,0.0033563200,493,-0.0753517000,494,0.0001102700,495,0.0141741000,496,0.2076810000,497,-0.0080266200,498,0.0281626000,499,0.0018264100,500,-0.1239290000,501,-0.0521794000,502,-0.0109807000,503,-0.1411370000,504,-0.0019601100 +300,0,0.0201197000,605,-1.0000000000,555,0.0013947100,556,0.0300955000,557,-0.0042740700,558,0.0151367000,559,0.0000533851,560,-0.0024681500,561,-0.0167444000,562,0.0015928600,563,-0.0024798600,564,-0.0007114690,565,0.0033479900,566,-0.0043528400,567,0.0150695000,568,-0.0015367800,569,0.0001356250,570,-0.0057972300,571,0.0089094400,572,0.0024831600,573,-0.0007480090,574,-0.0005380910,575,0.0039702100,576,-0.0009217460,577,0.0010401800,578,-0.0010373000,579,0.0280712000,580,-0.0000483060,581,0.0296373000,582,-0.0008415190,583,-0.0009186320,584,0.0698244000,585,0.0233357000,586,0.0094540600,587,-0.0018534600,588,-0.0234098000,589,-0.0000834035,590,0.0231631000,591,-0.0045546400,592,-0.0053346000,593,0.0012782600,594,0.0232647000,595,0.0563603000,596,0.0080926800,597,-0.0006764670,598,0.0018197500,599,-0.0408707000,600,0.0001962510,601,0.0080336900,602,0.0083258700,603,-0.0008125070,604,-0.0135562000 +301,0,0.0194494000,606,-1.0000000000,555,0.0111977000,556,-0.0185952000,557,0.0113018000,558,0.0389504000,559,0.0040156500,560,0.0248977000,561,0.0247256000,562,0.0049847000,563,-0.0041824500,564,0.0035930100,565,0.0335860000,566,-0.0017938100,567,0.0021065700,568,-0.0034667600,569,0.0006447880,570,0.0259948000,571,-0.1279580000,572,0.0015803800,573,-0.0009055930,574,-0.0105646000,575,-0.0131270000,576,-0.0071690100,577,0.0148475000,578,0.0009348840,579,-0.0073322600,580,0.0206870000,581,-0.0244011000,582,0.0155194000,583,-0.0326585000,584,-0.0943834000,585,-0.0007133300,586,-0.0443216000,587,-0.0039015400,588,-0.0347612000,589,-0.0046926200,590,0.0127309000,591,0.0337932000,592,-0.0075628500,593,-0.0139655000,594,0.0321259000,595,-0.0045500000,596,-0.0210954000,597,0.0069119100,598,0.0073953900,599,0.0069171500,600,-0.0006196370,601,-0.0070027700,602,0.0186358000,603,-0.0019090400,604,0.0150053000 +302,0,0.0194817000,607,-1.0000000000,555,-0.0042184400,556,-0.0175526000,557,0.0094392100,558,0.0205571000,559,-0.0177505000,560,0.0099796800,561,-0.0115782000,562,-0.0051520400,563,0.0007360240,564,0.0013181200,565,0.0162891000,566,-0.0045336200,567,0.0384894000,568,-0.0497211000,569,0.0083194300,570,-0.0036183100,571,-0.0300271000,572,0.0271548000,573,0.0229348000,574,0.0145529000,575,0.0001232410,576,-0.0067025500,577,-0.0014301100,578,0.0119439000,579,-0.0124835000,580,0.0052709200,581,0.0466256000,582,0.0004074670,583,0.0020736200,584,-0.0809296000,585,0.0158282000,586,-0.0073758800,587,-0.0066650700,588,0.0734407000,589,0.0038980900,590,0.0448636000,591,-0.0125069000,592,0.0030197500,593,0.0142323000,594,0.0341608000,595,-0.0531858000,596,0.0163149000,597,0.0049126500,598,0.0075392500,599,0.0292409000,600,-0.0081936700,601,0.0415292000,602,0.0377604000,603,0.0120654000,604,0.0064905900 +303,0,0.0195345000,608,-1.0000000000,555,0.0288729000,556,-0.0120817000,557,-0.0002100100,558,-0.0396329000,559,-0.0024565400,560,-0.0029609400,561,-0.0050959400,562,0.0082864700,563,-0.0142504000,564,0.0046439200,565,0.0406651000,566,-0.0083798900,567,0.0146242000,568,-0.0061614100,569,-0.0000276876,570,0.0434991000,571,-0.0948090000,572,0.0208011000,573,0.0001458090,574,-0.0116244000,575,-0.0098409000,576,0.0017105800,577,0.0141238000,578,0.0090863800,579,0.0128428000,580,0.0106542000,581,0.0043119600,582,0.0140226000,583,0.0060291900,584,-0.0765384000,585,-0.0031408700,586,0.0371740000,587,-0.0174446000,588,-0.0432378000,589,-0.0027393400,590,0.0205917000,591,0.0271831000,592,-0.0072093400,593,-0.0097197600,594,0.0326659000,595,-0.0568959000,596,-0.0315050000,597,0.0241177000,598,0.0054241000,599,-0.0244067000,600,-0.0054592200,601,-0.0032195600,602,-0.0215232000,603,-0.0018021500,604,0.0215776000 +304,0,0.0195250000,609,-1.0000000000,555,-0.0034032200,556,0.0129873000,557,0.0013501900,558,0.0179718000,559,-0.0174161000,560,-0.0179142000,561,-0.0131011000,562,-0.0100293000,563,0.0076352900,564,0.0004729490,565,0.0296746000,566,-0.0115407000,567,-0.0295349000,568,-0.0070607400,569,0.0082587600,570,0.0360757000,571,-0.0227142000,572,-0.0027714700,573,0.0178404000,574,0.0044674100,575,0.0028466200,576,0.0117424000,577,0.0062266100,578,0.0330038000,579,0.0074415000,580,0.0038763200,581,-0.0452899000,582,0.0002666800,583,0.0003197670,584,-0.0525480000,585,0.0082175500,586,0.0433132000,587,-0.0114873000,588,0.0390642000,589,0.0036103900,590,-0.0362138000,591,-0.0102885000,592,-0.0032163000,593,-0.0000994982,594,0.0361608000,595,-0.1093660000,596,-0.0028408900,597,0.0153763000,598,0.0090300600,599,-0.0276101000,600,-0.0091653300,601,-0.0192481000,602,-0.0309568000,603,0.0114122000,604,0.0044016400 +305,2,0.0000000000,605,1.0000000000,606,-1.0000000000 +306,2,0.0000000000,605,1.0000000000,607,-1.0000000000 +307,2,0.0000000000,605,1.0000000000,608,-1.0000000000 +308,2,0.0000000000,605,1.0000000000,609,-1.0000000000 +0,absoluteValue,55,5 +1,absoluteValue,56,6 +2,absoluteValue,57,7 +3,absoluteValue,58,8 +4,absoluteValue,59,9 +5,absoluteValue,60,10 +6,absoluteValue,61,11 +7,absoluteValue,62,12 +8,absoluteValue,63,13 +9,absoluteValue,64,14 +10,absoluteValue,65,15 +11,absoluteValue,66,16 +12,absoluteValue,67,17 +13,absoluteValue,68,18 +14,absoluteValue,69,19 +15,absoluteValue,70,20 +16,absoluteValue,71,21 +17,absoluteValue,72,22 +18,absoluteValue,73,23 +19,absoluteValue,74,24 +20,absoluteValue,75,25 +21,absoluteValue,76,26 +22,absoluteValue,77,27 +23,absoluteValue,78,28 +24,absoluteValue,79,29 +25,absoluteValue,80,30 +26,absoluteValue,81,31 +27,absoluteValue,82,32 +28,absoluteValue,83,33 +29,absoluteValue,84,34 +30,absoluteValue,85,35 +31,absoluteValue,86,36 +32,absoluteValue,87,37 +33,absoluteValue,88,38 +34,absoluteValue,89,39 +35,absoluteValue,90,40 +36,absoluteValue,91,41 +37,absoluteValue,92,42 +38,absoluteValue,93,43 +39,absoluteValue,94,44 +40,absoluteValue,95,45 +41,absoluteValue,96,46 +42,absoluteValue,97,47 +43,absoluteValue,98,48 +44,absoluteValue,99,49 +45,absoluteValue,100,50 +46,absoluteValue,101,51 +47,absoluteValue,102,52 +48,absoluteValue,103,53 +49,absoluteValue,104,54 +50,absoluteValue,155,105 +51,absoluteValue,156,106 +52,absoluteValue,157,107 +53,absoluteValue,158,108 +54,absoluteValue,159,109 +55,absoluteValue,160,110 +56,absoluteValue,161,111 +57,absoluteValue,162,112 +58,absoluteValue,163,113 +59,absoluteValue,164,114 +60,absoluteValue,165,115 +61,absoluteValue,166,116 +62,absoluteValue,167,117 +63,absoluteValue,168,118 +64,absoluteValue,169,119 +65,absoluteValue,170,120 +66,absoluteValue,171,121 +67,absoluteValue,172,122 +68,absoluteValue,173,123 +69,absoluteValue,174,124 +70,absoluteValue,175,125 +71,absoluteValue,176,126 +72,absoluteValue,177,127 +73,absoluteValue,178,128 +74,absoluteValue,179,129 +75,absoluteValue,180,130 +76,absoluteValue,181,131 +77,absoluteValue,182,132 +78,absoluteValue,183,133 +79,absoluteValue,184,134 +80,absoluteValue,185,135 +81,absoluteValue,186,136 +82,absoluteValue,187,137 +83,absoluteValue,188,138 +84,absoluteValue,189,139 +85,absoluteValue,190,140 +86,absoluteValue,191,141 +87,absoluteValue,192,142 +88,absoluteValue,193,143 +89,absoluteValue,194,144 +90,absoluteValue,195,145 +91,absoluteValue,196,146 +92,absoluteValue,197,147 +93,absoluteValue,198,148 +94,absoluteValue,199,149 +95,absoluteValue,200,150 +96,absoluteValue,201,151 +97,absoluteValue,202,152 +98,absoluteValue,203,153 +99,absoluteValue,204,154 +100,absoluteValue,255,205 +101,absoluteValue,256,206 +102,absoluteValue,257,207 +103,absoluteValue,258,208 +104,absoluteValue,259,209 +105,absoluteValue,260,210 +106,absoluteValue,261,211 +107,absoluteValue,262,212 +108,absoluteValue,263,213 +109,absoluteValue,264,214 +110,absoluteValue,265,215 +111,absoluteValue,266,216 +112,absoluteValue,267,217 +113,absoluteValue,268,218 +114,absoluteValue,269,219 +115,absoluteValue,270,220 +116,absoluteValue,271,221 +117,absoluteValue,272,222 +118,absoluteValue,273,223 +119,absoluteValue,274,224 +120,absoluteValue,275,225 +121,absoluteValue,276,226 +122,absoluteValue,277,227 +123,absoluteValue,278,228 +124,absoluteValue,279,229 +125,absoluteValue,280,230 +126,absoluteValue,281,231 +127,absoluteValue,282,232 +128,absoluteValue,283,233 +129,absoluteValue,284,234 +130,absoluteValue,285,235 +131,absoluteValue,286,236 +132,absoluteValue,287,237 +133,absoluteValue,288,238 +134,absoluteValue,289,239 +135,absoluteValue,290,240 +136,absoluteValue,291,241 +137,absoluteValue,292,242 +138,absoluteValue,293,243 +139,absoluteValue,294,244 +140,absoluteValue,295,245 +141,absoluteValue,296,246 +142,absoluteValue,297,247 +143,absoluteValue,298,248 +144,absoluteValue,299,249 +145,absoluteValue,300,250 +146,absoluteValue,301,251 +147,absoluteValue,302,252 +148,absoluteValue,303,253 +149,absoluteValue,304,254 +150,absoluteValue,355,305 +151,absoluteValue,356,306 +152,absoluteValue,357,307 +153,absoluteValue,358,308 +154,absoluteValue,359,309 +155,absoluteValue,360,310 +156,absoluteValue,361,311 +157,absoluteValue,362,312 +158,absoluteValue,363,313 +159,absoluteValue,364,314 +160,absoluteValue,365,315 +161,absoluteValue,366,316 +162,absoluteValue,367,317 +163,absoluteValue,368,318 +164,absoluteValue,369,319 +165,absoluteValue,370,320 +166,absoluteValue,371,321 +167,absoluteValue,372,322 +168,absoluteValue,373,323 +169,absoluteValue,374,324 +170,absoluteValue,375,325 +171,absoluteValue,376,326 +172,absoluteValue,377,327 +173,absoluteValue,378,328 +174,absoluteValue,379,329 +175,absoluteValue,380,330 +176,absoluteValue,381,331 +177,absoluteValue,382,332 +178,absoluteValue,383,333 +179,absoluteValue,384,334 +180,absoluteValue,385,335 +181,absoluteValue,386,336 +182,absoluteValue,387,337 +183,absoluteValue,388,338 +184,absoluteValue,389,339 +185,absoluteValue,390,340 +186,absoluteValue,391,341 +187,absoluteValue,392,342 +188,absoluteValue,393,343 +189,absoluteValue,394,344 +190,absoluteValue,395,345 +191,absoluteValue,396,346 +192,absoluteValue,397,347 +193,absoluteValue,398,348 +194,absoluteValue,399,349 +195,absoluteValue,400,350 +196,absoluteValue,401,351 +197,absoluteValue,402,352 +198,absoluteValue,403,353 +199,absoluteValue,404,354 +200,absoluteValue,455,405 +201,absoluteValue,456,406 +202,absoluteValue,457,407 +203,absoluteValue,458,408 +204,absoluteValue,459,409 +205,absoluteValue,460,410 +206,absoluteValue,461,411 +207,absoluteValue,462,412 +208,absoluteValue,463,413 +209,absoluteValue,464,414 +210,absoluteValue,465,415 +211,absoluteValue,466,416 +212,absoluteValue,467,417 +213,absoluteValue,468,418 +214,absoluteValue,469,419 +215,absoluteValue,470,420 +216,absoluteValue,471,421 +217,absoluteValue,472,422 +218,absoluteValue,473,423 +219,absoluteValue,474,424 +220,absoluteValue,475,425 +221,absoluteValue,476,426 +222,absoluteValue,477,427 +223,absoluteValue,478,428 +224,absoluteValue,479,429 +225,absoluteValue,480,430 +226,absoluteValue,481,431 +227,absoluteValue,482,432 +228,absoluteValue,483,433 +229,absoluteValue,484,434 +230,absoluteValue,485,435 +231,absoluteValue,486,436 +232,absoluteValue,487,437 +233,absoluteValue,488,438 +234,absoluteValue,489,439 +235,absoluteValue,490,440 +236,absoluteValue,491,441 +237,absoluteValue,492,442 +238,absoluteValue,493,443 +239,absoluteValue,494,444 +240,absoluteValue,495,445 +241,absoluteValue,496,446 +242,absoluteValue,497,447 +243,absoluteValue,498,448 +244,absoluteValue,499,449 +245,absoluteValue,500,450 +246,absoluteValue,501,451 +247,absoluteValue,502,452 +248,absoluteValue,503,453 +249,absoluteValue,504,454 +250,absoluteValue,555,505 +251,absoluteValue,556,506 +252,absoluteValue,557,507 +253,absoluteValue,558,508 +254,absoluteValue,559,509 +255,absoluteValue,560,510 +256,absoluteValue,561,511 +257,absoluteValue,562,512 +258,absoluteValue,563,513 +259,absoluteValue,564,514 +260,absoluteValue,565,515 +261,absoluteValue,566,516 +262,absoluteValue,567,517 +263,absoluteValue,568,518 +264,absoluteValue,569,519 +265,absoluteValue,570,520 +266,absoluteValue,571,521 +267,absoluteValue,572,522 +268,absoluteValue,573,523 +269,absoluteValue,574,524 +270,absoluteValue,575,525 +271,absoluteValue,576,526 +272,absoluteValue,577,527 +273,absoluteValue,578,528 +274,absoluteValue,579,529 +275,absoluteValue,580,530 +276,absoluteValue,581,531 +277,absoluteValue,582,532 +278,absoluteValue,583,533 +279,absoluteValue,584,534 +280,absoluteValue,585,535 +281,absoluteValue,586,536 +282,absoluteValue,587,537 +283,absoluteValue,588,538 +284,absoluteValue,589,539 +285,absoluteValue,590,540 +286,absoluteValue,591,541 +287,absoluteValue,592,542 +288,absoluteValue,593,543 +289,absoluteValue,594,544 +290,absoluteValue,595,545 +291,absoluteValue,596,546 +292,absoluteValue,597,547 +293,absoluteValue,598,548 +294,absoluteValue,599,549 +295,absoluteValue,600,550 +296,absoluteValue,601,551 +297,absoluteValue,602,552 +298,absoluteValue,603,553 +299,absoluteValue,604,554 \ No newline at end of file diff --git a/regress/regress1/input_queries/ACASXU_abstest2.ipq b/regress/regress1/input_queries/ACASXU_abstest2.ipq new file mode 100644 index 0000000000..535a8dd4e2 --- /dev/null +++ b/regress/regress1/input_queries/ACASXU_abstest2.ipq @@ -0,0 +1,936 @@ +610 +305 +5 +309 +300 +5 +0,0 +1,1 +2,2 +3,3 +4,4 +5 +0,605 +1,606 +2,607 +3,608 +4,609 +0,-0.3035311561 +1,-0.0095492966 +2,0.0000000000 +3,0.3181818182 +4,0.0833333333 +55,0.0000000000 +56,0.0000000000 +57,0.0000000000 +58,0.0000000000 +59,0.0000000000 +60,0.0000000000 +61,0.0000000000 +62,0.0000000000 +63,0.0000000000 +64,0.0000000000 +65,0.0000000000 +66,0.0000000000 +67,0.0000000000 +68,0.0000000000 +69,0.0000000000 +70,0.0000000000 +71,0.0000000000 +72,0.0000000000 +73,0.0000000000 +74,0.0000000000 +75,0.0000000000 +76,0.0000000000 +77,0.0000000000 +78,0.0000000000 +79,0.0000000000 +80,0.0000000000 +81,0.0000000000 +82,0.0000000000 +83,0.0000000000 +84,0.0000000000 +85,0.0000000000 +86,0.0000000000 +87,0.0000000000 +88,0.0000000000 +89,0.0000000000 +90,0.0000000000 +91,0.0000000000 +92,0.0000000000 +93,0.0000000000 +94,0.0000000000 +95,0.0000000000 +96,0.0000000000 +97,0.0000000000 +98,0.0000000000 +99,0.0000000000 +100,0.0000000000 +101,0.0000000000 +102,0.0000000000 +103,0.0000000000 +104,0.0000000000 +155,0.0000000000 +156,0.0000000000 +157,0.0000000000 +158,0.0000000000 +159,0.0000000000 +160,0.0000000000 +161,0.0000000000 +162,0.0000000000 +163,0.0000000000 +164,0.0000000000 +165,0.0000000000 +166,0.0000000000 +167,0.0000000000 +168,0.0000000000 +169,0.0000000000 +170,0.0000000000 +171,0.0000000000 +172,0.0000000000 +173,0.0000000000 +174,0.0000000000 +175,0.0000000000 +176,0.0000000000 +177,0.0000000000 +178,0.0000000000 +179,0.0000000000 +180,0.0000000000 +181,0.0000000000 +182,0.0000000000 +183,0.0000000000 +184,0.0000000000 +185,0.0000000000 +186,0.0000000000 +187,0.0000000000 +188,0.0000000000 +189,0.0000000000 +190,0.0000000000 +191,0.0000000000 +192,0.0000000000 +193,0.0000000000 +194,0.0000000000 +195,0.0000000000 +196,0.0000000000 +197,0.0000000000 +198,0.0000000000 +199,0.0000000000 +200,0.0000000000 +201,0.0000000000 +202,0.0000000000 +203,0.0000000000 +204,0.0000000000 +255,0.0000000000 +256,0.0000000000 +257,0.0000000000 +258,0.0000000000 +259,0.0000000000 +260,0.0000000000 +261,0.0000000000 +262,0.0000000000 +263,0.0000000000 +264,0.0000000000 +265,0.0000000000 +266,0.0000000000 +267,0.0000000000 +268,0.0000000000 +269,0.0000000000 +270,0.0000000000 +271,0.0000000000 +272,0.0000000000 +273,0.0000000000 +274,0.0000000000 +275,0.0000000000 +276,0.0000000000 +277,0.0000000000 +278,0.0000000000 +279,0.0000000000 +280,0.0000000000 +281,0.0000000000 +282,0.0000000000 +283,0.0000000000 +284,0.0000000000 +285,0.0000000000 +286,0.0000000000 +287,0.0000000000 +288,0.0000000000 +289,0.0000000000 +290,0.0000000000 +291,0.0000000000 +292,0.0000000000 +293,0.0000000000 +294,0.0000000000 +295,0.0000000000 +296,0.0000000000 +297,0.0000000000 +298,0.0000000000 +299,0.0000000000 +300,0.0000000000 +301,0.0000000000 +302,0.0000000000 +303,0.0000000000 +304,0.0000000000 +355,0.0000000000 +356,0.0000000000 +357,0.0000000000 +358,0.0000000000 +359,0.0000000000 +360,0.0000000000 +361,0.0000000000 +362,0.0000000000 +363,0.0000000000 +364,0.0000000000 +365,0.0000000000 +366,0.0000000000 +367,0.0000000000 +368,0.0000000000 +369,0.0000000000 +370,0.0000000000 +371,0.0000000000 +372,0.0000000000 +373,0.0000000000 +374,0.0000000000 +375,0.0000000000 +376,0.0000000000 +377,0.0000000000 +378,0.0000000000 +379,0.0000000000 +380,0.0000000000 +381,0.0000000000 +382,0.0000000000 +383,0.0000000000 +384,0.0000000000 +385,0.0000000000 +386,0.0000000000 +387,0.0000000000 +388,0.0000000000 +389,0.0000000000 +390,0.0000000000 +391,0.0000000000 +392,0.0000000000 +393,0.0000000000 +394,0.0000000000 +395,0.0000000000 +396,0.0000000000 +397,0.0000000000 +398,0.0000000000 +399,0.0000000000 +400,0.0000000000 +401,0.0000000000 +402,0.0000000000 +403,0.0000000000 +404,0.0000000000 +455,0.0000000000 +456,0.0000000000 +457,0.0000000000 +458,0.0000000000 +459,0.0000000000 +460,0.0000000000 +461,0.0000000000 +462,0.0000000000 +463,0.0000000000 +464,0.0000000000 +465,0.0000000000 +466,0.0000000000 +467,0.0000000000 +468,0.0000000000 +469,0.0000000000 +470,0.0000000000 +471,0.0000000000 +472,0.0000000000 +473,0.0000000000 +474,0.0000000000 +475,0.0000000000 +476,0.0000000000 +477,0.0000000000 +478,0.0000000000 +479,0.0000000000 +480,0.0000000000 +481,0.0000000000 +482,0.0000000000 +483,0.0000000000 +484,0.0000000000 +485,0.0000000000 +486,0.0000000000 +487,0.0000000000 +488,0.0000000000 +489,0.0000000000 +490,0.0000000000 +491,0.0000000000 +492,0.0000000000 +493,0.0000000000 +494,0.0000000000 +495,0.0000000000 +496,0.0000000000 +497,0.0000000000 +498,0.0000000000 +499,0.0000000000 +500,0.0000000000 +501,0.0000000000 +502,0.0000000000 +503,0.0000000000 +504,0.0000000000 +555,0.0000000000 +556,0.0000000000 +557,0.0000000000 +558,0.0000000000 +559,0.0000000000 +560,0.0000000000 +561,0.0000000000 +562,0.0000000000 +563,0.0000000000 +564,0.0000000000 +565,0.0000000000 +566,0.0000000000 +567,0.0000000000 +568,0.0000000000 +569,0.0000000000 +570,0.0000000000 +571,0.0000000000 +572,0.0000000000 +573,0.0000000000 +574,0.0000000000 +575,0.0000000000 +576,0.0000000000 +577,0.0000000000 +578,0.0000000000 +579,0.0000000000 +580,0.0000000000 +581,0.0000000000 +582,0.0000000000 +583,0.0000000000 +584,0.0000000000 +585,0.0000000000 +586,0.0000000000 +587,0.0000000000 +588,0.0000000000 +589,0.0000000000 +590,0.0000000000 +591,0.0000000000 +592,0.0000000000 +593,0.0000000000 +594,0.0000000000 +595,0.0000000000 +596,0.0000000000 +597,0.0000000000 +598,0.0000000000 +599,0.0000000000 +600,0.0000000000 +601,0.0000000000 +602,0.0000000000 +603,0.0000000000 +604,0.0000000000 +0,-0.2985528119 +1,0.0095492966 +2,0.0000000000 +3,0.5000000000 +4,0.1666666667 +0,0,0.4970400000,5,-1.0000000000,0,-0.2230880000,1,1.3050100000,2,-1.3066100000,3,0.0828063000,4,0.0305915000 +1,0,-0.0510209000,6,-1.0000000000,0,0.0195194000,1,0.4646520000,2,0.5151220000,3,-0.4666430000,4,0.1920380000 +2,0,0.3380240000,7,-1.0000000000,0,0.0330779000,1,-0.1616830000,2,0.1661240000,3,-0.1891920000,4,-1.3092400000 +3,0,0.6032750000,8,-1.0000000000,0,-2.3062000000,1,-0.0158862000,2,-0.0173714000,3,-0.0018720100,4,0.0066997900 +4,0,-0.0933015000,9,-1.0000000000,0,0.0053232100,1,0.1776800000,2,-0.2078130000,3,-1.0424400000,4,0.9428920000 +5,0,0.4801020000,10,-1.0000000000,0,-0.0017676600,1,-0.2216710000,2,0.2207670000,3,-0.9264040000,4,0.3155250000 +6,0,-0.1474000000,11,-1.0000000000,0,-0.0380532000,1,-0.0778112000,2,-1.5194600000,3,0.0394449000,4,-0.0014362600 +7,0,0.1494820000,12,-1.0000000000,0,0.0024196300,1,0.0509587000,2,-0.0481859000,3,-1.4291000000,4,-1.5982600000 +8,0,0.0173349000,13,-1.0000000000,0,0.0066579800,1,0.0002310070,2,0.0019262100,3,-0.0092701400,4,-0.0097281300 +9,0,0.0810528000,14,-1.0000000000,0,-0.1205770000,1,0.8778860000,2,-1.0681000000,3,0.1055900000,4,0.3652870000 +10,0,-0.1334440000,15,-1.0000000000,0,-0.0091186400,1,0.2475240000,2,-0.6995530000,3,0.2022830000,4,-0.3414290000 +11,0,0.1919300000,16,-1.0000000000,0,0.0000583856,1,0.3266750000,2,-0.3611670000,3,-0.8499610000,4,-0.0009098710 +12,0,0.1900370000,17,-1.0000000000,0,0.0258634000,1,0.8284670000,2,0.4910100000,3,-0.7610070000,4,0.3131650000 +13,0,-0.5081480000,18,-1.0000000000,0,0.0056108800,1,0.0073426500,2,0.0144727000,3,0.6365910000,4,-0.5062830000 +14,0,-0.2592460000,19,-1.0000000000,0,0.5976100000,1,-0.1151290000,2,0.0076850200,3,-0.0267812000,4,0.2454890000 +15,0,0.4318400000,20,-1.0000000000,0,-0.0892237000,1,0.1576420000,2,-0.2699780000,3,-0.3174240000,4,-1.6395900000 +16,0,-0.0629194000,21,-1.0000000000,0,0.0009441710,1,-0.0533830000,2,-2.1838800000,3,0.0182082000,4,-0.0085046800 +17,0,0.3662290000,22,-1.0000000000,0,-1.3459200000,1,0.0139134000,2,0.0607954000,3,-0.2876760000,4,0.1390130000 +18,0,-0.0766321000,23,-1.0000000000,0,0.0872316000,1,2.1911700000,2,-0.0557755000,3,0.0753797000,4,-0.0891723000 +19,0,0.3378520000,24,-1.0000000000,0,-1.2302900000,1,0.1842020000,2,-0.1118730000,3,-0.1894670000,4,-0.3107700000 +20,0,-0.3565430000,25,-1.0000000000,0,0.0145827000,1,-0.0821443000,2,0.0869302000,3,0.0849197000,4,-1.4512600000 +21,0,0.2612510000,26,-1.0000000000,0,-0.0422156000,1,-0.2390830000,2,0.3392040000,3,0.4216920000,4,-1.3227300000 +22,0,0.0205228000,27,-1.0000000000,0,0.0469477000,1,-2.5570100000,2,0.0384445000,3,0.0127178000,4,-0.0069399200 +23,0,0.0188352000,28,-1.0000000000,0,-0.0029231000,1,0.0082770100,2,-0.0033231500,3,0.0130001000,4,0.0014742500 +24,0,0.4165970000,29,-1.0000000000,0,-0.0157301000,1,-0.2728800000,2,0.1701950000,3,-1.3768000000,4,-0.2624330000 +25,0,0.6407020000,30,-1.0000000000,0,-0.0544462000,1,0.1766710000,2,-0.2685130000,3,-1.2579200000,4,-1.7268000000 +26,0,-0.1478810000,31,-1.0000000000,0,-0.3432760000,1,-0.8452910000,2,0.8663840000,3,0.1386250000,4,-0.4130120000 +27,0,0.0232312000,32,-1.0000000000,0,-0.0013979100,1,0.0168592000,2,-0.0006859280,3,0.0103780000,4,-0.0026788700 +28,0,0.4865260000,33,-1.0000000000,0,-1.3446500000,1,-0.0063264100,2,-0.0317836000,3,-0.1579530000,4,-0.3480360000 +29,0,0.2730530000,34,-1.0000000000,0,-0.3142340000,1,-0.1640750000,2,-0.0340793000,3,-0.7020480000,4,0.1906820000 +30,0,-0.4078710000,35,-1.0000000000,0,-0.0229649000,1,-0.2859470000,2,0.3242360000,3,-1.8137800000,4,-0.2779100000 +31,0,0.3259310000,36,-1.0000000000,0,-1.3318900000,1,-0.2807790000,2,0.3949290000,3,0.0015701500,4,-0.2418390000 +32,0,0.4445350000,37,-1.0000000000,0,0.0849639000,1,-1.3687200000,2,1.3851400000,3,-0.0133372000,4,-0.0116034000 +33,0,0.2217660000,38,-1.0000000000,0,-0.0406955000,1,1.2409100000,2,1.2010300000,3,0.5092670000,4,-0.2602080000 +34,0,0.1071160000,39,-1.0000000000,0,-0.0900330000,1,-0.7396310000,2,-0.0080643800,3,-0.6389240000,4,-0.3305740000 +35,0,0.8536330000,40,-1.0000000000,0,0.0056849800,1,-0.0083092500,2,-0.0135485000,3,-0.8030920000,4,-1.1913300000 +36,0,0.3178630000,41,-1.0000000000,0,-2.1674800000,1,0.1114830000,2,-0.1114060000,3,0.0068223300,4,0.0082715400 +37,0,-0.2052670000,42,-1.0000000000,0,0.4358690000,1,0.9303440000,2,0.5177940000,3,0.0965043000,4,-0.1164300000 +38,0,0.0238780000,43,-1.0000000000,0,-0.0153745000,1,0.0005760130,2,0.0021428100,3,0.0118427000,4,-0.0193144000 +39,0,-0.6168190000,44,-1.0000000000,0,0.0092390400,1,0.0613580000,2,-0.0737718000,3,-0.4989090000,4,-1.5299300000 +40,0,-0.0147966000,45,-1.0000000000,0,-1.1361900000,1,0.0888219000,2,-0.0069667900,3,0.0420608000,4,0.0136288000 +41,0,0.1521000000,46,-1.0000000000,0,0.0852650000,1,1.5245300000,2,-0.9759770000,3,0.1049000000,4,-0.2693110000 +42,0,0.0465798000,47,-1.0000000000,0,-0.0099559000,1,0.2705610000,2,-0.1707770000,3,-0.5177100000,4,-1.5204800000 +43,0,0.0238390000,48,-1.0000000000,0,-0.0120532000,1,-0.5831150000,2,-0.5327280000,3,-0.2439260000,4,0.1314440000 +44,0,-0.3826440000,49,-1.0000000000,0,-0.0367660000,1,-0.2296800000,2,0.2470070000,3,0.8867790000,4,-1.0965000000 +45,0,0.2652570000,50,-1.0000000000,0,-0.0288671000,1,-1.5941100000,2,1.9780400000,3,-0.2630430000,4,0.3510120000 +46,0,0.4480970000,51,-1.0000000000,0,-1.6619900000,1,0.0943753000,2,0.8063090000,3,-0.0135352000,4,0.0843667000 +47,0,0.5693330000,52,-1.0000000000,0,0.0502803000,1,-0.1014150000,2,0.1169260000,3,-1.1783500000,4,-0.3554720000 +48,0,-0.0949498000,53,-1.0000000000,0,0.7382400000,1,-0.9780420000,2,0.4110150000,3,-0.0979869000,4,-0.2042250000 +49,0,-0.0835462000,54,-1.0000000000,0,0.1241150000,1,-0.7374840000,2,-0.6595500000,3,0.1537620000,4,-0.0678359000 +50,0,0.1070770000,105,-1.0000000000,55,0.0743474000,56,0.0347121000,57,0.0038372400,58,0.0257409000,59,0.0160394000,60,0.0294717000,61,-0.1598220000,62,0.0501063000,63,0.0163896000,64,0.0864163000,65,0.0538781000,66,-0.0173238000,67,0.0564005000,68,-0.0654154000,69,-0.1170180000,70,0.0282060000,71,-0.1280900000,72,0.0010093000,73,-0.0638997000,74,-0.0106217000,75,0.0662010000,76,0.0655012000,77,-0.0544368000,78,0.0305963000,79,0.0165411000,80,-0.0101189000,81,0.0618475000,82,0.0223782000,83,0.0977097000,84,0.0446877000,85,-0.0182449000,86,0.0506108000,87,0.0698923000,88,0.0508476000,89,0.0062045100,90,0.0027668700,91,0.0554589000,92,-0.1800750000,93,-0.0019151900,94,-0.1158680000,95,-0.0078487600,96,-0.0891096000,97,0.0151156000,98,0.0311699000,99,0.0315222000,100,-0.0118532000,101,0.0536645000,102,-0.0163301000,103,-0.1613040000,104,0.0036395300 +51,0,0.5407590000,106,-1.0000000000,55,0.4604550000,56,0.4905990000,57,1.2100400000,58,0.0945960000,59,-0.4273230000,60,-6.0529300000,61,-0.2120180000,62,0.1825450000,63,-0.0223158000,64,-0.4690870000,65,0.4249820000,66,-0.3363330000,67,-0.4220360000,68,0.3564730000,69,0.0925176000,70,0.4226360000,71,-0.6200290000,72,0.4857750000,73,0.3766070000,74,0.6644460000,75,0.1968800000,76,-0.5784110000,77,-1.8973300000,78,-0.0210902000,79,-0.5569130000,80,0.1541350000,81,-0.8130670000,82,0.0362218000,83,0.3659450000,84,0.6195900000,85,-0.0900998000,86,-0.9224180000,87,1.4952100000,88,1.2256000000,89,0.5514340000,90,-0.3025610000,91,-0.2150640000,92,0.5241450000,93,-0.0126570000,94,-0.0386081000,95,-0.0186266000,96,0.1141960000,97,0.1236730000,98,1.2979700000,99,-0.3671880000,100,-0.5706210000,101,-0.0731648000,102,0.5373030000,103,-0.9413320000,104,0.4422470000 +52,0,0.6799180000,107,-1.0000000000,55,0.1444620000,56,0.5082700000,57,-0.5491280000,58,-0.2480880000,59,-0.2448840000,60,0.4548220000,61,-0.3316950000,62,-0.3947860000,63,-0.0488972000,64,-0.2460740000,65,1.3950400000,66,-2.4053400000,67,0.3649540000,68,-0.1710550000,69,-1.3988000000,70,-1.3540600000,71,-0.9578280000,72,0.7964720000,73,-0.4191430000,74,-0.7468300000,75,-0.2377930000,76,-0.7214400000,77,0.3099960000,78,0.0396828000,79,-0.3971440000,80,-0.0294062000,81,0.1693050000,82,0.0140746000,83,0.9115640000,84,0.6073670000,85,0.1813620000,86,0.6732710000,87,0.4740220000,88,0.2264170000,89,0.2378610000,90,-1.3976600000,91,0.2002240000,92,-0.1485700000,93,-0.0528945000,94,0.0917508000,95,-0.2377900000,96,1.3047000000,97,0.7501750000,98,0.0384007000,99,-0.1006650000,100,-0.2974560000,101,1.0382700000,102,0.0562731000,103,0.4305810000,104,0.6005360000 +53,0,0.0222551000,108,-1.0000000000,55,-0.0009471860,56,-0.0104317000,57,0.0085901700,58,-0.0030049200,59,0.0153479000,60,-0.0271645000,61,0.0008508170,62,-0.0164430000,63,-0.0543604000,64,0.0097135600,65,-0.0206074000,66,-0.0387743000,67,-0.0535509000,68,0.0154361000,69,-0.0640837000,70,0.0197652000,71,-0.0364097000,72,-0.0206101000,73,-0.0338499000,74,0.0208810000,75,0.0128339000,76,-0.0357225000,77,0.0233604000,78,-0.0093058100,79,0.0384858000,80,0.0060517900,81,0.0170287000,82,0.0108875000,83,0.0056050500,84,-0.0487548000,85,-0.0439776000,86,-0.0378121000,87,-0.0200115000,88,0.0011076900,89,0.0156605000,90,0.0400562000,91,0.0249528000,92,-0.0516843000,93,0.0053149500,94,-0.0478018000,95,0.0060878700,96,0.0025969700,97,-0.0154344000,98,0.0123073000,99,-0.0390416000,100,0.0114215000,101,-0.0036268000,102,0.0372876000,103,-0.0033770400,104,-0.0598091000 +54,0,-0.4184550000,109,-1.0000000000,55,0.1531450000,56,0.2185910000,57,0.1739670000,58,0.4733960000,59,-0.1827740000,60,1.3757400000,61,0.3800930000,62,0.5056440000,63,0.0409696000,64,-0.3298640000,65,-0.0728384000,66,-0.2474140000,67,-0.7340490000,68,-0.5830350000,69,-0.1283010000,70,0.6381770000,71,-1.0991000000,72,-0.8481950000,73,1.0758300000,74,0.3118400000,75,-0.0879533000,76,0.4320800000,77,-0.4341910000,78,-0.0099480100,79,-1.1055600000,80,-0.2258050000,81,-0.3433850000,82,0.0502629000,83,-0.2832620000,84,0.3695790000,85,-0.1110800000,86,-0.0087072700,87,-0.3719840000,88,-0.0782583000,89,-0.3239700000,90,1.4907500000,91,0.3281330000,92,0.0230681000,93,-0.0094408100,94,0.0289220000,95,0.3472840000,96,-0.4020860000,97,-0.3310690000,98,1.1161700000,99,0.5899030000,100,-0.5314140000,101,0.1253690000,102,0.2658730000,103,0.1186150000,104,0.2646950000 +55,0,0.3937320000,110,-1.0000000000,55,0.4697400000,56,0.2213280000,57,-0.2021000000,58,0.8355830000,59,0.8033860000,60,-0.0906826000,61,0.7161510000,62,0.0373288000,63,0.0529954000,64,0.6256050000,65,-0.1277760000,66,-0.1702090000,67,-0.0617745000,68,-0.3242070000,69,-0.9409330000,70,0.7043580000,71,0.2903560000,72,0.3003000000,73,0.5569430000,74,0.0407280000,75,-0.5383600000,76,0.5022740000,77,-0.2782070000,78,-0.0272373000,79,0.2741430000,80,-0.7769450000,81,-0.1879490000,82,0.0563136000,83,0.4442710000,84,-0.6018250000,85,-0.8667230000,86,0.4122700000,87,0.5306890000,88,-0.2088050000,89,-0.1276060000,90,-0.8508870000,91,0.9925580000,92,-0.3743140000,93,0.0472468000,94,1.0599800000,95,0.9277850000,96,0.3531270000,97,0.0435435000,98,-0.1482420000,99,-0.0841441000,100,0.1055550000,101,-1.5537300000,102,0.1272720000,103,0.5676960000,104,0.0122014000 +56,0,-0.1176940000,111,-1.0000000000,55,1.2427600000,56,0.0211173000,57,-0.6576470000,58,1.0561100000,59,-0.3874850000,60,-0.7573240000,61,-0.5463750000,62,0.4745650000,63,0.0228501000,64,-0.1441410000,65,-0.6021940000,66,-0.4735200000,67,0.2233070000,68,-0.2544570000,69,-0.1265390000,70,-0.6220980000,71,-0.4402060000,72,0.3968780000,73,-0.4437490000,74,-0.1486370000,75,0.3194270000,76,0.1959230000,77,-0.0716867000,78,-0.0314088000,79,-0.1237540000,80,0.7606670000,81,0.3026240000,82,-0.0304440000,83,-0.3394520000,84,-0.1721500000,85,0.3495510000,86,0.6753380000,87,-0.2240480000,88,-0.2155840000,89,-0.8248280000,90,-0.0872382000,91,0.0995514000,92,-0.0124070000,93,-0.0117972000,94,-0.4595650000,95,-0.2019440000,96,0.7022120000,97,-0.4379470000,98,0.0003639860,99,0.0505910000,100,-0.1294210000,101,0.4938210000,102,-0.3720890000,103,-0.0431109000,104,0.0457905000 +57,0,-0.8534240000,112,-1.0000000000,55,-0.9817610000,56,0.3249800000,57,0.0657560000,58,0.0451752000,59,0.2873800000,60,0.0355506000,61,0.4334380000,62,0.3764830000,63,0.0275467000,64,-0.9392040000,65,0.1834070000,66,0.3816750000,67,-0.1804820000,68,-0.0225118000,69,-0.0040970900,70,-1.3250200000,71,0.0482520000,72,0.4095170000,73,0.6113020000,74,-0.1824440000,75,-0.9538720000,76,-0.2133680000,77,-0.4093600000,78,-0.0006629320,79,-0.1240960000,80,0.5258500000,81,-1.2208600000,82,-0.0003348480,83,0.1975600000,84,0.1804270000,85,0.4025200000,86,0.0943115000,87,-1.4916400000,88,0.4734270000,89,0.2816720000,90,-6.4397200000,91,-0.1278830000,92,0.2016660000,93,-0.0196684000,94,0.2465900000,95,-0.0366034000,96,-1.6844300000,97,-0.6330830000,98,0.8417160000,99,0.2327680000,100,-0.9571900000,101,0.1162060000,102,1.5470200000,103,-0.2524130000,104,0.3504210000 +58,0,-0.0945162000,113,-1.0000000000,55,-2.1221300000,56,0.4217460000,57,0.7561120000,58,-0.7867610000,59,0.0550958000,60,0.1674740000,61,-1.1917000000,62,-0.2483330000,63,0.0193356000,64,0.0841946000,65,-1.6525800000,66,-1.2874000000,67,0.0061801200,68,0.2130080000,69,-0.2808680000,70,-0.2166500000,71,-6.1502300000,72,0.5154120000,73,0.6365980000,74,-0.3661980000,75,-0.3820930000,76,0.7205960000,77,-0.0268380000,78,0.0047983800,79,0.5050460000,80,-0.4812710000,81,-0.9921920000,82,0.0162218000,83,1.5881900000,84,0.2320590000,85,0.1971460000,86,-0.6704160000,87,-0.6999520000,88,1.1410400000,89,0.3170160000,90,-0.9581720000,91,0.1231590000,92,0.0022992300,93,-0.0289454000,94,0.3003860000,95,-0.1854000000,96,-1.1426700000,97,-0.0886375000,98,-1.3280000000,99,0.1229820000,100,0.2941840000,101,-0.3377180000,102,1.3242100000,103,-1.0332800000,104,1.8254700000 +59,0,0.4225920000,114,-1.0000000000,55,-0.2934940000,56,0.5850610000,57,-0.3104630000,58,-0.1651170000,59,-0.0586203000,60,-4.1436300000,61,0.2420700000,62,-0.7450270000,63,0.0381074000,64,0.1346820000,65,0.3035290000,66,0.8100790000,67,-0.3296770000,68,-0.5990630000,69,-0.1234760000,70,0.2144890000,71,-0.0628006000,72,0.3283470000,73,-0.0090488900,74,-0.2208880000,75,1.2943900000,76,-0.6147550000,77,-0.4500480000,78,-0.0443414000,79,-0.1742120000,80,-0.4024880000,81,1.6793900000,82,-0.0390916000,83,-1.0804200000,84,0.1578080000,85,0.4469770000,86,-0.0909194000,87,0.0433518000,88,0.4524430000,89,0.1579860000,90,-1.2057100000,91,-0.1333800000,92,0.0181919000,93,-0.0355678000,94,-0.9345030000,95,0.0726575000,96,0.4985420000,97,1.0520700000,98,-0.2375280000,99,-0.6542220000,100,-1.4530700000,101,-0.0105384000,102,0.7758110000,103,-0.1565610000,104,0.2459350000 +60,0,1.3403400000,115,-1.0000000000,55,0.3567590000,56,0.1456020000,57,0.1049970000,58,1.5641100000,59,0.2300390000,60,1.9718200000,61,0.7682040000,62,-0.0018535100,63,-0.0251258000,64,-1.1909000000,65,-0.4831960000,66,-0.4505180000,67,-0.4220890000,68,-0.2190240000,69,-0.0393933000,70,0.1992540000,71,-0.3024610000,72,0.7636500000,73,0.2460530000,74,0.9002590000,75,-0.2679360000,76,-0.1217660000,77,0.3743140000,78,0.0081085900,79,0.3407410000,80,0.0827264000,81,0.0226285000,82,-0.0364527000,83,-0.0029171700,84,0.2867550000,85,-0.0249299000,86,0.6468240000,87,0.1648320000,88,1.4389200000,89,0.9838290000,90,0.9011460000,91,1.3547100000,92,-0.3865160000,93,-0.0013690400,94,0.0975297000,95,0.5101040000,96,0.1160820000,97,-0.3749040000,98,0.2247350000,99,-0.1372060000,100,-0.2130090000,101,1.3607400000,102,2.3576700000,103,-0.3159210000,104,0.3346550000 +61,0,0.8768210000,116,-1.0000000000,55,-0.1693250000,56,0.5745650000,57,-0.7443950000,58,-0.5635130000,59,-0.0754365000,60,-0.5070930000,61,-0.0115949000,62,0.1560470000,63,0.0325048000,64,0.0390778000,65,0.0985341000,66,-0.0062893400,67,0.2557050000,68,-0.0009673870,69,0.2493290000,70,0.0348485000,71,-0.1071220000,72,0.0423690000,73,0.0602105000,74,-0.4851490000,75,0.4845080000,76,0.2845510000,77,0.0414108000,78,0.0076428100,79,-0.0694424000,80,0.0275916000,81,0.5933370000,82,-0.0451481000,83,0.8882820000,84,0.5834060000,85,0.1762670000,86,-0.3594560000,87,1.2527800000,88,-0.0413271000,89,-1.3090600000,90,-2.2844000000,91,0.3515140000,92,0.3453970000,93,0.0481972000,94,0.1669350000,95,-0.2205250000,96,1.0040900000,97,-0.1231860000,98,1.5936600000,99,-1.3759000000,100,-0.1375310000,101,0.4708060000,102,0.2606570000,103,-0.0747862000,104,-0.1381710000 +62,0,-0.6066710000,117,-1.0000000000,55,0.6015830000,56,-0.1849650000,57,0.6317180000,58,0.4303430000,59,0.0042448400,60,0.8696530000,61,0.0693709000,62,0.6457520000,63,0.0583353000,64,-0.7097950000,65,-0.0782675000,66,-0.9064900000,67,-0.5246070000,68,0.2237550000,69,-0.1224270000,70,0.0489208000,71,-0.3983610000,72,0.0694789000,73,-0.1473330000,74,-0.2521110000,75,0.0556718000,76,-0.4318550000,77,-0.3367630000,78,-0.0289213000,79,-0.7766470000,80,0.5349280000,81,0.3295980000,82,-0.0284291000,83,0.3550910000,84,0.3840730000,85,-0.0101201000,86,-0.1789520000,87,0.8093810000,88,-0.0261928000,89,-0.3998590000,90,1.5523500000,91,0.0781887000,92,0.4282810000,93,0.0491987000,94,0.5040220000,95,-0.0953274000,96,0.0449699000,97,-0.0863028000,98,0.2291390000,99,-0.7706340000,100,-0.8628080000,101,0.2532250000,102,0.9981560000,103,-0.2049290000,104,0.2451340000 +63,0,0.7511950000,118,-1.0000000000,55,1.3180200000,56,0.2339560000,57,-0.0388465000,58,-1.3640300000,59,-0.6554680000,60,-1.0747000000,61,-0.2859400000,62,0.1332730000,63,-0.0129857000,64,-0.1229140000,65,1.0480000000,66,0.6028690000,67,-1.0183800000,68,-0.5226600000,69,0.7007220000,70,0.8780830000,71,-0.0248901000,72,-0.4629110000,73,-1.6177800000,74,0.4384660000,75,-0.2073790000,76,1.0578400000,77,-0.7362820000,78,-0.0060968200,79,0.1826060000,80,0.5862890000,81,0.4639220000,82,-0.0315088000,83,-0.1401390000,84,1.9626000000,85,-0.2241990000,86,0.5876790000,87,0.5139370000,88,0.0113544000,89,0.4347570000,90,1.6262400000,91,-0.1781270000,92,0.6675130000,93,-0.0196147000,94,-0.2827230000,95,0.1945690000,96,-0.1032690000,97,0.0905972000,98,0.0102515000,99,-0.0329917000,100,-0.2171290000,101,0.4088850000,102,-0.2203780000,103,0.2519250000,104,-0.3773340000 +64,0,0.4685690000,119,-1.0000000000,55,0.2431300000,56,-0.2078030000,57,0.0570427000,58,0.0000233406,59,-1.0995300000,60,-1.2137700000,61,-1.7283100000,62,-0.6675570000,63,0.0268872000,64,0.0061406500,65,0.1026630000,66,-2.8495000000,67,0.2139000000,68,-0.6189530000,69,-0.1245770000,70,1.7719700000,71,-3.3804500000,72,0.4173870000,73,-1.5664400000,74,-0.2620590000,75,1.6117700000,76,-0.3584640000,77,0.6423540000,78,-0.0317501000,79,0.5490120000,80,-0.5485340000,81,0.5007610000,82,0.0291079000,83,0.1205220000,84,-0.7601610000,85,-0.3386230000,86,-0.1429450000,87,1.5957500000,88,-0.5562920000,89,0.1539800000,90,1.9376800000,91,0.4230520000,92,-0.2863630000,93,-0.0417591000,94,-0.9266930000,95,-0.1228730000,96,-1.1190200000,97,0.5817010000,98,-0.5187990000,99,0.3045540000,100,1.3875500000,101,0.2051760000,102,-0.3269350000,103,0.7490510000,104,-0.4750250000 +65,0,1.0661400000,120,-1.0000000000,55,0.7043510000,56,-0.0830528000,57,-0.1909420000,58,-0.7523970000,59,0.1061050000,60,-0.7949310000,61,-0.0958570000,62,-0.4810940000,63,0.0304455000,64,0.3507450000,65,-0.2035450000,66,-1.7734300000,67,0.4126960000,68,-0.1281070000,69,0.4749720000,70,0.0670738000,71,-0.8930140000,72,0.4586020000,73,0.5678570000,74,0.2222030000,75,0.3966160000,76,-1.0155200000,77,0.4049930000,78,-0.0249252000,79,0.5309810000,80,0.3474410000,81,0.8104200000,82,0.0008849950,83,0.0892442000,84,-0.2195280000,85,0.0231622000,86,-0.3460970000,87,-0.5797160000,88,0.1941790000,89,-0.1273040000,90,0.3343790000,91,-0.2364980000,92,-0.6407870000,93,0.0144461000,94,-0.1169960000,95,-0.1870010000,96,0.9007740000,97,0.3765540000,98,0.3085630000,99,-0.0516386000,100,0.2753900000,101,0.2056280000,102,0.4249310000,103,0.3740990000,104,0.4109040000 +66,0,-0.4733520000,121,-1.0000000000,55,0.2119520000,56,-0.4432700000,57,0.0631230000,58,0.1524550000,59,-0.1515160000,60,0.8636530000,61,-0.0096618300,62,0.0310162000,63,-0.0403620000,64,-0.0432129000,65,-0.5677020000,66,0.2814740000,67,0.2679060000,68,-0.5221370000,69,1.3816000000,70,-0.1908580000,71,0.0352486000,72,0.1185410000,73,0.5330290000,74,-0.2381530000,75,0.6988320000,76,0.0576590000,77,0.1384190000,78,-0.0472462000,79,0.3165300000,80,-0.0947029000,81,0.2818920000,82,-0.0488274000,83,-0.6335510000,84,-0.3691190000,85,-0.9622510000,86,-0.4266270000,87,-0.3184240000,88,0.3734150000,89,0.7172710000,90,-0.9499300000,91,-0.2199540000,92,0.1074730000,93,-0.0165131000,94,0.5576980000,95,-0.1655870000,96,-0.1607140000,97,-0.0633570000,98,-0.1966280000,99,-0.7426020000,100,-0.4988740000,101,0.6461290000,102,1.0307700000,103,-0.4638800000,104,0.3721620000 +67,0,-0.2803170000,122,-1.0000000000,55,0.2890840000,56,0.4412400000,57,-0.3464590000,58,0.2349580000,59,-0.3526540000,60,0.6251440000,61,0.5422420000,62,-0.2704000000,63,0.0053591300,64,-0.2987900000,65,0.1845570000,66,0.4544470000,67,1.1634500000,68,-0.2436420000,69,-0.4489730000,70,0.2601090000,71,-0.8954840000,72,0.5189770000,73,-0.3580280000,74,-0.1746440000,75,0.2064010000,76,0.3566500000,77,1.8695400000,78,-0.0138588000,79,1.3726300000,80,-0.1106120000,81,-0.1499520000,82,0.0064532400,83,0.8466650000,84,-0.4655700000,85,0.2156300000,86,0.4090670000,87,0.8136190000,88,0.5839390000,89,0.9466290000,90,-1.2467700000,91,0.0768015000,92,-0.6673730000,93,0.0062513000,94,-0.1210400000,95,0.0167563000,96,1.2183600000,97,-0.2934920000,98,0.0411824000,99,-0.1706630000,100,-0.4931160000,101,-0.1223300000,102,1.6227800000,103,0.3603200000,104,0.0053809300 +68,0,0.8250630000,123,-1.0000000000,55,0.1455860000,56,0.3149580000,57,-0.7044820000,58,0.1094110000,59,0.1414400000,60,1.2965700000,61,0.2232190000,62,2.2765600000,63,-0.0105347000,64,-0.0051250300,65,-0.3953220000,66,0.2294210000,67,0.1328390000,68,0.1284570000,69,0.0920828000,70,-2.5160100000,71,-0.0961311000,72,0.2800650000,73,-0.4994500000,74,-0.0429122000,75,-2.4101300000,76,-0.6697180000,77,0.1557360000,78,-0.0165095000,79,-0.1150980000,80,0.4653580000,81,-0.0890092000,82,0.0139525000,83,-0.3976170000,84,0.1958150000,85,0.0217562000,86,-0.0999364000,87,0.4083960000,88,0.2413590000,89,0.1320260000,90,-0.0251335000,91,-0.0501763000,92,0.0452189000,93,0.0110342000,94,-0.2574970000,95,-0.0450097000,96,0.5335310000,97,0.2712520000,98,0.0542495000,99,0.6047310000,100,0.1315580000,101,0.0259173000,102,0.5551270000,103,-0.0188491000,104,0.0042683500 +69,0,0.2648390000,124,-1.0000000000,55,-0.6022940000,56,-0.3260320000,57,-0.4049200000,58,4.4635000000,59,0.0515431000,60,-0.0763869000,61,-0.5802790000,62,-0.1159490000,63,0.0296803000,64,0.2129010000,65,-0.1342250000,66,0.0505308000,67,-0.0014047600,68,0.3598070000,69,-0.6441470000,70,0.0279114000,71,0.6304990000,72,0.4536560000,73,-0.2427760000,74,0.6667070000,75,-0.0657672000,76,0.0590502000,77,0.0805050000,78,0.0408082000,79,0.0271244000,80,-0.0601346000,81,0.8884470000,82,0.0232821000,83,1.4222500000,84,0.3655250000,85,0.1807460000,86,0.0153856000,87,-0.5588320000,88,-0.1466950000,89,-0.0616807000,90,-1.0096900000,91,1.7919800000,92,-0.1891560000,93,-0.0499435000,94,-0.1770460000,95,1.2723100000,96,0.0861917000,97,0.0490261000,98,-0.2861030000,99,-0.2823130000,100,0.4654170000,101,0.7917170000,102,-0.1970570000,103,-0.0779637000,104,-0.2365760000 +70,0,1.0383700000,125,-1.0000000000,55,0.2834630000,56,0.6988190000,57,-0.8576300000,58,0.3659950000,59,0.0596920000,60,-5.0614400000,61,0.1997100000,62,0.3820350000,63,0.0182159000,64,-0.0350249000,65,-0.0976688000,66,0.5783390000,67,0.5212520000,68,-0.4017800000,69,0.1224210000,70,0.1859390000,71,0.4586840000,72,1.3842400000,73,0.4225910000,74,0.1296920000,75,0.1255250000,76,3.3628200000,77,-0.0168671000,78,-0.0342804000,79,0.8571680000,80,1.2034100000,81,-0.6038280000,82,-0.0142520000,83,-0.5399120000,84,0.5102550000,85,-0.2830540000,86,0.7109810000,87,-1.1769800000,88,1.3754600000,89,0.7967700000,90,-1.8177700000,91,0.4009930000,92,-0.3980540000,93,0.0189441000,94,-0.2152840000,95,-0.5262150000,96,-0.6679150000,97,-0.0765410000,98,-0.3589710000,99,-0.7674000000,100,0.2141580000,101,-1.3110700000,102,0.3249510000,103,-0.5043920000,104,-0.0862070000 +71,0,0.8191730000,126,-1.0000000000,55,0.7637960000,56,-0.2511260000,57,0.1986800000,58,0.2679190000,59,0.0426995000,60,-2.1458700000,61,0.2415240000,62,-0.4726200000,63,-0.0075463200,64,0.4790650000,65,0.1959350000,66,0.3206620000,67,-0.6625710000,68,-0.5008240000,69,0.5449620000,70,1.3238400000,71,0.2583770000,72,-0.4520040000,73,0.6805320000,74,-0.1835250000,75,0.2444300000,76,-0.3885410000,77,1.4583900000,78,0.0311147000,79,0.1601130000,80,-0.7388850000,81,0.3564230000,82,0.0250317000,83,-0.2102690000,84,0.3845060000,85,-0.3243520000,86,0.3686980000,87,-0.1222530000,88,-0.2620200000,89,-0.4038320000,90,1.2267200000,91,0.0886739000,92,-0.1047800000,93,0.0069947500,94,0.3209390000,95,-0.2076220000,96,0.9761740000,97,0.4611820000,98,-0.2395190000,99,0.6134140000,100,0.2770080000,101,-0.1285060000,102,-1.6655500000,103,-0.3459800000,104,-0.4130930000 +72,0,0.5666680000,127,-1.0000000000,55,0.3803080000,56,-0.3362360000,57,1.2541700000,58,0.7543140000,59,0.2317080000,60,2.7324300000,61,0.2872850000,62,0.1714220000,63,-0.0258749000,64,-0.0700997000,65,0.8389210000,66,-0.1472430000,67,-0.6235720000,68,-0.2604140000,69,0.4589640000,70,0.2846940000,71,-0.0288410000,72,-1.0999300000,73,-0.2715360000,74,-0.2196820000,75,0.1571110000,76,-0.2017230000,77,-0.0496744000,78,-0.0055371700,79,-1.1108400000,80,-0.2767940000,81,0.7121380000,82,-0.0427537000,83,1.3978600000,84,0.0689601000,85,-0.2104270000,86,1.3124500000,87,0.2423960000,88,-0.4854850000,89,0.0891458000,90,0.0516743000,91,1.3981900000,92,0.3090790000,93,-0.0212757000,94,0.1200320000,95,0.1309390000,96,-0.1924890000,97,-0.1308560000,98,-0.3759740000,99,0.0713320000,100,-0.6320360000,101,0.4390800000,102,-0.1557970000,103,-0.3157180000,104,-0.6008080000 +73,0,0.3404780000,128,-1.0000000000,55,-0.6109570000,56,0.2069880000,57,-0.6017230000,58,-0.7786150000,59,-0.5311880000,60,-0.9945160000,61,0.6548480000,62,0.5617300000,63,0.0344295000,64,-0.6195760000,65,-0.3853940000,66,-0.2560580000,67,0.3084690000,68,0.3699160000,69,-1.7573100000,70,-0.0152757000,71,0.3198610000,72,2.6158400000,73,0.6140900000,74,-0.4359500000,75,-0.9807910000,76,1.6430800000,77,0.1176580000,78,0.0019182800,79,-0.8149890000,80,0.2562110000,81,-0.4861420000,82,-0.0137241000,83,0.1289950000,84,0.2879410000,85,0.9775690000,86,-0.9563490000,87,-0.4442380000,88,0.0556283000,89,-0.1468070000,90,1.2433900000,91,1.2328100000,92,-0.9305890000,93,-0.0078151800,94,-0.3669620000,95,0.4893950000,96,-0.6474980000,97,-0.6160710000,98,-0.7647490000,99,-0.3160420000,100,-0.0000735604,101,-0.1323880000,102,0.3844340000,103,0.4033860000,104,0.6732830000 +74,0,-0.2811680000,129,-1.0000000000,55,0.0085986000,56,0.7312900000,57,0.5985720000,58,1.3110100000,59,-0.1580530000,60,0.8143990000,61,1.1370100000,62,0.3840510000,63,-0.0311481000,64,-0.1138150000,65,0.1406740000,66,-0.7660050000,67,0.2549150000,68,0.2220360000,69,-0.0485263000,70,0.0290881000,71,0.6081610000,72,-0.4526590000,73,-0.4014110000,74,-0.3085220000,75,0.3336080000,76,0.9523230000,77,0.7387390000,78,0.0101961000,79,-0.5826660000,80,-0.0147348000,81,-0.7603530000,82,-0.0023937400,83,-0.2063220000,84,-0.4190150000,85,-0.1033640000,86,-0.6728480000,87,-0.0633885000,88,0.3294070000,89,0.0232299000,90,0.1485700000,91,0.7176290000,92,-0.3393150000,93,-0.0029391600,94,0.0669355000,95,0.0312394000,96,-1.5150700000,97,-0.2504920000,98,-0.0026059600,99,-0.5454460000,100,-0.5381170000,101,-1.2470300000,102,0.1752670000,103,-0.0373199000,104,1.5874100000 +75,0,-0.0002457910,130,-1.0000000000,55,0.8390950000,56,0.3138520000,57,1.3544500000,58,-0.2907710000,59,-0.5473340000,60,-2.4123600000,61,-0.2647240000,62,-1.1632200000,63,-0.0457331000,64,0.0434445000,65,-0.5972060000,66,0.7602110000,67,0.7429880000,68,-0.2364830000,69,-0.2333470000,70,0.1487670000,71,-2.3543100000,72,0.5901650000,73,-0.2936660000,74,-1.4269900000,75,0.8080180000,76,-1.0831800000,77,0.1733330000,78,-0.0406500000,79,1.8344400000,80,0.5067930000,81,-0.1703640000,82,0.0049816400,83,1.7853700000,84,-1.6569000000,85,-0.0353886000,86,-0.4377950000,87,-0.1176300000,88,0.1277040000,89,0.4751440000,90,-0.0210799000,91,0.1237510000,92,-0.0648207000,93,-0.0368330000,94,-0.0669382000,95,0.0018922900,96,0.7863280000,97,-9.2764300000,98,-0.1885770000,99,0.2845800000,100,-0.1511920000,101,0.1656240000,102,0.2931930000,103,0.1711230000,104,-0.2196370000 +76,0,0.0145390000,131,-1.0000000000,55,-0.0177529000,56,-0.0174793000,57,-0.0355447000,58,0.0101063000,59,-0.0239631000,60,-0.0421984000,61,0.0261256000,62,0.0054848900,63,0.0305234000,64,0.0355945000,65,-0.0134721000,66,0.0255601000,67,-0.0529858000,68,-0.0396357000,69,-0.0406362000,70,-0.0133140000,71,-0.0516007000,72,-0.0085412600,73,-0.0309390000,74,-0.0196705000,75,-0.0045134500,76,0.0173748000,77,0.0018992200,78,-0.0209150000,79,-0.0306873000,80,0.0150531000,81,-0.0502907000,82,-0.0479255000,83,0.0229746000,84,0.0217170000,85,-0.0356282000,86,-0.0340093000,87,0.0134029000,88,0.0153637000,89,-0.0246525000,90,-0.0295671000,91,0.0049774100,92,0.0341552000,93,0.0219040000,94,-0.0501791000,95,0.0123944000,96,-0.0429451000,97,0.0193989000,98,0.0394733000,99,0.0066108900,100,0.0224326000,101,0.0406463000,102,-0.0251753000,103,-0.0246449000,104,0.0109167000 +77,0,-0.0171216000,132,-1.0000000000,55,-6.7092500000,56,0.5956950000,57,0.2995600000,58,0.0313596000,59,-0.0277476000,60,1.6614500000,61,-0.1684150000,62,-0.0450998000,63,0.0337201000,64,-1.3496900000,65,-0.8602150000,66,0.4240800000,67,-0.6431850000,68,-0.2916430000,69,-0.0241676000,70,0.1642500000,71,-2.1528400000,72,0.1198040000,73,-0.1880220000,74,0.1072520000,75,0.0425444000,76,-1.5982500000,77,0.5095640000,78,0.0152825000,79,-0.2521600000,80,-0.5125070000,81,0.6239880000,82,-0.0433725000,83,1.3003400000,84,-0.9772550000,85,-0.5370180000,86,-0.1767800000,87,0.5435560000,88,0.3961310000,89,0.6720020000,90,-0.3448760000,91,1.0626100000,92,-0.0801438000,93,-0.0138551000,94,-0.0947578000,95,1.1438200000,96,-0.5444670000,97,0.3338730000,98,0.3621590000,99,-0.0119703000,100,-0.0278165000,101,0.3028800000,102,0.1073800000,103,-0.7721810000,104,-0.4774550000 +78,0,0.6084310000,133,-1.0000000000,55,-1.2777100000,56,-0.7290650000,57,-1.2984100000,58,-0.0982144000,59,-0.6662040000,60,-0.4221680000,61,-0.6154540000,62,-0.6791170000,63,0.0194043000,64,0.8538290000,65,2.1373500000,66,-2.5762500000,67,-0.5122160000,68,0.4522800000,69,-0.3234330000,70,1.7297600000,71,0.2373040000,72,0.0038325600,73,-0.8508020000,74,0.2997070000,75,0.6511570000,76,-0.0445476000,77,-0.2615480000,78,-0.0139483000,79,1.1414300000,80,-0.7002600000,81,0.5692310000,82,-0.0448766000,83,0.4039890000,84,-0.1368310000,85,0.8843180000,86,0.1579080000,87,1.9055200000,88,-0.3379570000,89,-0.6161290000,90,-0.8035980000,91,-0.1983080000,92,-0.3501550000,93,-0.0343611000,94,-1.0610000000,95,-0.0097982200,96,-2.2415000000,97,0.6636140000,98,-0.6760850000,99,-0.4427890000,100,0.6087660000,101,0.0870358000,102,0.2323480000,103,0.5133860000,104,0.2772560000 +79,0,-0.1356340000,134,-1.0000000000,55,-0.3707130000,56,0.0711916000,57,1.4993300000,58,0.5645120000,59,-0.9748420000,60,0.6647860000,61,1.0637500000,62,0.4985240000,63,-0.0131325000,64,-1.5802400000,65,1.1470600000,66,-0.9178690000,67,-0.7067300000,68,-0.0860327000,69,0.5518000000,70,-0.0523466000,71,-1.3160800000,72,-1.0335300000,73,0.6314560000,74,-0.9903220000,75,0.1339870000,76,-0.5447600000,77,1.4818800000,78,0.0044548300,79,-1.0348400000,80,0.5076240000,81,-1.0106700000,82,0.0129405000,83,-0.2766390000,84,-1.5001100000,85,0.2270840000,86,-0.6180090000,87,0.1604130000,88,0.4464300000,89,-0.8308760000,90,4.8858100000,91,-0.4041660000,92,0.5595920000,93,-0.0193831000,94,0.1361910000,95,-1.1048900000,96,0.6752030000,97,-0.4314970000,98,-0.3938460000,99,0.5693370000,100,-0.5465840000,101,0.2329640000,102,-0.0870405000,103,-0.0341218000,104,0.0270025000 +80,0,-0.5575620000,135,-1.0000000000,55,-0.1593570000,56,-0.2249730000,57,1.2554500000,58,0.9209790000,59,-0.4207950000,60,-1.2125200000,61,1.1521100000,62,-0.4398220000,63,0.0151032000,64,-0.3272810000,65,1.4165900000,66,0.0542757000,67,0.4892880000,68,-0.5541800000,69,-0.8354190000,70,0.7851950000,71,-0.3173020000,72,-0.1234620000,73,-0.0918657000,74,1.3383700000,75,1.0699000000,76,-0.2047290000,77,0.6242160000,78,-0.0342358000,79,0.4582230000,80,-0.5251220000,81,-0.7864690000,82,0.0434247000,83,1.7256400000,84,-0.8925370000,85,0.0384974000,86,0.3671860000,87,0.5921830000,88,0.0714608000,89,0.6072950000,90,0.7508510000,91,0.1543920000,92,-1.0280800000,93,-0.0148260000,94,-0.4136260000,95,1.1412600000,96,-0.4796850000,97,0.0797021000,98,-0.4173380000,99,0.8512360000,100,0.8996310000,101,-0.8222330000,102,0.0135563000,103,0.2769410000,104,-0.1561200000 +81,0,0.7212300000,136,-1.0000000000,55,0.5428630000,56,-0.0487848000,57,-0.0068899800,58,0.3935680000,59,-0.4655990000,60,2.1956700000,61,-0.0273590000,62,0.3510410000,63,0.0310340000,64,-0.7069220000,65,-0.1988150000,66,1.3046900000,67,0.2045570000,68,-1.2316000000,69,0.2840700000,70,0.6201920000,71,-0.4083520000,72,0.2420800000,73,0.0424398000,74,0.1993830000,75,-0.4048080000,76,1.7416500000,77,0.1349210000,78,0.0215892000,79,-0.2820250000,80,0.4524730000,81,-0.2191640000,82,-0.0341746000,83,1.2542600000,84,-0.2843150000,85,0.5515350000,86,0.8738700000,87,-1.2269800000,88,0.2911490000,89,-0.1707800000,90,1.5080400000,91,0.7673630000,92,0.2684030000,93,0.0103636000,94,-0.1357900000,95,0.1940910000,96,0.7535540000,97,-0.1292360000,98,0.6175680000,99,-0.9805250000,100,-1.0376400000,101,1.1274300000,102,-0.1524340000,103,0.2030260000,104,-0.3159450000 +82,0,-0.2003490000,137,-1.0000000000,55,-0.1486460000,56,-0.1007750000,57,1.9728200000,58,0.0584494000,59,-1.2587000000,60,-0.0319007000,61,0.1731180000,62,-2.4435500000,63,-0.0305067000,64,0.0430766000,65,0.5543300000,66,0.4169000000,67,-0.2466780000,68,0.5190880000,69,-0.0614275000,70,0.8977990000,71,-0.2089070000,72,0.0808688000,73,-0.0574783000,74,0.1245930000,75,1.3411900000,76,0.6677210000,77,-0.0015990800,78,-0.0314544000,79,-0.0233277000,80,-0.2569300000,81,-0.2307680000,82,-0.0306223000,83,0.3756070000,84,0.3449970000,85,0.1947020000,86,-0.0275201000,87,-0.1136030000,88,0.1357620000,89,0.6613100000,90,-0.0300680000,91,-0.0655663000,92,0.0412882000,93,-0.0522196000,94,-1.0213100000,95,0.0821611000,96,0.2543690000,97,-1.4335400000,98,0.0765734000,99,-0.7714210000,100,-0.1053650000,101,-0.0296031000,102,-0.0028192500,103,-0.1183120000,104,-0.0228888000 +83,0,1.1408600000,138,-1.0000000000,55,0.6194360000,56,-0.4636810000,57,-0.6635810000,58,4.0824700000,59,-0.1794690000,60,-0.4605200000,61,0.4187530000,62,0.2176960000,63,-0.0259006000,64,0.1492610000,65,-0.1289170000,66,-0.4204990000,67,0.5325650000,68,-0.3033720000,69,0.2754790000,70,-0.4493570000,71,-0.5734480000,72,0.2661350000,73,0.5741750000,74,-0.4237690000,75,-0.2644380000,76,0.3119950000,77,0.8241190000,78,-0.0229884000,79,0.4664570000,80,0.1934820000,81,-0.4334080000,82,0.0288274000,83,1.2554200000,84,-0.0288263000,85,0.1736050000,86,0.8054080000,87,0.7523200000,88,-0.2157860000,89,0.3188580000,90,1.5877900000,91,1.6672800000,92,0.0576160000,93,0.0072469200,94,0.0246062000,95,0.5571070000,96,0.3283330000,97,-0.0586124000,98,-0.0524537000,99,0.1085990000,100,-0.7462000000,101,0.8575250000,102,-0.0530069000,103,-0.3454020000,104,0.1503760000 +84,0,0.7715080000,139,-1.0000000000,55,-0.2265050000,56,-0.5113160000,57,-1.5817100000,58,-0.1197820000,59,0.6071090000,60,0.6437960000,61,0.1527460000,62,-0.1007260000,63,-0.0304688000,64,0.7351790000,65,-0.0780280000,66,0.3559940000,67,-0.0043109100,68,-0.3369730000,69,0.1167270000,70,0.5198390000,71,0.3233160000,72,-0.1791040000,73,0.4478130000,74,0.0097372900,75,-1.6126700000,76,-2.1444700000,77,-0.2202720000,78,0.0323286000,79,0.2375060000,80,-0.7202220000,81,1.5162800000,82,-0.0068492800,83,0.3783310000,84,-0.0918100000,85,-0.7700370000,86,-0.3928130000,87,0.0298061000,88,-0.4875010000,89,0.2884210000,90,0.7807060000,91,-0.1882870000,92,0.0261129000,93,0.0336255000,94,0.9971490000,95,-0.1053900000,96,0.7319250000,97,1.1712000000,98,-0.1734680000,99,0.1576210000,100,0.0043639300,101,-0.2704090000,102,2.3495900000,103,0.1635230000,104,0.0060922200 +85,0,0.4939270000,140,-1.0000000000,55,-0.2391140000,56,-0.5455750000,57,0.6592620000,58,-0.3269850000,59,-0.5814960000,60,1.1225200000,61,0.0630127000,62,0.4526320000,63,-0.0341486000,64,-0.6851630000,65,-0.2466260000,66,-0.4801720000,67,0.2823590000,68,-0.3864110000,69,-0.1521510000,70,0.0290213000,71,1.0799700000,72,-0.0500010000,73,0.5933610000,74,-0.3004430000,75,0.0018102900,76,1.9268000000,77,-0.0604200000,78,0.0368681000,79,-0.9344260000,80,0.5959130000,81,0.3573600000,82,-0.0378197000,83,0.2875520000,84,0.3939430000,85,0.0297685000,86,-0.1747770000,87,-0.6840970000,88,-0.2618970000,89,0.0026274600,90,2.3784800000,91,-0.1183840000,92,0.3362090000,93,-0.0201711000,94,-0.0625848000,95,-0.1923710000,96,0.0345450000,97,0.2331220000,98,-0.6265770000,99,-1.2897800000,100,0.7046630000,101,-0.0963558000,102,0.2785570000,103,0.3766130000,104,-0.1368550000 +86,0,0.4253530000,141,-1.0000000000,55,-0.9553750000,56,-0.2445100000,57,0.5094790000,58,-0.8509720000,59,-2.1496200000,60,-0.5958700000,61,0.2512640000,62,0.2084390000,63,-0.0351369000,64,0.0293701000,65,-0.2458020000,66,-0.5556200000,67,0.4413020000,68,-0.2458790000,69,0.0024334700,70,0.4106860000,71,-0.3863210000,72,1.2284500000,73,0.2677280000,74,-0.3861470000,75,-0.0684611000,76,1.0491200000,77,-0.3180750000,78,0.0113354000,79,-0.2885060000,80,0.8176510000,81,-0.3043620000,82,0.0250062000,83,1.5353300000,84,0.2443430000,85,0.0741064000,86,-0.0372326000,87,1.0075200000,88,0.2734610000,89,0.2786640000,90,-0.7916180000,91,0.0569565000,92,-0.3831670000,93,-0.0113765000,94,-0.2183580000,95,0.4492800000,96,0.3217970000,97,0.1079170000,98,-0.0843327000,99,0.2759060000,100,-0.3431080000,101,-0.2786720000,102,-0.7828310000,103,-0.6347910000,104,0.2798520000 +87,0,-0.1543990000,142,-1.0000000000,55,0.2006720000,56,0.1160830000,57,0.8750780000,58,-0.2592200000,59,-0.7301670000,60,-0.0191861000,61,-0.1758230000,62,-0.2801030000,63,-0.0520292000,64,0.0356653000,65,0.2475900000,66,-0.0298077000,67,0.2720570000,68,-0.1448200000,69,0.3582520000,70,0.0359430000,71,-0.6254910000,72,-0.3574770000,73,-0.4504180000,74,0.1347960000,75,-0.1155400000,76,-0.1165510000,77,-0.0180279000,78,-0.0521517000,79,0.0278086000,80,-0.6627940000,81,-0.1316020000,82,0.0295228000,83,0.2587440000,84,-0.0541154000,85,-0.5056740000,86,0.0584831000,87,-0.2026290000,88,0.1342360000,89,-0.1500110000,90,0.0067172600,91,-0.0130199000,92,-0.2714130000,93,0.0031988500,94,0.3395450000,95,0.0120257000,96,0.3940640000,97,0.0697202000,98,0.0021736000,99,0.1196730000,100,0.1129390000,101,0.0510011000,102,-0.0176527000,103,-0.1282050000,104,-0.1377720000 +88,0,0.7166250000,143,-1.0000000000,55,-1.3877100000,56,0.6585040000,57,0.8020030000,58,-0.7410280000,59,-0.6379380000,60,-4.3954200000,61,0.7151960000,62,-0.5551560000,63,0.0400651000,64,-0.4706060000,65,1.6677500000,66,-2.3554200000,67,0.7752090000,68,-0.0974699000,69,-0.6217520000,70,0.4979000000,71,1.1338800000,72,0.5496080000,73,-1.0653100000,74,0.3410150000,75,0.1614310000,76,0.7874760000,77,-1.7336400000,78,-0.0010458200,79,1.4918200000,80,0.1856470000,81,-1.1250800000,82,-0.0321870000,83,0.1456040000,84,0.0247552000,85,-0.9721080000,86,0.0971549000,87,2.0285100000,88,0.5271600000,89,-0.3078830000,90,2.7546000000,91,0.0466470000,92,-0.7376300000,93,0.0048048500,94,-0.1364810000,95,0.5479660000,96,-0.1027340000,97,1.7318000000,98,-1.4982400000,99,0.4856640000,100,0.3733950000,101,-0.6545300000,102,-0.9029120000,103,0.7936940000,104,-0.0629457000 +89,0,0.6569480000,144,-1.0000000000,55,0.9923700000,56,-0.9083180000,57,1.7047100000,58,0.4187690000,59,-0.4088610000,60,2.2606500000,61,0.1486450000,62,-1.6028600000,63,-0.0114451000,64,-0.2169640000,65,0.0158839000,66,-1.3731500000,67,-0.0646010000,68,-0.3072300000,69,-0.7109090000,70,0.6884180000,71,-0.4270590000,72,-1.1330400000,73,-0.4339820000,74,0.1136730000,75,0.5133770000,76,1.7306900000,77,-0.1710800000,78,-0.0119060000,79,-0.7224750000,80,1.7016700000,81,-0.4016220000,82,0.0247374000,83,-0.6281110000,84,0.7796500000,85,0.5689260000,86,0.4322820000,87,0.1865610000,88,-0.1412910000,89,1.0769200000,90,1.1979500000,91,0.1742850000,92,-0.0164802000,93,-0.0168766000,94,-0.3897790000,95,-0.7798110000,96,0.9531290000,97,-0.3456540000,98,0.3756770000,99,0.3104380000,100,-0.4618640000,101,-0.1025490000,102,0.8452880000,103,-0.2344930000,104,0.2291460000 +90,0,-0.0512156000,145,-1.0000000000,55,-1.1748000000,56,0.2622110000,57,0.0110740000,58,0.1036880000,59,-0.6554760000,60,0.0868009000,61,-0.9959050000,62,-0.0256912000,63,-0.0101625000,64,-1.7829600000,65,-0.0513940000,66,-0.0908825000,67,-0.0772693000,68,0.0245766000,69,-1.4263000000,70,-0.2283530000,71,0.4544340000,72,-0.8380910000,73,1.1725600000,74,-0.2053410000,75,0.0715852000,76,-0.0165174000,77,0.3837770000,78,-0.0418812000,79,0.1616260000,80,-0.1659390000,81,-0.9854020000,82,-0.0333058000,83,1.6626000000,84,0.4014760000,85,-0.3198820000,86,0.4043740000,87,0.5632990000,88,0.3719890000,89,0.5223500000,90,0.2135470000,91,0.2471100000,92,1.2559500000,93,-0.0297054000,94,0.0061301100,95,-0.2082650000,96,-1.3454100000,97,0.3510070000,98,1.9918300000,99,0.4063400000,100,0.3209540000,101,-0.1533120000,102,-0.9528810000,103,-0.1772400000,104,-0.1976750000 +91,0,-0.1727060000,146,-1.0000000000,55,0.3641260000,56,0.7420690000,57,-0.4785910000,58,0.5249180000,59,0.0524959000,60,-0.3353880000,61,0.3161590000,62,-0.0218030000,63,-0.0411266000,64,-0.6229750000,65,-1.0284000000,66,-0.0361999000,67,-0.2018320000,68,-0.0838164000,69,0.5542880000,70,-0.1065160000,71,-0.1287980000,72,1.6275500000,73,-0.0279578000,74,-0.6131320000,75,0.0297057000,76,0.0893474000,77,-0.2902490000,78,0.0177010000,79,0.1712660000,80,-0.3483330000,81,-0.8394840000,82,0.0099344200,83,-0.7138790000,84,-0.2860080000,85,0.0048770100,86,0.1021370000,87,0.9065360000,88,-0.0410483000,89,-0.2040060000,90,-1.1764000000,91,-1.1253500000,92,0.1070930000,93,0.0161631000,94,0.2544620000,95,-0.4829780000,96,0.2224180000,97,0.2676210000,98,0.1402120000,99,0.1495340000,100,-0.6786040000,101,-0.1348000000,102,0.5874560000,103,0.6906670000,104,0.1912120000 +92,0,0.7631360000,147,-1.0000000000,55,-0.0220581000,56,0.1433350000,57,0.2402290000,58,-1.2666900000,59,-0.1658510000,60,0.3252890000,61,-0.3096400000,62,-0.1066060000,63,0.0427903000,64,1.1119200000,65,0.7288710000,66,1.8681400000,67,-0.1706410000,68,-0.4027250000,69,0.5872660000,70,0.7378950000,71,-0.7811020000,72,0.1243380000,73,-0.9923510000,74,-0.3155000000,75,0.3143680000,76,1.2558100000,77,-0.3877880000,78,-0.0278249000,79,-0.0271134000,80,-0.3478740000,81,0.9490230000,82,0.0118393000,83,1.1380500000,84,0.5991180000,85,-0.4410990000,86,0.1291350000,87,-0.8715860000,88,0.4864410000,89,0.1675000000,90,-0.3798140000,91,-0.2888790000,92,0.2179080000,93,-0.0410235000,94,-0.1918970000,95,0.3232050000,96,0.5563920000,97,0.6973840000,98,0.7032340000,99,0.0176801000,100,0.2919090000,101,0.0690905000,102,0.4582420000,103,0.1906640000,104,-0.7518700000 +93,0,0.8705630000,148,-1.0000000000,55,-0.0585293000,56,0.2080510000,57,0.9184390000,58,3.0294700000,59,-0.1833190000,60,-1.0073000000,61,0.0853118000,62,0.0126911000,63,0.0311292000,64,0.3298950000,65,0.0157784000,66,0.4806910000,67,-0.0763784000,68,-0.5827930000,69,-2.3886000000,70,0.6386060000,71,-0.3451430000,72,1.4570700000,73,0.3419250000,74,0.4731640000,75,-0.2079390000,76,0.4087890000,77,0.1700260000,78,-0.0047163800,79,0.2366500000,80,0.5365550000,81,0.1574490000,82,0.0059168000,83,0.9964530000,84,-0.0512035000,85,-0.2591080000,86,0.6482750000,87,0.5007060000,88,0.0052634900,89,-0.0060920900,90,2.2241400000,91,0.9512490000,92,-0.2809530000,93,-0.0082569200,94,-0.4788490000,95,0.0067911300,96,-0.2700080000,97,0.1010950000,98,0.3652590000,99,-0.1137550000,100,-0.0110652000,101,-0.5023130000,102,0.7423890000,103,-0.3402010000,104,0.1421450000 +94,0,0.3336190000,149,-1.0000000000,55,0.0189039000,56,0.5987880000,57,0.5103930000,58,0.2913090000,59,-0.8055630000,60,-0.5626220000,61,-0.5810830000,62,-0.1402380000,63,-0.0243705000,64,0.0886288000,65,-0.0767287000,66,-0.0774317000,67,-0.3982490000,68,-0.4315290000,69,-0.3553280000,70,1.1615700000,71,0.0523207000,72,-0.1954570000,73,-4.5691100000,74,-0.1157170000,75,0.3529760000,76,-0.1460150000,77,0.6073970000,78,0.0330744000,79,-0.1335820000,80,0.1582870000,81,-0.3121230000,82,0.0248510000,83,0.1989910000,84,-0.2618740000,85,-0.0125937000,86,0.2688870000,87,-0.0517697000,88,0.0748333000,89,0.0337017000,90,-0.5252320000,91,0.3420290000,92,-0.3972050000,93,0.0549536000,94,-0.0989832000,95,-0.0237106000,96,0.3948550000,97,-0.3348850000,98,-0.4262590000,99,-0.0412407000,100,0.2338260000,101,-0.5157870000,102,0.7253440000,103,0.9124080000,104,-0.7330760000 +95,0,0.5767940000,150,-1.0000000000,55,-1.0375000000,56,0.1205350000,57,0.1764450000,58,-0.1486320000,59,-0.6165560000,60,-5.3970700000,61,0.3002520000,62,-0.0700774000,63,-0.0204792000,64,0.4702640000,65,0.4552130000,66,-2.7131200000,67,-1.0154700000,68,-0.0817577000,69,-0.2479410000,70,0.5771960000,71,0.4604260000,72,-1.5434700000,73,-3.0839200000,74,0.3702860000,75,0.4093540000,76,-1.0539900000,77,0.7373720000,78,-0.0097696600,79,0.4418610000,80,0.2841770000,81,0.6632050000,82,-0.0241733000,83,0.5796990000,84,-0.6716850000,85,-0.6244790000,86,0.0960096000,87,0.0516749000,88,-0.3212640000,89,0.3747890000,90,4.1724300000,91,-0.2129900000,92,-0.4886830000,93,0.0468159000,94,0.2570570000,95,-0.4436810000,96,-1.3867300000,97,0.2082210000,98,-0.6872770000,99,0.9567840000,100,-0.4675590000,101,0.3352410000,102,-0.8479680000,103,0.9136210000,104,0.3794790000 +96,0,0.0212333000,151,-1.0000000000,55,-0.0557547000,56,0.0174398000,57,-0.0289486000,58,-0.0069361100,59,0.0004698010,60,0.0271755000,61,-0.0027668600,62,0.0003407070,63,0.0020968000,64,-0.0595583000,65,-0.0606649000,66,0.0163002000,67,-0.0426006000,68,-0.0413912000,69,-0.0676355000,70,0.0178816000,71,-0.0190711000,72,0.0481924000,73,-0.0768090000,74,-0.0105402000,75,0.0254801000,76,-0.0320414000,77,0.0082831600,78,-0.0182402000,79,0.0400563000,80,-0.0143930000,81,-0.0248552000,82,0.0271423000,83,-0.0073653400,84,0.0474310000,85,0.0192145000,86,-0.0007249970,87,0.0283547000,88,-0.0227157000,89,-0.0198102000,90,-0.0130683000,91,-0.0073943300,92,-0.0417724000,93,0.0330949000,94,0.0000862506,95,-0.0431151000,96,-0.0672496000,97,-0.0192010000,98,-0.0614811000,99,-0.0430155000,100,-0.0368210000,101,0.0429338000,102,0.0359239000,103,-0.0092405300,104,-0.0392414000 +97,0,-0.7785750000,152,-1.0000000000,55,-0.2416960000,56,1.1421300000,57,1.2740900000,58,-0.1701390000,59,0.0201429000,60,-0.2259860000,61,0.1011600000,62,0.8232930000,63,0.0056619100,64,-1.3024300000,65,-0.7198980000,66,-0.8293950000,67,0.1913120000,68,0.9620150000,69,0.1621790000,70,-1.8122700000,71,-0.3858740000,72,0.3675390000,73,-0.8549280000,74,-0.2696140000,75,0.0069836700,76,-0.2803720000,77,0.4610170000,78,0.0109918000,79,-0.5831220000,80,1.1320700000,81,-1.1967400000,82,0.0165262000,83,-0.2058340000,84,-0.3331610000,85,0.6421270000,86,-0.6362970000,87,-1.6060900000,88,0.6625770000,89,0.0460402000,90,-1.2170000000,91,0.1474150000,92,0.1904030000,93,-0.0584182000,94,-0.4014210000,95,0.1230180000,96,-0.9138410000,97,-1.1179200000,98,0.4424300000,99,-0.4387040000,100,-1.3332200000,101,-0.2964690000,102,0.9180280000,103,0.1645730000,104,0.6133240000 +98,0,1.2952800000,153,-1.0000000000,55,-0.6920280000,56,0.0199228000,57,-0.8114470000,58,0.1127650000,59,0.2993600000,60,-0.4929050000,61,0.1970420000,62,-0.2041050000,63,-0.0462409000,64,1.5313200000,65,0.6576070000,66,0.3858140000,67,-1.0468800000,68,-0.2039380000,69,0.2421070000,70,0.8320270000,71,0.8533060000,72,0.3381950000,73,0.3741050000,74,-0.1031810000,75,0.2103680000,76,1.2797700000,77,0.3312070000,78,0.0217873000,79,0.1019940000,80,-0.4902350000,81,0.1074470000,82,0.0276326000,83,0.1227690000,84,-0.3108130000,85,0.0134461000,86,-0.2243150000,87,0.1078840000,88,-0.3416760000,89,-0.3423530000,90,-0.3560720000,91,-0.3166690000,92,0.3841810000,93,-0.0277934000,94,0.4384840000,95,0.0059038600,96,0.2452260000,97,0.0092834800,98,0.9988480000,99,0.0252490000,100,0.8306460000,101,-0.8356570000,102,0.6643420000,103,-0.2533240000,104,-0.4274480000 +99,0,0.6919710000,154,-1.0000000000,55,0.0431640000,56,0.2212930000,57,-0.8684550000,58,0.6432800000,59,-0.0327834000,60,-0.9593220000,61,-0.2326710000,62,-0.0920452000,63,0.0380635000,64,-0.1594710000,65,-0.3323770000,66,-0.5600470000,67,-0.4167030000,68,0.1516840000,69,0.1245640000,70,0.5568800000,71,-0.1251690000,72,-0.4132640000,73,0.0383472000,74,-0.3898480000,75,0.4447220000,76,-0.5560440000,77,0.5520580000,78,-0.0181630000,79,0.1423180000,80,-0.2198830000,81,0.4090170000,82,0.0313783000,83,0.6385150000,84,0.7325900000,85,0.2297740000,86,0.5525360000,87,-0.2037090000,88,0.1045460000,89,-0.4924590000,90,-0.9460770000,91,0.5198110000,92,0.2529310000,93,0.0544108000,94,-0.3909130000,95,0.1276490000,96,-0.2474110000,97,0.3313650000,98,0.1487630000,99,-0.2712580000,100,0.2844290000,101,-0.8148550000,102,0.4280600000,103,-0.0520978000,104,0.1304410000 +100,0,-1.4570300000,205,-1.0000000000,155,0.0833223000,156,0.7905060000,157,-0.7616920000,158,0.0130004000,159,0.4798470000,160,-0.8007350000,161,0.8815280000,162,0.7610790000,163,0.3733050000,164,-1.8244400000,165,0.2570090000,166,-0.7577060000,167,0.7787720000,168,-1.0102400000,169,-1.4202800000,170,0.7557030000,171,-0.2016910000,172,0.0561635000,173,-4.6731800000,174,-0.2039260000,175,-0.3574670000,176,-1.6295500000,177,-0.1743640000,178,-0.0634249000,179,-1.1226900000,180,1.2683700000,181,-0.0447193000,182,0.1381570000,183,-2.7643700000,184,0.0255678000,185,-0.7776140000,186,-0.4931480000,187,-1.1432600000,188,0.0570421000,189,-1.8964100000,190,0.3489590000,191,-0.1835110000,192,1.4232600000,193,1.2898500000,194,0.2685760000,195,0.4798340000,196,-0.0727558000,197,-0.2326770000,198,0.0877318000,199,-0.1153640000,200,-0.4203320000,201,-0.0079780000,202,0.2114660000,203,-0.5416760000,204,-1.4989200000 +101,0,-0.2693410000,206,-1.0000000000,155,0.0319058000,156,0.2594020000,157,-0.9854170000,158,0.0292775000,159,0.0020443200,160,-0.6760250000,161,-0.3368350000,162,0.7722550000,163,-0.1762530000,164,-0.6265410000,165,0.1852030000,166,0.4161990000,167,-0.2652410000,168,-2.7250500000,169,0.7026100000,170,-0.3744020000,171,0.6064550000,172,0.2021410000,173,-0.0757341000,174,-0.5748910000,175,-0.4495450000,176,0.0466941000,177,-0.7897290000,178,1.2725500000,179,0.0718766000,180,-0.1959120000,181,0.0325534000,182,-0.4388790000,183,0.1005900000,184,-0.8854960000,185,-0.0916686000,186,0.0724361000,187,-1.6806600000,188,0.7629810000,189,-1.4541400000,190,0.4676920000,191,1.2365800000,192,-0.2957730000,193,0.4260220000,194,2.0395400000,195,0.0643526000,196,0.6012660000,197,-1.5295800000,198,-2.1044300000,199,-0.9710010000,200,-0.3907300000,201,0.0241353000,202,0.3151060000,203,-0.0933212000,204,0.7140740000 +102,0,0.0234063000,207,-1.0000000000,155,-0.0518094000,156,0.0145651000,157,0.0224982000,158,0.0142803000,159,-0.0100378000,160,-0.0533618000,161,0.0268218000,162,-0.0028035700,163,-0.0347464000,164,0.0155387000,165,0.0328289000,166,0.0242873000,167,-0.0187158000,168,-0.0082494900,169,-0.0205358000,170,0.0045099000,171,-0.0063923200,172,-0.0008629860,173,-0.0291737000,174,-0.0124189000,175,0.0355873000,176,-0.0678430000,177,-0.0262317000,178,0.0260053000,179,-0.0062135100,180,0.0378841000,181,-0.0051495100,182,-0.0437009000,183,0.0037224400,184,0.0297854000,185,-0.0322233000,186,-0.0217528000,187,-0.0502463000,188,-0.0019272900,189,0.0095303500,190,-0.0537517000,191,-0.0387362000,192,-0.0107332000,193,0.0251826000,194,-0.0048459100,195,-0.0189544000,196,-0.0018166200,197,0.0150219000,198,-0.0041753200,199,0.0068072300,200,-0.0236703000,201,-0.0339084000,202,-0.0270404000,203,-0.0536929000,204,0.0179341000 +103,0,1.5586300000,208,-1.0000000000,155,0.0608225000,156,0.5023590000,157,0.2754680000,158,0.0262404000,159,0.6592450000,160,-0.3573570000,161,-1.4196500000,162,0.5121670000,163,-0.3135440000,164,0.0818965000,165,-0.2863160000,166,-0.4984510000,167,0.4376490000,168,0.2029510000,169,0.7792240000,170,-1.1462900000,171,0.1716160000,172,0.2405560000,173,-3.8594300000,174,0.4956270000,175,0.0543779000,176,0.4251660000,177,-0.4270070000,178,0.4640840000,179,0.1384550000,180,-1.5349300000,181,-0.0420782000,182,-0.2677370000,183,-0.5576450000,184,-0.0810911000,185,-0.5136520000,186,0.0095684700,187,-0.2795640000,188,0.2359080000,189,-0.4080060000,190,1.2495100000,191,-0.6129380000,192,-0.3900620000,193,-0.0186748000,194,0.5540290000,195,1.2956400000,196,-1.3001300000,197,-0.6071230000,198,0.6764470000,199,0.4292980000,200,0.1017020000,201,0.0330733000,202,0.4943880000,203,0.7852540000,204,-1.9241400000 +104,0,0.5782840000,209,-1.0000000000,155,0.0369366000,156,-0.1816680000,157,-0.5559180000,158,0.0071758400,159,-0.6746040000,160,0.0309298000,161,0.9721820000,162,0.8759180000,163,0.9309270000,164,0.1617180000,165,-0.0987583000,166,-0.5753010000,167,0.6792660000,168,-4.4875600000,169,-1.1907800000,170,0.9215580000,171,0.8082420000,172,0.0237907000,173,-1.2030600000,174,0.2440580000,175,-0.4402150000,176,0.9506700000,177,-0.5265640000,178,-0.0239483000,179,0.3905070000,180,0.3083590000,181,-0.0424924000,182,-0.1373630000,183,1.5103400000,184,-0.7660230000,185,-0.3814650000,186,0.5986890000,187,1.4426300000,188,-0.3173910000,189,0.1368320000,190,-0.5996710000,191,-1.0173500000,192,-0.8451140000,193,0.0996479000,194,-0.5686660000,195,0.4358240000,196,-0.2221250000,197,-1.0869100000,198,-1.7220900000,199,1.3817400000,200,-0.9875320000,201,0.0322044000,202,1.5222800000,203,-0.4537640000,204,-0.9941110000 +105,0,0.7990290000,210,-1.0000000000,155,0.0577220000,156,-0.0790231000,157,-2.3663300000,158,0.0347313000,159,0.4449090000,160,0.3107400000,161,0.2135000000,162,0.1805050000,163,-0.4237600000,164,-0.2973770000,165,1.0805900000,166,0.0523572000,167,0.1817950000,168,1.1489200000,169,-0.5408330000,170,1.0864200000,171,-0.3628990000,172,-0.3843840000,173,-5.5023500000,174,-0.2665010000,175,-0.1587640000,176,-0.0956569000,177,0.6194600000,178,0.7294510000,179,0.0212269000,180,-0.0645274000,181,0.0352672000,182,0.5693230000,183,0.9514620000,184,-0.5844870000,185,-0.2197150000,186,0.2404870000,187,0.0831900000,188,0.1582310000,189,-0.2608820000,190,0.1721840000,191,0.0651778000,192,-0.0543686000,193,0.0569975000,194,0.8494970000,195,-0.3350640000,196,-2.3857600000,197,0.2902230000,198,1.6857100000,199,-0.4971480000,200,-0.2620320000,201,-0.0032752400,202,-0.6603170000,203,0.0684884000,204,1.9010800000 +106,0,1.9955800000,211,-1.0000000000,155,0.0866190000,156,0.8084260000,157,3.0391400000,158,0.0014903200,159,0.2374790000,160,-1.2884300000,161,1.7577600000,162,0.7461100000,163,1.4761200000,164,-6.6772200000,165,-0.4573460000,166,-1.9649900000,167,0.7543750000,168,0.9593600000,169,0.8922740000,170,0.5323280000,171,-1.1090000000,172,-0.3276720000,173,1.8729300000,174,0.4219150000,175,-0.8667690000,176,0.4226130000,177,0.1134360000,178,-1.4170200000,179,1.2437500000,180,-3.3628700000,181,0.0104133000,182,-1.6859200000,183,0.2167590000,184,0.1812290000,185,-0.5664340000,186,0.0670473000,187,-1.0873200000,188,0.1483650000,189,-4.1305800000,190,1.5432800000,191,0.6391360000,192,2.9918200000,193,0.3391430000,194,0.6386740000,195,-0.0610584000,196,-0.7844150000,197,0.6209700000,198,0.1991160000,199,-1.2093800000,200,-0.1771750000,201,-0.0022803100,202,0.3807360000,203,-0.7339690000,204,-0.9509510000 +107,0,2.1942900000,212,-1.0000000000,155,0.0596460000,156,-0.1573230000,157,0.8960750000,158,0.0487793000,159,0.5407750000,160,-0.0727725000,161,0.6595470000,162,-0.1629020000,163,0.0517690000,164,-0.2981430000,165,0.2016380000,166,0.9555780000,167,0.0662141000,168,0.6140410000,169,0.5536920000,170,0.7719980000,171,-0.2515320000,172,-0.1628950000,173,1.5860200000,174,-0.3031550000,175,0.1873170000,176,0.3427140000,177,0.5441070000,178,0.8048580000,179,0.0250543000,180,-1.9004500000,181,0.0254448000,182,-0.3857750000,183,0.6019580000,184,0.0950578000,185,-0.1607070000,186,-0.1885260000,187,-1.3914300000,188,0.1388820000,189,0.9021980000,190,0.9400500000,191,1.0020600000,192,1.3502000000,193,-0.2576810000,194,0.0584110000,195,0.0725501000,196,-3.1187400000,197,0.3565670000,198,-0.1006080000,199,1.1596500000,200,0.3868900000,201,-0.0070839600,202,0.3379410000,203,0.4106110000,204,-1.0315600000 +108,0,0.2367740000,213,-1.0000000000,155,0.0109334000,156,0.6796080000,157,1.1128300000,158,0.0250902000,159,0.0254118000,160,-0.2168910000,161,-0.1716870000,162,-0.0613554000,163,-0.2192780000,164,-0.1043360000,165,0.2359540000,166,-0.1122290000,167,0.0098199700,168,-0.1738160000,169,0.1329830000,170,0.3361850000,171,0.5266770000,172,-0.0100047000,173,-1.2736000000,174,-0.2150820000,175,-0.2433080000,176,-0.0847012000,177,-0.3425750000,178,0.1661600000,179,-0.1182040000,180,0.3219070000,181,0.0168253000,182,0.3246540000,183,-0.3053610000,184,-0.0820265000,185,0.2065590000,186,0.2645010000,187,0.0387873000,188,-0.3736560000,189,0.3548690000,190,0.1838170000,191,0.2772280000,192,-1.0943400000,193,0.0265972000,194,0.6501370000,195,-0.2619470000,196,0.4943660000,197,0.3866310000,198,-0.0814967000,199,-1.2842700000,200,-0.1084220000,201,-0.0007088020,202,-0.3112910000,203,0.0616835000,204,-0.0386886000 +109,0,0.7198710000,214,-1.0000000000,155,0.1182260000,156,-0.1030150000,157,0.7332960000,158,-0.0388826000,159,0.9679860000,160,-0.1207820000,161,-0.5576240000,162,-3.2475500000,163,-0.2375070000,164,-0.3978980000,165,-0.1309680000,166,-0.0998569000,167,-0.5936640000,168,-0.2127860000,169,0.1383590000,170,2.0990900000,171,-1.8510300000,172,0.1997760000,173,5.2301800000,174,0.0261428000,175,0.0516179000,176,-0.7314040000,177,-0.0141510000,178,0.3291680000,179,0.3334420000,180,-0.5693770000,181,0.0217895000,182,-0.1718360000,183,0.6113220000,184,-0.4371630000,185,0.0810917000,186,0.7366760000,187,-2.4069500000,188,-0.0926577000,189,-1.0150900000,190,-0.8107010000,191,-0.0589842000,192,-2.3224600000,193,0.0176049000,194,0.4505170000,195,-0.5268000000,196,-1.0285900000,197,0.2441800000,198,-0.4761440000,199,0.9927750000,200,0.5722590000,201,0.0019587000,202,-0.7307400000,203,-0.8822810000,204,1.2355800000 +110,0,0.1074700000,215,-1.0000000000,155,0.0130341000,156,0.2787060000,157,0.2538800000,158,0.0490429000,159,0.3177600000,160,0.1172500000,161,-0.8791070000,162,-0.0763447000,163,0.3546660000,164,0.2205530000,165,-0.1592670000,166,0.3231520000,167,0.1409040000,168,0.9990340000,169,-0.2428840000,170,-0.0423480000,171,-0.0843836000,172,0.3395400000,173,-0.0170251000,174,-0.0050992500,175,0.3390080000,176,-0.1023940000,177,-0.3180780000,178,-0.1566350000,179,0.0221157000,180,-0.3533600000,181,-0.0255645000,182,-0.0443373000,183,-0.1947560000,184,-0.3003700000,185,0.1906830000,186,-0.1370390000,187,0.6133430000,188,-0.0807962000,189,-0.0710673000,190,0.1109860000,191,-0.3540420000,192,-1.2467000000,193,0.1095890000,194,1.0867400000,195,-0.3881890000,196,-0.2475720000,197,0.5147150000,198,-0.3363390000,199,0.5477260000,200,1.2297500000,201,-0.0070297500,202,-0.2795310000,203,-0.4620280000,204,-0.5259160000 +111,0,1.5488100000,216,-1.0000000000,155,0.1121510000,156,0.6013710000,157,-0.3625520000,158,0.0049230000,159,-0.1668500000,160,-0.2395820000,161,-0.8060940000,162,0.1933130000,163,-0.5782080000,164,-1.9865700000,165,0.4802500000,166,-0.3930500000,167,0.2268240000,168,-2.0984300000,169,0.1829720000,170,0.9642980000,171,-0.2022490000,172,-0.2738110000,173,0.2415360000,174,0.6810250000,175,0.3284610000,176,-0.0411412000,177,0.0421066000,178,-0.0933439000,179,-0.4126720000,180,-1.2454000000,181,0.0467147000,182,-0.3038030000,183,-0.0169792000,184,-0.3574590000,185,0.1574190000,186,-0.0372106000,187,-0.0652445000,188,0.7078510000,189,0.6108400000,190,-0.7139060000,191,-0.4882670000,192,-6.1603300000,193,0.3689700000,194,-0.2243300000,195,0.1845790000,196,1.4235800000,197,-0.0401566000,198,0.3841300000,199,0.7043410000,200,0.4134950000,201,0.0915489000,202,0.1570710000,203,-0.0902075000,204,-0.4738840000 +112,0,1.0187400000,217,-1.0000000000,155,0.0725208000,156,0.6138650000,157,0.0531777000,158,-0.0004715630,159,-0.6148610000,160,-0.1935840000,161,-0.0215944000,162,-0.0783020000,163,-0.3740260000,164,-0.1748840000,165,-0.4875340000,166,0.2600450000,167,0.2030490000,168,-0.6918330000,169,0.3652720000,170,-0.5410670000,171,0.3342720000,172,0.0438866000,173,0.8777190000,174,-0.3380940000,175,0.1793570000,176,0.1325280000,177,-0.2589180000,178,1.0660500000,179,-0.1900160000,180,-0.7495460000,181,-0.0172394000,182,-0.0791707000,183,0.7448280000,184,0.1088730000,185,0.2324240000,186,-0.5263740000,187,-1.2673100000,188,-0.1671350000,189,0.1677530000,190,-0.0599897000,191,0.3742750000,192,1.3867300000,193,-0.0281088000,194,-0.7565730000,195,-0.3730260000,196,0.6578490000,197,-0.5675090000,198,-0.4421370000,199,0.1691380000,200,-0.3687350000,201,-0.0237022000,202,-0.0632803000,203,0.5939470000,204,0.5982750000 +113,0,0.3288450000,218,-1.0000000000,155,-0.0552316000,156,0.2390560000,157,-5.2588800000,158,0.0257235000,159,0.3759550000,160,-0.3123020000,161,-3.1713800000,162,0.4741640000,163,-0.8211480000,164,-2.9981100000,165,0.0525607000,166,-4.5607000000,167,-1.2303500000,168,0.7099200000,169,0.3483090000,170,-2.3021700000,171,0.0362767000,172,-0.9047490000,173,4.7589300000,174,-0.3109150000,175,-5.0704300000,176,0.2834890000,177,-0.5180630000,178,0.1229730000,179,-0.0673242000,180,-0.9761190000,181,-0.0237680000,182,0.7908490000,183,0.1060450000,184,0.6788740000,185,0.2055770000,186,0.3116190000,187,0.6745770000,188,0.2463250000,189,-1.0786700000,190,-6.4643700000,191,-0.6020590000,192,-1.0307900000,193,0.0476874000,194,1.8035900000,195,-0.1902870000,196,-0.8073790000,197,0.1920710000,198,0.0242407000,199,-4.5484400000,200,0.5027030000,201,-0.0062933800,202,0.3898700000,203,-0.6717780000,204,-0.1134930000 +114,0,1.9180000000,219,-1.0000000000,155,0.1199980000,156,0.2447270000,157,1.1436400000,158,-0.0268573000,159,0.1027810000,160,-0.4644380000,161,-0.2478680000,162,0.6223690000,163,-0.4804100000,164,0.2623730000,165,0.5615120000,166,-0.6154570000,167,-0.3017750000,168,0.0626855000,169,-0.1209550000,170,-0.9324620000,171,-1.2733800000,172,-0.4523480000,173,-0.2240950000,174,0.2711340000,175,0.2239160000,176,-0.0456534000,177,0.5345160000,178,0.5008170000,179,-0.1768680000,180,0.2167870000,181,-0.0228135000,182,0.5003500000,183,-0.2671620000,184,0.2684520000,185,0.0196835000,186,0.1521660000,187,0.2937480000,188,1.2903800000,189,-0.0331702000,190,0.3660590000,191,-0.1163720000,192,-0.0239988000,193,-0.1047360000,194,-0.0000607658,195,-0.0367583000,196,-0.5740890000,197,-0.0884183000,198,1.9978200000,199,-0.4877610000,200,0.1192910000,201,0.0134022000,202,-0.8195710000,203,0.1284030000,204,-0.2008000000 +115,0,1.3817800000,220,-1.0000000000,155,0.0754143000,156,0.1337320000,157,1.8088500000,158,-0.0340072000,159,0.3835870000,160,0.0533913000,161,1.1855800000,162,0.8038100000,163,-0.2778000000,164,0.4078220000,165,0.1137680000,166,-1.0184400000,167,-0.3284120000,168,0.6673200000,169,0.1619180000,170,-0.0960658000,171,0.1212460000,172,0.3822320000,173,0.7277640000,174,0.1435840000,175,0.7430540000,176,-0.0655491000,177,-0.0768500000,178,-0.3753490000,179,0.4446990000,180,-0.3366810000,181,0.0336847000,182,-0.5424630000,183,0.0015239800,184,0.1898280000,185,-0.0336828000,186,-0.1535800000,187,-0.0205406000,188,-0.5728490000,189,1.3882900000,190,0.2637680000,191,0.7412130000,192,-5.9238900000,193,0.0331267000,194,0.5735700000,195,-0.1174720000,196,-0.5078260000,197,-0.4868370000,198,-0.1448190000,199,-0.7763170000,200,-0.1232390000,201,0.0247602000,202,0.3785660000,203,-0.6514380000,204,1.2830500000 +116,0,1.7213400000,221,-1.0000000000,155,0.0390192000,156,0.2436900000,157,-0.7018250000,158,0.0231112000,159,-0.6479210000,160,-0.0321971000,161,-0.1603600000,162,-0.0775552000,163,-0.5005500000,164,-1.2984600000,165,0.5272840000,166,-0.0172183000,167,-0.7134280000,168,0.0335263000,169,0.3321700000,170,-1.6163600000,171,-0.5508080000,172,-0.8013750000,173,0.0165481000,174,0.5706510000,175,0.4627590000,176,-0.1368140000,177,0.0914227000,178,-0.3358150000,179,0.3192430000,180,-4.4621000000,181,-0.0347700000,182,0.3916730000,183,-0.1476140000,184,-0.0300719000,185,0.0000514511,186,0.6294860000,187,-0.6330210000,188,1.8339400000,189,-0.1591280000,190,-0.1480340000,191,-0.1378570000,192,-0.4112540000,193,0.0018660200,194,0.6762760000,195,-0.2181350000,196,0.0121491000,197,-0.2980580000,198,1.0417500000,199,-0.2159080000,200,0.2214970000,201,-0.0056336000,202,0.2022960000,203,-0.2894150000,204,-0.3131430000 +117,0,1.3627000000,222,-1.0000000000,155,0.1400680000,156,0.6510400000,157,-1.7308200000,158,-0.0081774900,159,-1.7151900000,160,-0.0472077000,161,1.7501900000,162,0.5296290000,163,0.9194160000,164,0.3766520000,165,-0.1168150000,166,0.7131950000,167,-0.1546230000,168,0.4128010000,169,-0.5613310000,170,0.7777330000,171,0.0724649000,172,0.4417540000,173,0.3226060000,174,-0.0531887000,175,0.1210530000,176,0.2099470000,177,0.2284630000,178,0.0430480000,179,0.3087870000,180,-3.0157200000,181,-0.0314032000,182,-0.0196211000,183,0.3106700000,184,-0.0177157000,185,-0.0679773000,186,-0.7074490000,187,0.3321220000,188,-0.0034299600,189,0.4727670000,190,0.3886030000,191,0.5576850000,192,-0.3969340000,193,0.4636120000,194,-0.8167080000,195,-0.1364190000,196,-0.0158155000,197,-0.0388446000,198,0.2275220000,199,0.6452740000,200,0.3721080000,201,0.0192537000,202,-0.5013120000,203,0.0491644000,204,0.4659020000 +118,0,0.0071107000,223,-1.0000000000,155,-0.0321807000,156,-0.0432151000,157,-0.0240465000,158,0.0397251000,159,0.0195064000,160,-0.0172432000,161,-0.0416270000,162,-0.0107882000,163,0.0028513400,164,-0.0462398000,165,-0.0520007000,166,0.0321885000,167,0.0153069000,168,0.0345859000,169,0.0175580000,170,-0.0412556000,171,-0.0249852000,172,-0.0167860000,173,-0.0109195000,174,-0.0417574000,175,0.0068660900,176,-0.0502874000,177,0.0286406000,178,-0.0262398000,179,0.0160283000,180,-0.0399511000,181,-0.0424673000,182,-0.0155217000,183,-0.0196412000,184,-0.0415918000,185,-0.0217928000,186,0.0114652000,187,0.0221806000,188,-0.0453228000,189,0.0410271000,190,0.0143819000,191,0.0221271000,192,-0.0298233000,193,0.0173726000,194,-0.0397218000,195,0.0153055000,196,0.0050931100,197,-0.0426442000,198,0.0210799000,199,-0.0536940000,200,-0.0438200000,201,0.0136194000,202,-0.0517302000,203,-0.0148159000,204,0.0083117700 +119,0,0.8580070000,224,-1.0000000000,155,-0.0238539000,156,0.2389400000,157,3.3313600000,158,-0.0480376000,159,0.6339470000,160,0.0394098000,161,-0.4923300000,162,-0.1500190000,163,-0.2973400000,164,0.5260160000,165,-0.3799500000,166,0.5344910000,167,0.0051326200,168,-1.4653300000,169,0.0323186000,170,-0.4565100000,171,-0.1781960000,172,0.2285550000,173,-2.1655700000,174,-0.2570310000,175,-0.2758290000,176,-0.1433070000,177,0.3792090000,178,0.6483370000,179,0.1803770000,180,0.2204560000,181,-0.0465983000,182,0.3004540000,183,-0.5307840000,184,-0.0598221000,185,0.0382797000,186,0.4413620000,187,-2.5398800000,188,-0.3937860000,189,0.1095950000,190,-0.0364483000,191,-0.2160450000,192,-7.3868100000,193,-0.5965110000,194,-0.9077360000,195,-0.0872865000,196,0.1985980000,197,1.5952900000,198,-0.5477850000,199,0.9810080000,200,0.8169040000,201,-0.0164319000,202,0.1938210000,203,-0.1425400000,204,-0.7659190000 +120,0,-0.2330230000,225,-1.0000000000,155,-0.0137965000,156,-0.7661710000,157,0.3752780000,158,-0.0329157000,159,-2.0208300000,160,0.3311720000,161,-0.3466030000,162,0.5346100000,163,-0.4801400000,164,-1.2636500000,165,-0.2729740000,166,-0.0721324000,167,-0.4929870000,168,-1.9201000000,169,0.7898720000,170,-2.8252600000,171,0.0564019000,172,0.6501850000,173,-1.9684800000,174,-0.0506861000,175,0.2298560000,176,-0.5133050000,177,0.2497770000,178,-0.2860130000,179,0.8042230000,180,-2.0401300000,181,-0.0466460000,182,-0.2618690000,183,0.0414767000,184,0.1671870000,185,-0.2878130000,186,0.1952930000,187,-1.9001400000,188,0.2122490000,189,-1.9129300000,190,-1.0422500000,191,-0.2557010000,192,-0.5296650000,193,-0.2254440000,194,2.5463800000,195,0.0945890000,196,0.5701940000,197,0.2186640000,198,0.0717065000,199,-0.6446840000,200,1.4494500000,201,-0.0000579296,202,0.5878210000,203,-1.1183900000,204,-0.6349530000 +121,0,-0.6196960000,226,-1.0000000000,155,0.0033874100,156,-0.2770770000,157,0.3060310000,158,-0.0012884200,159,-0.9931870000,160,-0.6603340000,161,0.0710213000,162,0.8635690000,163,-0.3339450000,164,-1.7961900000,165,-0.2114310000,166,0.4633030000,167,-0.5350360000,168,1.6209600000,169,1.1921900000,170,0.2840930000,171,0.0007219550,172,0.1491460000,173,0.0441215000,174,-0.2335960000,175,-0.6768710000,176,-2.0761700000,177,0.6025860000,178,-0.1276130000,179,1.0576100000,180,-2.2987600000,181,-0.0392607000,182,-0.3787960000,183,0.5513220000,184,0.2132810000,185,0.2851120000,186,0.0549308000,187,-3.0376300000,188,-0.0020311700,189,-2.1145000000,190,-0.2332550000,191,-1.4009200000,192,0.0412137000,193,0.2095340000,194,3.0120100000,195,-0.7872040000,196,0.0422785000,197,0.4424940000,198,0.4746320000,199,-1.4013200000,200,1.3834900000,201,-0.0073719700,202,-0.8149360000,203,-0.3954260000,204,-1.4556300000 +122,0,-0.4783310000,227,-1.0000000000,155,-0.0354507000,156,-1.2819700000,157,3.0298600000,158,-0.0419932000,159,-0.5452260000,160,0.6498340000,161,0.7956790000,162,-0.5982880000,163,-0.3603770000,164,1.3418900000,165,-0.5507240000,166,0.4836480000,167,0.0511122000,168,1.4644800000,169,0.6709970000,170,0.1173480000,171,0.3357760000,172,-1.5884600000,173,1.7620900000,174,-0.8154080000,175,1.1764800000,176,-0.2797580000,177,0.7534810000,178,1.1277600000,179,0.1238730000,180,-1.0034800000,181,-0.0440972000,182,0.0669003000,183,1.8369100000,184,0.1557520000,185,1.5866300000,186,0.0242516000,187,0.7193830000,188,-0.4401060000,189,0.6848640000,190,0.3575600000,191,0.4014420000,192,-1.0540400000,193,-0.3174160000,194,1.1829700000,195,-0.1164630000,196,0.5842650000,197,0.5315790000,198,-0.1471850000,199,0.5127050000,200,0.6396590000,201,0.0055426300,202,-0.4745310000,203,-0.5978980000,204,0.9489330000 +123,0,1.4873700000,228,-1.0000000000,155,-0.0182336000,156,0.7372340000,157,-3.6187600000,158,0.0474519000,159,0.5231980000,160,0.8554530000,161,-1.1409800000,162,0.1292330000,163,-1.3581200000,164,0.7623630000,165,-0.6104980000,166,0.3873290000,167,0.0370092000,168,-2.3886100000,169,0.2045280000,170,0.8197620000,171,0.5634730000,172,-0.0477713000,173,0.2392130000,174,-0.3121230000,175,0.4541850000,176,0.1233530000,177,0.2836570000,178,-0.3388100000,179,-0.1632180000,180,-0.3541430000,181,-0.0051771800,182,-0.3563600000,183,-0.0300816000,184,-0.0065259700,185,-0.3556750000,186,-1.0800300000,187,1.1098000000,188,0.4793500000,189,-0.0774399000,190,0.0061688600,191,-1.6047400000,192,0.1746750000,193,-0.1116820000,194,0.1508980000,195,0.8337990000,196,0.2172100000,197,-0.3736660000,198,0.6527830000,199,-0.3906470000,200,0.5230670000,201,0.0050776000,202,0.1753960000,203,-0.0787303000,204,3.3952700000 +124,0,-0.4992030000,229,-1.0000000000,155,0.0877261000,156,0.0495536000,157,-0.7586790000,158,0.0340452000,159,0.4607800000,160,-0.1119360000,161,0.3998580000,162,-1.0024900000,163,0.1240760000,164,0.3463330000,165,0.0679432000,166,0.1881710000,167,-0.2983410000,168,-0.3820090000,169,0.0259424000,170,-0.6956650000,171,-0.1761100000,172,0.3981610000,173,0.4134820000,174,0.3660430000,175,-0.1789770000,176,-0.4047490000,177,0.2663320000,178,0.1979980000,179,-0.4594310000,180,-0.8829440000,181,-0.0441159000,182,0.3966410000,183,-0.9922970000,184,-0.3232880000,185,-0.0896676000,186,0.1867280000,187,0.2549330000,188,-0.1630090000,189,0.5514220000,190,-0.0094034900,191,0.1328020000,192,-0.1697460000,193,0.0928133000,194,-0.0164477000,195,0.2687940000,196,-0.2654930000,197,-0.2722940000,198,-0.0533179000,199,0.4833630000,200,0.5185450000,201,-0.0022137000,202,0.3392450000,203,0.8119360000,204,-0.6803600000 +125,0,-0.1549940000,230,-1.0000000000,155,0.0261118000,156,0.2627740000,157,-0.5716660000,158,0.0001488150,159,0.7852150000,160,-1.1927400000,161,-0.1139670000,162,0.8356110000,163,0.0712326000,164,-0.9394360000,165,-0.2040670000,166,-0.6164910000,167,0.6589600000,168,1.4222500000,169,0.6646390000,170,-1.0877700000,171,1.0121400000,172,-0.0575255000,173,-2.3297300000,174,-0.5607060000,175,-0.4442040000,176,1.4514300000,177,-1.0907100000,178,-0.1232400000,179,0.0103143000,180,-0.5747230000,181,0.0105370000,182,-0.2624370000,183,-0.8477570000,184,0.5550420000,185,-0.1142150000,186,-0.6677920000,187,-0.2461910000,188,-0.4387700000,189,-0.5149590000,190,1.6711900000,191,-1.0654400000,192,-1.9997500000,193,-0.1247130000,194,0.0389941000,195,0.3208120000,196,0.1124910000,197,-0.5511820000,198,-0.8274480000,199,1.3008300000,200,0.2510260000,201,0.0221649000,202,0.9155740000,203,0.2965720000,204,-1.0635500000 +126,0,0.7224140000,231,-1.0000000000,155,0.1259940000,156,-2.0948600000,157,-0.2376320000,158,-0.0330671000,159,-0.7756210000,160,-0.3622520000,161,-0.4854920000,162,-1.0700700000,163,-1.9124300000,164,-0.0815620000,165,-0.4412660000,166,0.5287260000,167,0.1577060000,168,-0.7322180000,169,0.0383741000,170,0.7369000000,171,0.4765790000,172,0.4594480000,173,-0.1681360000,174,0.0922669000,175,0.3897170000,176,1.3097700000,177,-0.7840920000,178,-0.6751930000,179,-0.1141630000,180,-1.5132300000,181,0.0154427000,182,0.6085400000,183,0.0746928000,184,0.0122945000,185,-0.5733190000,186,0.7525210000,187,3.4792900000,188,0.2919160000,189,-3.9823500000,190,0.2940850000,191,-1.2396100000,192,0.5583880000,193,-1.1684400000,194,0.7235060000,195,0.4178080000,196,0.1823660000,197,-0.7888130000,198,0.6113520000,199,0.4260380000,200,-0.3612360000,201,-0.0302808000,202,-0.1801480000,203,-0.4410430000,204,0.8844810000 +127,0,0.9493820000,232,-1.0000000000,155,0.0684966000,156,0.5919370000,157,0.9413320000,158,0.0245865000,159,-0.3589190000,160,-0.2717420000,161,1.6208100000,162,0.1470080000,163,-1.4843200000,164,0.0718789000,165,-1.2760500000,166,0.0680687000,167,-0.1438590000,168,0.1433320000,169,-0.5118690000,170,-2.5174800000,171,0.0024126300,172,-0.3489560000,173,-3.8738500000,174,0.0333727000,175,0.2954230000,176,0.5896240000,177,-0.3809350000,178,-0.2961240000,179,0.2606070000,180,1.3389800000,181,0.0105374000,182,0.1312540000,183,0.3164810000,184,-0.1710170000,185,0.4504740000,186,0.4671400000,187,-0.4010460000,188,1.2082700000,189,-0.1966450000,190,0.3846650000,191,-0.1098820000,192,2.5110700000,193,-0.4200500000,194,0.0258035000,195,0.1210580000,196,1.0805300000,197,-0.3912130000,198,1.1478400000,199,-2.7662600000,200,-0.6126690000,201,0.0074753200,202,-0.4017740000,203,-0.3714440000,204,-3.1124500000 +128,0,-0.0788308000,233,-1.0000000000,155,0.0234228000,156,-0.9647510000,157,-0.9968680000,158,0.0093952300,159,-0.1284740000,160,-0.4881710000,161,-0.5340730000,162,0.6345500000,163,-0.7401880000,164,-1.2610200000,165,0.2029780000,166,0.5375160000,167,-0.6190320000,168,-1.9815700000,169,0.4107840000,170,0.5922420000,171,-0.4085550000,172,0.3365530000,173,-0.8489480000,174,0.2562610000,175,-0.9815880000,176,-0.8388630000,177,-0.3346930000,178,-0.1284810000,179,-0.7404280000,180,-0.9497290000,181,-0.0032847400,182,0.7000500000,183,-0.5439480000,184,-0.3428370000,185,-0.0098271700,186,-0.6364230000,187,0.4315050000,188,0.1007960000,189,-2.1026900000,190,-0.9948640000,191,-3.4781100000,192,-0.5677600000,193,0.6148890000,194,-0.7174180000,195,-0.4007020000,196,-0.1823790000,197,-0.4125690000,198,0.1444540000,199,-0.3687440000,200,0.0587722000,201,0.0128471000,202,-0.2987750000,203,0.8888770000,204,-0.0146252000 +129,0,-0.6664510000,234,-1.0000000000,155,0.0074949400,156,0.2033330000,157,1.1812200000,158,-0.0319103000,159,0.4082600000,160,0.1467780000,161,-0.5691160000,162,-0.1238600000,163,0.3151720000,164,-0.2945680000,165,-0.4952600000,166,-0.4755080000,167,-0.0258605000,168,-1.7113500000,169,-0.5067640000,170,0.7867180000,171,-1.4195600000,172,0.0210225000,173,-0.6000320000,174,0.3910700000,175,0.3781510000,176,0.4769030000,177,-0.3623510000,178,-0.2195730000,179,-0.1006190000,180,0.5214370000,181,0.0385662000,182,-0.4556990000,183,-0.2024810000,184,-0.3379740000,185,-0.3259050000,186,-0.1451300000,187,-0.1214910000,188,-0.4922860000,189,0.0619951000,190,-0.7135760000,191,-0.3447680000,192,1.2608000000,193,0.3525520000,194,-0.8950290000,195,0.1562490000,196,0.4489830000,197,0.2198730000,198,0.4780100000,199,1.9380100000,200,0.1337040000,201,-0.0172181000,202,0.6082080000,203,-0.2613870000,204,-0.0049011200 +130,0,-0.2498390000,235,-1.0000000000,155,0.0874101000,156,0.7733800000,157,0.7123600000,158,-0.0229017000,159,0.9904800000,160,-0.7045880000,161,-0.0140471000,162,-0.0791277000,163,-0.0620256000,164,0.4059670000,165,0.0953234000,166,0.5531410000,167,-0.4574340000,168,0.2740580000,169,0.5879190000,170,0.9029520000,171,0.7233160000,172,0.1948090000,173,-1.3178600000,174,0.2685390000,175,-1.1546700000,176,0.2748940000,177,0.2187750000,178,-0.0335816000,179,0.6559420000,180,-0.1705590000,181,-0.0037535500,182,-0.6162070000,183,-1.3710500000,184,-0.6499890000,185,0.1291000000,186,0.4309440000,187,-1.6163400000,188,-0.0226175000,189,1.5585000000,190,0.3243520000,191,-0.3504770000,192,-0.3018110000,193,0.1646830000,194,0.8664900000,195,-0.1477500000,196,0.1600830000,197,-0.5824480000,198,0.0351191000,199,-0.6732500000,200,-0.4255140000,201,-0.0170593000,202,0.8296000000,203,-0.5708980000,204,1.8081400000 +131,0,0.0307759000,236,-1.0000000000,155,-0.0386467000,156,-0.0265777000,157,-0.0361361000,158,-0.0426445000,159,-0.0025336600,160,-0.0096315500,161,-0.0312750000,162,-0.0195726000,163,-0.0454024000,164,0.0419791000,165,0.0115169000,166,-0.0365523000,167,0.0106064000,168,0.0207111000,169,0.0321753000,170,-0.0111304000,171,0.0182211000,172,0.0032455800,173,0.0101304000,174,-0.0324009000,175,0.0154650000,176,-0.0391227000,177,-0.0223739000,178,-0.0171879000,179,-0.0060792900,180,0.0421155000,181,0.0449222000,182,0.0209502000,183,0.0058456600,184,-0.0598789000,185,-0.0560406000,186,0.0440567000,187,-0.0151529000,188,0.0017931200,189,-0.0327578000,190,-0.0589214000,191,0.0078692800,192,-0.0311051000,193,-0.0378343000,194,0.0372020000,195,0.0369019000,196,-0.0020268400,197,-0.0284835000,198,-0.0368950000,199,0.0155604000,200,0.0197632000,201,0.0140382000,202,-0.0117811000,203,0.0077238200,204,-0.0007662740 +132,0,-0.6048340000,237,-1.0000000000,155,0.0276969000,156,-0.5582100000,157,0.9460720000,158,0.0209479000,159,-1.1084000000,160,0.0582710000,161,0.1547560000,162,-0.3891710000,163,0.0253771000,164,0.5218080000,165,0.1111500000,166,-0.0575103000,167,0.3710600000,168,0.3411530000,169,-0.0500688000,170,-1.5740800000,171,-0.3112980000,172,-0.7201010000,173,2.3777400000,174,0.0139121000,175,0.0758513000,176,-1.1920100000,177,0.6633560000,178,0.0112469000,179,0.2713370000,180,-0.0722853000,181,-0.0328522000,182,-0.2218050000,183,0.1057490000,184,-0.0600198000,185,-0.4297920000,186,-1.3488500000,187,1.2227500000,188,-0.0865795000,189,1.8908900000,190,0.2423360000,191,-0.2358590000,192,0.7932810000,193,-0.0251895000,194,-0.2838420000,195,-0.3205450000,196,-0.1694330000,197,0.3343700000,198,0.9963170000,199,0.7501310000,200,0.5338120000,201,-0.0233451000,202,-0.2750540000,203,-0.5857840000,204,1.1277400000 +133,0,1.9236800000,238,-1.0000000000,155,0.0476770000,156,1.0573800000,157,0.8825610000,158,0.0078006200,159,0.3913220000,160,-0.8218150000,161,0.9840160000,162,0.3668970000,163,-0.3070840000,164,1.6773900000,165,0.0072655100,166,0.7927030000,167,0.0309749000,168,1.2166700000,169,-0.1338700000,170,2.7232700000,171,0.8739410000,172,-0.7580110000,173,-1.6211300000,174,0.1131070000,175,0.2037300000,176,-0.2711440000,177,0.3013080000,178,-0.2706360000,179,0.1129810000,180,0.8267270000,181,-0.0379562000,182,0.1543700000,183,-0.3205730000,184,-0.8741270000,185,0.2760300000,186,-0.5363110000,187,0.4608970000,188,0.0052630500,189,0.5543760000,190,0.9132420000,191,1.0433900000,192,-0.1509640000,193,0.0626199000,194,0.4044410000,195,-0.9989060000,196,0.1074680000,197,0.6783560000,198,1.5880500000,199,-0.2445420000,200,0.1289240000,201,-0.0506751000,202,0.3986460000,203,0.2079930000,204,1.5760700000 +134,0,0.3331580000,239,-1.0000000000,155,0.0203119000,156,0.1257280000,157,1.0318400000,158,-0.0476635000,159,-0.0400579000,160,0.6176700000,161,-0.1982720000,162,0.9392340000,163,-0.3064550000,164,-0.1559830000,165,-0.0954766000,166,-0.1624460000,167,0.4504010000,168,-0.6164930000,169,-0.0407350000,170,0.2862750000,171,0.0799610000,172,-0.0086230500,173,0.4545430000,174,-0.0767794000,175,0.2286540000,176,-0.0601479000,177,-0.3378470000,178,-0.0407174000,179,0.1774350000,180,0.8817540000,181,0.0147632000,182,0.3673250000,183,0.6676320000,184,-0.2653860000,185,-0.2282800000,186,0.0254236000,187,0.2801530000,188,-0.0223562000,189,-0.6674600000,190,-0.1939270000,191,0.0848467000,192,-0.3985950000,193,-0.2773350000,194,-0.7122460000,195,-0.1363980000,196,0.3597400000,197,0.8312700000,198,0.0398926000,199,-0.2689100000,200,0.4045180000,201,-0.0222699000,202,-0.8987200000,203,-0.2542640000,204,0.7156490000 +135,0,0.5803240000,240,-1.0000000000,155,0.0252666000,156,-0.0884454000,157,0.8359550000,158,0.0341194000,159,0.8916130000,160,0.5877490000,161,0.1984420000,162,-1.0303700000,163,-0.0245483000,164,1.5744800000,165,-0.3350460000,166,0.3411170000,167,-0.2846550000,168,-0.3121250000,169,0.7220490000,170,-0.7604730000,171,0.3752560000,172,-0.0221601000,173,3.4526500000,174,-0.2128510000,175,0.6876960000,176,1.6380500000,177,0.2029880000,178,0.1564000000,179,-0.7244250000,180,-1.2977900000,181,0.0286593000,182,0.3193470000,183,1.2073400000,184,0.4719750000,185,0.4373450000,186,-0.2824850000,187,1.4520300000,188,0.0015276500,189,1.5676400000,190,0.8712140000,191,0.8172570000,192,-0.9072190000,193,-0.8535280000,194,-0.5935570000,195,0.3218650000,196,-0.0453871000,197,-0.6702160000,198,0.0776714000,199,0.9864250000,200,0.0852272000,201,-0.0380756000,202,-0.0791316000,203,0.7550950000,204,0.6905450000 +136,0,0.4225250000,241,-1.0000000000,155,0.0311444000,156,-0.1855220000,157,-0.9070780000,158,0.0259130000,159,-0.8111670000,160,0.6675410000,161,0.4857280000,162,-0.0309375000,163,0.4723280000,164,0.4697550000,165,-0.2365960000,166,0.3986830000,167,-0.4485390000,168,0.5323970000,169,-0.4921380000,170,-3.2026000000,171,-0.6111120000,172,-0.0491719000,173,0.4641000000,174,0.3871780000,175,-0.1316810000,176,0.8987920000,177,-0.1708090000,178,-0.2524500000,179,0.6481230000,180,1.2971000000,181,0.0277642000,182,-0.6871330000,183,-0.5123520000,184,0.1137710000,185,0.2218140000,186,0.4021580000,187,-0.0035347000,188,0.1503630000,189,0.2254810000,190,0.1164830000,191,0.1372540000,192,-0.4458420000,193,-0.4397590000,194,0.6130890000,195,-0.1091090000,196,0.4703470000,197,0.6587760000,198,0.6803710000,199,0.2450280000,200,0.8195770000,201,-0.0254591000,202,-0.0664887000,203,-0.4673770000,204,-3.1000600000 +137,0,1.3587100000,242,-1.0000000000,155,0.0454818000,156,-0.0377009000,157,-0.3385210000,158,-0.0203758000,159,0.5127590000,160,-1.1603800000,161,-0.4998770000,162,-0.8651510000,163,-0.4834770000,164,-0.4742470000,165,0.1652940000,166,0.9268560000,167,-0.4326030000,168,0.2437050000,169,0.4183130000,170,-0.8044670000,171,-0.6542550000,172,0.3735870000,173,1.1898300000,174,-0.1891870000,175,-0.8027830000,176,0.2071720000,177,0.2222690000,178,0.0673188000,179,0.1422930000,180,-0.8361120000,181,0.0335383000,182,0.5716130000,183,-0.3270210000,184,-0.3304430000,185,-0.1807700000,186,-0.3638970000,187,1.0084800000,188,0.2558080000,189,0.3169970000,190,-0.0476807000,191,-0.2740810000,192,0.7013240000,193,-0.0244379000,194,1.1719200000,195,-0.1799390000,196,-0.8676240000,197,-0.1244080000,198,0.0438639000,199,-0.1994860000,200,0.2251570000,201,0.0461068000,202,-0.0473902000,203,-0.1990180000,204,1.4173600000 +138,0,0.5058140000,243,-1.0000000000,155,-0.0339348000,156,-0.9915730000,157,0.9045170000,158,-0.0452707000,159,-0.7525690000,160,-0.4652280000,161,-0.1041850000,162,-1.3425800000,163,-1.4857500000,164,1.3255200000,165,0.1311840000,166,0.2578450000,167,-0.1797750000,168,-0.0656452000,169,-0.6571210000,170,-0.3978300000,171,0.2307000000,172,0.0403630000,173,1.2714400000,174,-0.3876580000,175,-4.6122200000,176,-0.8302480000,177,0.6003900000,178,-1.5770700000,179,0.3498130000,180,0.4861670000,181,-0.0045644400,182,0.2656500000,183,-0.0882889000,184,0.2854730000,185,0.6507090000,186,-0.2133920000,187,-0.7415590000,188,-0.6800840000,189,-1.1992600000,190,-0.3369490000,191,-1.5381600000,192,0.8930190000,193,-0.1079310000,194,0.4697290000,195,-0.1803610000,196,0.9317230000,197,0.0221021000,198,0.8610000000,199,-0.2932810000,200,-0.2717570000,201,-0.0143968000,202,-0.1719850000,203,-0.1625600000,204,-0.3797270000 +139,0,1.0991100000,244,-1.0000000000,155,-0.0623575000,156,0.4791820000,157,-2.2394100000,158,0.0169743000,159,-0.2752490000,160,0.3397020000,161,-1.5652600000,162,0.0795158000,163,0.3466220000,164,0.9953340000,165,-0.1592270000,166,-0.0157240000,167,0.0193398000,168,1.6232700000,169,-0.0896642000,170,0.7944650000,171,-0.0602755000,172,-0.1989160000,173,1.2179800000,174,0.4428330000,175,0.2610150000,176,0.9076230000,177,-0.3490410000,178,0.1491410000,179,0.2529300000,180,-1.3620700000,181,-0.0454760000,182,0.8699050000,183,0.6945860000,184,0.1097540000,185,0.0033073900,186,-0.1790480000,187,1.3279600000,188,-0.4182950000,189,1.4276300000,190,0.2183680000,191,-0.3480180000,192,0.3244880000,193,-0.4694730000,194,-1.3564500000,195,0.3162550000,196,-0.0281292000,197,-0.6678980000,198,0.5757880000,199,-3.8831900000,200,-0.5082520000,201,-0.0191252000,202,0.0130665000,203,-0.0358187000,204,-1.3143000000 +140,0,-0.2457200000,245,-1.0000000000,155,0.0246841000,156,0.8467250000,157,0.5883190000,158,-0.0124035000,159,0.5057360000,160,-0.1762430000,161,-0.1352130000,162,-0.4523750000,163,-0.2769830000,164,0.0683586000,165,-0.0292895000,166,-0.4982290000,167,-0.3521370000,168,-0.0867891000,169,-0.2068810000,170,1.1950300000,171,0.5322680000,172,-0.1227890000,173,1.1569000000,174,-0.2686190000,175,0.0017540600,176,0.0993752000,177,0.4799210000,178,0.3222770000,179,0.2662230000,180,-0.6610570000,181,0.0079349900,182,0.1575900000,183,-0.4228430000,184,-0.0940160000,185,0.2846020000,186,0.4012460000,187,-0.5448450000,188,-0.3377850000,189,-0.0739348000,190,0.2127270000,191,-0.2954440000,192,-1.5080600000,193,-0.2243650000,194,0.4952810000,195,0.3991400000,196,-0.1909080000,197,0.0335294000,198,-1.1182500000,199,0.9039500000,200,-0.6860530000,201,-0.0448980000,202,0.0862965000,203,0.3347430000,204,0.3150750000 +141,0,1.0599800000,246,-1.0000000000,155,0.1574080000,156,0.5022520000,157,1.4966500000,158,0.0354813000,159,-0.4729660000,160,0.5312560000,161,-0.8279460000,162,-0.9642050000,163,1.6405100000,164,0.2403390000,165,0.2297640000,166,-0.5881150000,167,-0.2479670000,168,0.1889610000,169,-0.6679840000,170,-1.6593800000,171,-1.3012200000,172,0.1879810000,173,-0.3149180000,174,0.1921780000,175,-0.1439070000,176,0.6338690000,177,-0.7362860000,178,-0.6198810000,179,-0.0740274000,180,-0.7938770000,181,0.0241417000,182,0.4327280000,183,0.6160520000,184,0.5373810000,185,0.0933556000,186,-0.2015860000,187,-0.4337160000,188,0.2160410000,189,0.1711240000,190,0.3260120000,191,-0.7666330000,192,-1.1954500000,193,-0.5701340000,194,0.3341640000,195,0.1423980000,196,0.6657570000,197,0.2912880000,198,0.0412572000,199,0.4862640000,200,0.7087500000,201,0.0416727000,202,-0.3746330000,203,0.0623255000,204,-1.7008700000 +142,0,-0.1056780000,247,-1.0000000000,155,0.0326642000,156,0.2052340000,157,-0.4550440000,158,-0.0173491000,159,0.1642780000,160,-0.2317280000,161,0.3953800000,162,-0.3143350000,163,0.1994710000,164,0.2483320000,165,0.3432900000,166,0.3509170000,167,0.3707070000,168,-0.0396282000,169,-0.0738994000,170,-0.1672230000,171,-0.0731704000,172,0.3045340000,173,-0.2687320000,174,-0.0643825000,175,-0.1742770000,176,-0.2601910000,177,0.0354323000,178,0.1512250000,179,-0.2508580000,180,-0.3895140000,181,0.0116967000,182,-0.2503500000,183,-0.7452800000,184,-0.2412370000,185,0.5743310000,186,0.3034240000,187,-0.6933180000,188,-0.0699350000,189,0.5237780000,190,0.0113170000,191,-0.0138018000,192,0.1321820000,193,0.0126719000,194,-0.1549710000,195,-0.1542880000,196,-0.3742990000,197,-0.2000400000,198,0.1251880000,199,0.1587060000,200,-0.2541440000,201,-0.0154150000,202,0.0281770000,203,0.4472210000,204,0.5022470000 +143,0,0.5125590000,248,-1.0000000000,155,-0.0263722000,156,-0.0450563000,157,0.2205380000,158,0.0368255000,159,0.1267200000,160,0.5202090000,161,0.1374280000,162,0.3079290000,163,-0.0649773000,164,0.0573542000,165,0.3495200000,166,0.0450908000,167,0.1083530000,168,0.5935460000,169,-0.0462157000,170,0.5300600000,171,0.2162790000,172,-0.0976195000,173,0.0765995000,174,1.5423400000,175,-0.0498174000,176,-0.2899820000,177,0.3728780000,178,0.1114620000,179,0.1222620000,180,0.2886300000,181,-0.0271627000,182,0.1229170000,183,-0.4547060000,184,-0.1054800000,185,0.3333420000,186,0.1196850000,187,0.2155010000,188,0.3818730000,189,-0.2807770000,190,-0.3359140000,191,0.1026340000,192,0.1454620000,193,-0.0176824000,194,0.0389407000,195,-0.1525880000,196,0.2898570000,197,-0.0782243000,198,0.1454750000,199,-0.2716580000,200,-0.1241040000,201,-0.0381036000,202,0.0590669000,203,-0.3461410000,204,0.4638180000 +144,0,0.5388600000,249,-1.0000000000,155,0.0225406000,156,0.2469960000,157,-0.3895430000,158,0.0260446000,159,-0.1127440000,160,0.5974830000,161,0.9382090000,162,-0.5038290000,163,-0.5064060000,164,0.3381270000,165,0.6559580000,166,-0.1516350000,167,-0.7863960000,168,0.2714550000,169,-0.2755780000,170,-0.4897950000,171,-0.0176822000,172,-0.1725740000,173,-0.1594070000,174,1.1390700000,175,-0.0653412000,176,-0.6341940000,177,0.8891330000,178,0.9482570000,179,0.1829710000,180,0.3260850000,181,-0.0163572000,182,0.3997840000,183,-0.7107580000,184,-0.5057640000,185,0.0675400000,186,0.6729540000,187,0.1932820000,188,-0.0062093200,189,-0.3892560000,190,-1.9357900000,191,1.0899300000,192,1.3184400000,193,0.0211444000,194,-0.2224020000,195,0.0621589000,196,0.4603930000,197,0.1187610000,198,0.0516371000,199,-0.3202070000,200,-0.1729040000,201,-0.0349748000,202,-0.8501730000,203,0.0194551000,204,0.2401680000 +145,0,-0.3358610000,250,-1.0000000000,155,0.1426990000,156,-0.9341420000,157,-1.7175600000,158,-0.0396080000,159,-0.5897440000,160,-0.5899440000,161,-3.1326300000,162,0.3881650000,163,0.4579340000,164,-0.4634380000,165,0.4604200000,166,-2.3010100000,167,0.0025923300,168,0.7866220000,169,-1.2498000000,170,-1.2283700000,171,-0.4490690000,172,0.2262050000,173,-6.6924500000,174,0.3360750000,175,-0.6681670000,176,-0.6107190000,177,-0.6920240000,178,-0.6251940000,179,1.4228700000,180,1.4441600000,181,-0.0292050000,182,-1.2723700000,183,-4.3522500000,184,-0.2811050000,185,-0.0990018000,186,0.1747490000,187,-1.4280500000,188,-0.3480740000,189,-0.2214340000,190,0.0394339000,191,-0.7185390000,192,1.4893200000,193,0.2508430000,194,0.3317090000,195,-0.8558020000,196,0.7115780000,197,0.4937530000,198,-0.2058610000,199,-0.8534390000,200,0.0105082000,201,-0.0031759700,202,-0.1508150000,203,-1.5607600000,204,1.3615600000 +146,0,2.2101100000,251,-1.0000000000,155,0.0026605100,156,-0.4067870000,157,0.0436070000,158,0.0169942000,159,-0.0127517000,160,0.6471180000,161,1.3838800000,162,0.7123300000,163,0.2308550000,164,0.3168900000,165,0.4481570000,166,-0.4421700000,167,0.2292240000,168,0.2391960000,169,-0.0372813000,170,1.0734000000,171,-0.2018390000,172,0.2805230000,173,0.2886950000,174,-0.3279380000,175,0.4221500000,176,1.0645300000,177,0.7089140000,178,-0.3788970000,179,-0.3203840000,180,0.2249250000,181,-0.0172915000,182,0.5037240000,183,0.1948140000,184,0.9206230000,185,-0.0817012000,186,-0.2410380000,187,1.3830400000,188,-0.0632942000,189,0.1087590000,190,-1.0210100000,191,0.1573000000,192,-0.6125520000,193,0.5189060000,194,-0.5002240000,195,0.0650938000,196,-0.4683720000,197,0.2481180000,198,0.8372060000,199,0.5649260000,200,-0.3596050000,201,0.0681777000,202,-0.1131990000,203,0.3399650000,204,-0.4188260000 +147,0,-1.1469000000,252,-1.0000000000,155,0.0418206000,156,0.2773410000,157,0.9082040000,158,-0.0140033000,159,-0.4413000000,160,0.2969450000,161,-0.4360260000,162,-0.6626100000,163,0.8565470000,164,-5.6139000000,165,0.0498963000,166,-0.3957570000,167,0.9589760000,168,-3.6677600000,169,-2.7241100000,170,-6.5457200000,171,0.7073960000,172,-1.4269700000,173,-1.0029700000,174,0.4640970000,175,-0.8644540000,176,-2.3430500000,177,0.5274830000,178,0.7724900000,179,-1.8367300000,180,1.7561700000,181,-0.0095860200,182,0.2688390000,183,-2.5931100000,184,0.8175190000,185,-0.8195990000,186,0.4438510000,187,0.3595110000,188,-1.1552700000,189,-2.5056600000,190,-0.1847590000,191,-3.3154400000,192,0.9862720000,193,1.7344800000,194,0.7847040000,195,1.5380500000,196,-0.6418450000,197,-0.7957980000,198,-3.3618400000,199,1.7152800000,200,-1.6350400000,201,-0.0166163000,202,-0.1822140000,203,0.0358271000,204,2.8623600000 +148,0,2.1361900000,253,-1.0000000000,155,0.0487177000,156,1.1172100000,157,0.4628160000,158,-0.0276811000,159,-0.9303870000,160,0.2003730000,161,-1.1488300000,162,0.3634510000,163,-0.9973590000,164,0.7834640000,165,-0.0152279000,166,-1.2593300000,167,0.2253020000,168,-1.0381500000,169,0.3134430000,170,2.2083600000,171,-0.2857650000,172,-0.6357650000,173,1.4772300000,174,-0.0135677000,175,0.0447283000,176,0.2009460000,177,-0.2474310000,178,-0.3405120000,179,0.2622470000,180,-4.1563800000,181,0.0145272000,182,0.4991100000,183,0.4140710000,184,-0.3535400000,185,0.4761520000,186,1.3150300000,187,-0.7293260000,188,-0.3189940000,189,0.4000510000,190,0.1364140000,191,0.1284700000,192,2.0629800000,193,0.1064500000,194,0.9100220000,195,0.0143116000,196,0.4991910000,197,-1.1185900000,198,0.0743604000,199,0.4203580000,200,-0.3028330000,201,-0.0253498000,202,0.4574350000,203,0.3711320000,204,0.3087470000 +149,0,1.1020000000,254,-1.0000000000,155,0.0593240000,156,0.1877180000,157,0.4231710000,158,-0.0113415000,159,-0.4432610000,160,-0.8667560000,161,-0.0139369000,162,-1.3154600000,163,0.8979570000,164,1.9755300000,165,0.5552700000,166,-0.2784290000,167,-0.0487259000,168,1.0015700000,169,-0.7734390000,170,-1.3852700000,171,-0.8512250000,172,0.2876350000,173,0.1818010000,174,-0.1930790000,175,0.3854800000,176,-0.3542100000,177,-0.2038360000,178,1.1015800000,179,0.1326110000,180,-3.8317400000,181,0.0179293000,182,0.2971810000,183,-0.4812080000,184,-0.3674300000,185,-0.0039552600,186,-0.9056650000,187,1.7387800000,188,0.0551994000,189,0.3642750000,190,0.3965260000,191,0.6335110000,192,2.4003400000,193,-0.0234378000,194,-1.2870900000,195,-0.0557588000,196,-0.7410050000,197,0.1850960000,198,0.1509330000,199,-0.2331270000,200,0.6452530000,201,0.0383877000,202,0.4476830000,203,0.4755020000,204,0.0489101000 +150,0,-0.7149310000,305,-1.0000000000,255,-0.0403319000,256,-0.1466130000,257,-0.0216223000,258,-0.4307860000,259,-0.4789910000,260,0.2610860000,261,0.3550970000,262,-0.6078490000,263,0.2674990000,264,-0.1131980000,265,0.1795940000,266,0.4753750000,267,0.0468149000,268,-0.0746482000,269,-0.1553520000,270,0.2288680000,271,0.2824160000,272,-0.1289540000,273,-0.0212041000,274,-0.2532600000,275,-0.0967171000,276,-0.2928740000,277,0.2825650000,278,0.0007056650,279,0.0045861700,280,-0.0235607000,281,-0.3082980000,282,-0.2424310000,283,-0.1208170000,284,-0.0623699000,285,-0.0909795000,286,-0.0101018000,287,0.0799312000,288,-0.3211810000,289,0.4657800000,290,-0.4162100000,291,-0.4036380000,292,0.6508810000,293,-0.1064410000,294,0.0854112000,295,0.4818090000,296,0.2708680000,297,0.3609910000,298,0.0932133000,299,-0.3617330000,300,0.1555260000,301,0.3179940000,302,0.0352455000,303,-0.0810169000,304,0.4942200000 +151,0,-0.0243462000,306,-1.0000000000,255,-0.6729810000,256,-1.2604300000,257,-0.0303215000,258,-0.4329490000,259,0.6826570000,260,0.8427850000,261,-0.2459710000,262,-0.5628590000,263,-0.1332030000,264,-0.5737770000,265,-0.2051670000,266,1.4505900000,267,-1.3580000000,268,0.4615840000,269,1.0418600000,270,0.2660950000,271,-1.1840900000,272,-0.1363570000,273,-0.0092857600,274,-0.5833040000,275,-0.5535340000,276,-0.5807540000,277,0.4186110000,278,-0.3437850000,279,0.1763800000,280,0.2672890000,281,-0.3708700000,282,0.0244594000,283,-7.2352800000,284,-0.3646560000,285,0.2690870000,286,0.0003764290,287,1.5937100000,288,0.1889820000,289,0.0384116000,290,0.0630365000,291,-0.3337810000,292,4.1306500000,293,1.3156600000,294,0.1112280000,295,-0.9124090000,296,0.9320600000,297,-0.5033560000,298,-0.4784580000,299,-0.3582640000,300,-1.5816900000,301,0.2990550000,302,0.2558610000,303,0.2814290000,304,1.9277600000 +152,0,1.1054600000,307,-1.0000000000,255,-2.3178500000,256,-1.6846400000,257,0.0014012200,258,0.0211377000,259,2.1303800000,260,-0.3427790000,261,0.5992260000,262,-1.0083400000,263,0.4953050000,264,-11.8905000000,265,1.7951500000,266,1.2233700000,267,-1.2549500000,268,0.2780560000,269,-1.3066800000,270,-0.0676867000,271,-0.7577240000,272,-0.2266580000,273,0.0025487700,274,-0.7455570000,275,0.4293460000,276,-1.4153100000,277,-0.1429210000,278,-2.1262600000,279,-1.2734000000,280,-0.0044666600,281,-4.2743500000,282,-2.4394000000,283,-2.4475300000,284,-0.6711710000,285,-0.0582658000,286,0.0386942000,287,0.1400340000,288,0.1398350000,289,0.2723840000,290,2.5979300000,291,0.3672440000,292,-0.0499863000,293,2.6072100000,294,1.4499500000,295,-2.4459900000,296,-0.4971900000,297,-0.7081370000,298,-1.2775700000,299,-1.9387600000,300,-0.5781970000,301,-0.7389070000,302,0.7106750000,303,-0.0687335000,304,-1.5952700000 +153,0,-0.0755139000,308,-1.0000000000,255,-0.5610060000,256,-0.2799180000,257,-0.0080096200,258,0.3031600000,259,-0.1222170000,260,0.5506930000,261,0.5359270000,262,0.3550570000,263,-1.0874700000,264,-0.0959635000,265,0.2982610000,266,0.3808520000,267,0.8958730000,268,1.2833800000,269,-0.2465030000,270,-0.0751731000,271,0.3797900000,272,0.3640130000,273,-0.0112071000,274,0.1130020000,275,0.0352718000,276,-0.5937140000,277,-0.2416870000,278,0.5036290000,279,-0.6791050000,280,-0.6215250000,281,0.3309500000,282,0.1163270000,283,-1.0638300000,284,0.1100090000,285,0.3014370000,286,0.0078608500,287,1.4143200000,288,-0.4121030000,289,-0.0253840000,290,-0.4875900000,291,-0.2454840000,292,0.3647520000,293,-2.3711700000,294,-0.0159754000,295,-0.3216400000,296,0.5852790000,297,0.3954280000,298,0.6073910000,299,-0.8089440000,300,-0.4022120000,301,-0.5926090000,302,0.0630297000,303,0.4873760000,304,0.2611330000 +154,0,-0.1088740000,309,-1.0000000000,255,-0.2566050000,256,-0.1646790000,257,-0.0407308000,258,-0.0582904000,259,0.0281071000,260,0.8268920000,261,0.1324000000,262,0.0168624000,263,0.2757530000,264,0.1257160000,265,0.4093870000,266,0.0839095000,267,0.3612340000,268,0.7723670000,269,0.4358130000,270,-0.2988800000,271,1.2452800000,272,0.0826106000,273,-0.0002630470,274,-0.1040300000,275,0.0872659000,276,0.0417749000,277,0.0324231000,278,0.1687460000,279,-0.0085819000,280,0.1682770000,281,0.1464060000,282,0.4016330000,283,-0.2243350000,284,0.0339046000,285,-0.2470120000,286,-0.0299756000,287,-0.2746690000,288,1.1509900000,289,0.6569130000,290,-0.2370240000,291,-0.4006890000,292,-0.5012080000,293,0.8208370000,294,0.3241160000,295,-0.1537210000,296,-0.0463363000,297,1.6074900000,298,0.3742690000,299,-0.9058890000,300,-0.0566915000,301,-0.0342950000,302,0.0213720000,303,0.6202910000,304,-0.0031006700 +155,0,-0.3472680000,310,-1.0000000000,255,0.1902250000,256,-0.0288448000,257,-0.0385011000,258,-0.3763940000,259,0.0767038000,260,2.2731300000,261,0.3088600000,262,0.6862220000,263,-0.1220730000,264,0.0037103700,265,-0.1734960000,266,0.5788860000,267,0.2367400000,268,-0.2151770000,269,-5.5000300000,270,-0.6551880000,271,-1.4883800000,272,-0.1266830000,273,0.0407749000,274,0.1644970000,275,-0.0121703000,276,0.1743740000,277,-0.4183820000,278,0.1698860000,279,0.4753780000,280,0.0739767000,281,0.3380920000,282,0.7963480000,283,0.1576180000,284,0.0995319000,285,-0.4030150000,286,0.0153099000,287,0.0965566000,288,-4.1532800000,289,-0.4985170000,290,0.0393698000,291,0.2572630000,292,0.0136232000,293,-0.4099800000,294,-0.1402430000,295,-0.1033070000,296,-0.3462670000,297,0.0474127000,298,-0.1068950000,299,-0.3034210000,300,0.2493260000,301,-1.0989400000,302,0.2246710000,303,0.8491600000,304,0.5727220000 +156,0,-0.2460870000,311,-1.0000000000,255,-0.1804160000,256,0.5508840000,257,-0.0353637000,258,-0.0746115000,259,0.2686680000,260,0.8736600000,261,0.4992950000,262,-0.9772650000,263,1.7734800000,264,-0.8452300000,265,-0.4700640000,266,-1.8834800000,267,-0.0017879700,268,0.2802960000,269,0.1307910000,270,0.0365917000,271,2.0018400000,272,0.0942228000,273,0.0256265000,274,-0.6374680000,275,-0.7110250000,276,-0.6831490000,277,0.1154470000,278,-0.2121780000,279,-0.2149840000,280,-0.1717340000,281,-0.6209370000,282,-0.2507560000,283,-0.6521450000,284,-0.0876949000,285,-0.7611010000,286,-0.0379123000,287,0.2860250000,288,-0.1858910000,289,-0.2277520000,290,0.8086650000,291,-0.2896920000,292,2.2509900000,293,0.8768990000,294,-0.2669420000,295,0.1092240000,296,-1.4230400000,297,0.1064330000,298,0.0085066000,299,-0.7277360000,300,1.0033000000,301,0.0535631000,302,0.3019370000,303,0.0933664000,304,0.9663740000 +157,0,-0.0086719000,312,-1.0000000000,255,-0.4755220000,256,-0.4100110000,257,0.0078445700,258,0.0145635000,259,0.0716141000,260,-2.0488700000,261,-0.7316430000,262,-0.5988520000,263,1.2251300000,264,-0.6042710000,265,-0.1261700000,266,0.1987850000,267,0.4053440000,268,0.6145000000,269,-4.6554100000,270,0.0433685000,271,-0.8456350000,272,-0.0645049000,273,-0.0431051000,274,0.2430910000,275,-0.4585750000,276,0.1792590000,277,-0.1518410000,278,0.2724560000,279,-0.0025485600,280,-0.3522090000,281,-0.4957990000,282,0.2333770000,283,-0.0483960000,284,0.1550890000,285,-0.0192607000,286,0.0100362000,287,0.1051490000,288,0.5606520000,289,1.1702500000,290,-0.0304078000,291,-0.0698639000,292,-0.3905550000,293,1.1095600000,294,-0.9765530000,295,-0.2611160000,296,-0.2634280000,297,0.1018060000,298,0.0692158000,299,0.1071720000,300,-0.0058733300,301,-0.0179851000,302,-0.2779320000,303,0.1282870000,304,1.0248100000 +158,0,-0.9458040000,313,-1.0000000000,255,0.0886579000,256,-0.0574067000,257,-0.0197647000,258,-0.0749331000,259,-0.4071700000,260,-0.1598880000,261,0.4755430000,262,0.3133320000,263,-0.0462006000,264,0.0125798000,265,-0.2181260000,266,-0.1442310000,267,0.5234810000,268,-0.1405160000,269,0.1022920000,270,0.1222720000,271,-1.3640300000,272,-0.3802830000,273,-0.0194483000,274,-0.3933120000,275,-0.0151589000,276,-0.8697930000,277,0.3085160000,278,0.7855760000,279,0.1476640000,280,0.3742930000,281,1.4299900000,282,0.4954960000,283,-0.6658960000,284,0.0441526000,285,-0.0488910000,286,-0.0084804800,287,0.5199660000,288,-0.2502140000,289,0.0615948000,290,-0.7326990000,291,-0.0644494000,292,0.6552970000,293,0.3427820000,294,0.5207460000,295,0.1931450000,296,-0.4534190000,297,0.3367220000,298,-0.3174390000,299,0.4178080000,300,-0.6098690000,301,0.3753200000,302,-0.4630260000,303,-0.1402660000,304,0.4071330000 +159,0,1.1706500000,314,-1.0000000000,255,0.0200395000,256,0.1565300000,257,0.0019798600,258,0.1115880000,259,-0.1456080000,260,-0.8206520000,261,0.2913780000,262,-0.4662660000,263,0.6779990000,264,-0.1870280000,265,0.0106944000,266,0.0629093000,267,-0.2114420000,268,0.4862730000,269,-0.1598340000,270,0.2017340000,271,-0.6267680000,272,0.0657411000,273,-0.0106175000,274,0.0266045000,275,-0.0734180000,276,0.0378286000,277,0.2825480000,278,0.4697490000,279,0.2837560000,280,-0.2096790000,281,-0.0053374600,282,0.3176510000,283,0.1706770000,284,0.3667010000,285,0.0460483000,286,0.0094558500,287,0.0332331000,288,0.5943890000,289,0.0016872600,290,-0.0090601600,291,-0.1752080000,292,-0.0659325000,293,0.4768850000,294,0.2848060000,295,-0.2435340000,296,-0.0214161000,297,0.2548190000,298,1.2243000000,299,-0.1708470000,300,0.1281620000,301,-0.0792276000,302,0.3521320000,303,0.2121950000,304,0.1820530000 +160,0,0.5646410000,315,-1.0000000000,255,0.8135900000,256,0.7862130000,257,-0.0014973200,258,0.3484740000,259,0.3410270000,260,0.1814450000,261,-0.7899520000,262,1.0572600000,263,0.4825950000,264,0.8595720000,265,0.0894977000,266,-0.4968380000,267,-0.5048970000,268,-1.6479700000,269,-1.0331300000,270,0.1906730000,271,-0.0015205600,272,0.1583060000,273,0.0451701000,274,-0.1370350000,275,0.6729170000,276,0.0414243000,277,-0.1958480000,278,0.1859410000,279,-0.5573280000,280,-0.4989760000,281,0.0283820000,282,0.2442530000,283,0.7513950000,284,0.3398680000,285,0.2135530000,286,0.0272011000,287,-0.0820648000,288,-1.0685300000,289,0.1476460000,290,-0.0975448000,291,0.1536490000,292,0.5093270000,293,-0.8407090000,294,-0.8501790000,295,0.3516170000,296,0.4908110000,297,0.4604090000,298,-0.1227800000,299,0.4690840000,300,-0.6569300000,301,-0.7963210000,302,-0.1502570000,303,0.7955540000,304,0.3723310000 +161,0,0.7791180000,316,-1.0000000000,255,0.3105200000,256,0.0832311000,257,-0.0075191500,258,0.0120916000,259,-0.0544040000,260,-0.4835750000,261,-0.0172763000,262,0.0772733000,263,-1.6790800000,264,-0.0576816000,265,0.2783990000,266,0.9328150000,267,1.2417100000,268,0.1582950000,269,-0.9357520000,270,-0.3622550000,271,1.2510300000,272,0.0856716000,273,-0.0025376600,274,0.1204500000,275,0.1433840000,276,0.1151850000,277,-0.1844100000,278,0.0709748000,279,0.0013613000,280,0.5213280000,281,0.2797990000,282,0.2997160000,283,-0.2386010000,284,0.3081170000,285,0.2907260000,286,0.0050231100,287,-0.3575150000,288,0.0434947000,289,-0.3740870000,290,0.1834900000,291,0.0806336000,292,0.6109990000,293,-0.3979640000,294,-0.0661843000,295,-0.0474027000,296,0.3659180000,297,0.0701879000,298,0.2487320000,299,-0.0470355000,300,0.6094110000,301,-0.0699965000,302,-0.3092610000,303,-0.0106500000,304,0.3014910000 +162,0,0.4107440000,317,-1.0000000000,255,-0.0080287200,256,0.1124120000,257,-0.0499454000,258,0.0777356000,259,0.3987660000,260,-2.5655500000,261,-0.1633380000,262,-1.1563200000,263,0.5723520000,264,-2.1065400000,265,0.0656452000,266,0.7816980000,267,-1.0135200000,268,-0.0771703000,269,-3.0927100000,270,-0.1085890000,271,-2.6871100000,272,0.6490330000,273,-0.0103342000,274,0.5558740000,275,-0.1743760000,276,0.0142025000,277,-0.1738120000,278,-0.9252070000,279,0.4581600000,280,0.0947691000,281,-0.0337672000,282,0.1866230000,283,0.1590960000,284,-0.3024880000,285,-0.3843230000,286,-0.0377154000,287,-0.0861728000,288,0.7051800000,289,0.4778880000,290,-0.4821000000,291,-0.3742310000,292,0.5384500000,293,-0.3756290000,294,-0.5422430000,295,0.4145030000,296,0.0767004000,297,-0.5437660000,298,0.0271399000,299,0.2154030000,300,0.5749360000,301,0.6434380000,302,-0.0671182000,303,0.1648170000,304,-0.4657930000 +163,0,-0.7106710000,318,-1.0000000000,255,-0.3726540000,256,-0.5216880000,257,0.0093488900,258,0.5651230000,259,0.0657245000,260,0.5502280000,261,-0.1112150000,262,-0.4670290000,263,0.9360350000,264,0.3701330000,265,0.0266740000,266,0.5112710000,267,0.2942020000,268,-0.1696240000,269,0.2911450000,270,-0.2570480000,271,-1.2446400000,272,0.2441610000,273,-0.0295643000,274,0.2195110000,275,0.3044930000,276,-0.0090435900,277,-0.0728127000,278,0.7625150000,279,-0.6587920000,280,-0.3879840000,281,0.2776710000,282,-0.0598690000,283,-0.6910930000,284,0.8052630000,285,0.1999690000,286,0.0452016000,287,-0.1248220000,288,0.8517520000,289,0.0586378000,290,0.1812850000,291,-0.3847590000,292,-0.2896150000,293,0.1252620000,294,-0.8096370000,295,-0.6462210000,296,0.1434570000,297,0.8042870000,298,0.1442390000,299,-0.7841490000,300,0.1879190000,301,0.3093040000,302,0.2908660000,303,0.0444657000,304,0.1040590000 +164,0,-0.8943090000,319,-1.0000000000,255,0.0905815000,256,0.1577330000,257,0.0185523000,258,-0.2193690000,259,0.1437670000,260,0.8948740000,261,0.0964638000,262,0.0816976000,263,-0.9324520000,264,0.3805890000,265,0.2397110000,266,0.5516600000,267,-0.5428250000,268,-0.4854570000,269,0.5180210000,270,0.3354610000,271,-1.1711300000,272,0.0383398000,273,-0.0011013000,274,-0.1854380000,275,0.0738244000,276,-0.2211910000,277,0.2389170000,278,-0.0447468000,279,0.3033400000,280,-0.9099460000,281,-0.0349252000,282,-0.1208950000,283,0.1628760000,284,0.0948953000,285,-0.4014870000,286,0.0447424000,287,0.3645290000,288,0.3382680000,289,0.3491900000,290,-0.1672740000,291,-0.0387517000,292,-0.7696730000,293,0.3435110000,294,0.5734030000,295,0.1242570000,296,-0.3512640000,297,0.4455600000,298,0.0188294000,299,-0.6065870000,300,0.1554710000,301,-0.0921701000,302,0.1501040000,303,0.0167217000,304,-0.6405180000 +165,0,0.4082890000,320,-1.0000000000,255,-0.0977874000,256,-0.0583259000,257,0.0546479000,258,0.0771844000,259,-0.2485040000,260,-0.1286410000,261,0.0199549000,262,-0.4157670000,263,-0.1143730000,264,-0.1498930000,265,-0.0712409000,266,0.0104546000,267,-0.0316098000,268,0.1611190000,269,-0.6385330000,270,-0.0443651000,271,-0.2350080000,272,-0.0770582000,273,0.0049721600,274,-0.6026190000,275,0.1276610000,276,0.1022000000,277,-0.1761900000,278,0.3165160000,279,-0.0584860000,280,-0.1968540000,281,-0.0360593000,282,0.1061110000,283,0.0627282000,284,0.6631650000,285,0.2248780000,286,0.0335504000,287,0.4528800000,288,0.3034640000,289,-0.1044160000,290,-0.1553210000,291,-0.1006070000,292,0.4494330000,293,0.2152530000,294,-0.5966680000,295,-0.0058658700,296,0.4583030000,297,0.3061840000,298,0.0722558000,299,-0.1185590000,300,-0.2309520000,301,-0.4019640000,302,-0.0135856000,303,0.2691800000,304,-0.3098130000 +166,0,2.1884600000,321,-1.0000000000,255,0.0422712000,256,0.4586030000,257,0.0178555000,258,-0.4402870000,259,0.2593190000,260,0.2588930000,261,-1.5922600000,262,-1.6590900000,263,-2.2993100000,264,-0.2427670000,265,0.5450820000,266,0.8760730000,267,-2.3933000000,268,-1.8506300000,269,-0.6906870000,270,0.2768760000,271,1.2771300000,272,0.6970010000,273,0.0142166000,274,-0.6981390000,275,-0.1497590000,276,-0.7946560000,277,-0.2877070000,278,0.2352750000,279,0.0838902000,280,-0.1453890000,281,1.3935300000,282,1.1540400000,283,0.2920170000,284,0.3516500000,285,-0.2608290000,286,-0.0524168000,287,-0.3643900000,288,-1.1291600000,289,0.0352070000,290,0.1225810000,291,-0.5791560000,292,-0.7178000000,293,1.4094100000,294,0.7905560000,295,0.2295990000,296,-0.2535100000,297,0.0017270800,298,0.0269971000,299,-0.1572250000,300,0.5215500000,301,0.5400130000,302,0.3100680000,303,-1.8081200000,304,1.6828400000 +167,0,-1.0240100000,322,-1.0000000000,255,0.3224890000,256,0.1147240000,257,-0.0228397000,258,0.0149587000,259,-0.3757900000,260,0.6630260000,261,-2.4902100000,262,-1.2762400000,263,-0.8341930000,264,-0.1686940000,265,0.2499500000,266,-0.0587697000,267,0.5557250000,268,0.9565540000,269,-4.7817800000,270,0.3129450000,271,-1.3905800000,272,0.9391150000,273,-0.0453237000,274,0.4159370000,275,0.1378920000,276,0.0139768000,277,-0.4157830000,278,0.7604020000,279,0.8035970000,280,-0.7517770000,281,0.4608700000,282,0.6427080000,283,-0.8729680000,284,0.0580699000,285,-0.4136180000,286,-0.0446196000,287,0.1143260000,288,-1.1115700000,289,0.3064900000,290,-0.5485380000,291,-0.5144150000,292,-0.8227470000,293,-1.4680400000,294,0.4503060000,295,0.6265920000,296,0.0725257000,297,0.0114260000,298,-0.0560131000,299,-0.0354301000,300,-0.1072480000,301,-0.2805560000,302,-0.5797770000,303,-0.6779710000,304,-0.4113210000 +168,0,-1.0039300000,323,-1.0000000000,255,-0.8215440000,256,-0.8884000000,257,0.0234653000,258,0.0481002000,259,-0.8315120000,260,0.7157940000,261,0.0742363000,262,2.2614000000,263,1.1844600000,264,-3.4097800000,265,0.5560230000,266,-1.0744600000,267,1.5813800000,268,0.5309950000,269,-1.1829800000,270,-1.2296800000,271,-1.0303000000,272,-0.9151930000,273,0.0043538500,274,0.3710920000,275,0.4959110000,276,-0.4533690000,277,-0.2177650000,278,1.3812100000,279,-0.4746800000,280,-0.0097699800,281,-0.2297310000,282,-1.0239400000,283,-5.2530200000,284,0.1373150000,285,0.3825510000,286,-0.0285415000,287,0.0324176000,288,0.5687840000,289,-0.3197140000,290,-1.7595600000,291,0.1537450000,292,0.4098510000,293,0.5281300000,294,-0.5242690000,295,1.2035700000,296,-0.4075780000,297,-0.0548972000,298,-0.0425385000,299,-0.9349670000,300,0.4965540000,301,0.8021830000,302,0.0056215900,303,0.3582330000,304,-0.3578490000 +169,0,-0.4037660000,324,-1.0000000000,255,-0.0364506000,256,0.1104590000,257,0.0489787000,258,-0.0696974000,259,0.0342726000,260,0.4523800000,261,-0.4818010000,262,-7.8887300000,263,0.0119776000,264,-0.1394320000,265,0.2735940000,266,0.0707162000,267,0.4071890000,268,-0.9655100000,269,-0.4017790000,270,-0.0226777000,271,0.0896633000,272,-0.2255400000,273,0.0504441000,274,-0.0066767000,275,-0.0284227000,276,-0.0843331000,277,-0.1240490000,278,0.8199430000,279,0.4870850000,280,0.0322476000,281,0.0695914000,282,-0.1808760000,283,-0.1330300000,284,-0.4256030000,285,0.0604360000,286,0.0071775800,287,-0.0897489000,288,-0.5880450000,289,-1.0291100000,290,-0.6436930000,291,0.2406990000,292,-0.2681940000,293,-0.4870530000,294,-0.2394840000,295,0.4208080000,296,0.1233030000,297,-0.0738885000,298,-0.1924360000,299,-0.1741810000,300,0.0034517300,301,-1.3516700000,302,-0.1029750000,303,1.3171500000,304,0.3839900000 +170,0,-1.5085900000,325,-1.0000000000,255,0.4000530000,256,-0.0064440800,257,0.0255488000,258,0.0729059000,259,0.3823400000,260,-1.5349100000,261,0.4182260000,262,-0.3702380000,263,-0.2873010000,264,-0.2280360000,265,0.0037566200,266,0.0953605000,267,-0.6371240000,268,-0.1870520000,269,0.1633230000,270,0.0043168800,271,0.0092446000,272,0.5509630000,273,-0.0020341700,274,-0.0741906000,275,0.4161270000,276,-0.1956530000,277,-0.6468490000,278,-0.7607240000,279,-2.1815200000,280,-0.3610730000,281,-1.7741100000,282,-0.0868892000,283,-0.3346340000,284,0.7082480000,285,-0.8565120000,286,0.0484590000,287,0.4214690000,288,0.5496770000,289,0.3118630000,290,1.1560800000,291,-0.3952450000,292,0.7063060000,293,-0.8004880000,294,-0.1420990000,295,0.3885930000,296,-0.3567620000,297,0.5215020000,298,0.4193930000,299,-0.5979390000,300,-0.4242120000,301,-0.1921950000,302,0.2194580000,303,0.1504430000,304,1.5358400000 +171,0,1.2966600000,326,-1.0000000000,255,0.2255870000,256,0.4792560000,257,0.0449661000,258,0.3793110000,259,-0.0407765000,260,-0.4839720000,261,0.7211350000,262,-1.7004600000,263,-1.7579700000,264,-0.1082060000,265,0.8833400000,266,0.3536090000,267,-1.6864900000,268,0.3740260000,269,2.3387600000,270,1.8508000000,271,1.6550800000,272,0.1449930000,273,-0.0119839000,274,-0.3885920000,275,-0.6927200000,276,-0.1181030000,277,0.1424190000,278,-0.2620090000,279,0.4876390000,280,-0.6558390000,281,-0.9346320000,282,-0.5568280000,283,-0.4379130000,284,-0.6870760000,285,-0.3978340000,286,0.0411671000,287,-0.1124930000,288,-0.5570680000,289,-0.0164553000,290,0.9167810000,291,-0.2753380000,292,-0.1222310000,293,3.2111400000,294,0.0754794000,295,-0.4618620000,296,-0.2929190000,297,0.0022804900,298,-0.6220760000,299,-0.1215760000,300,-1.1829400000,301,0.2288020000,302,0.5228210000,303,-0.3953550000,304,2.2780700000 +172,0,-0.5476470000,327,-1.0000000000,255,0.1580850000,256,0.4159620000,257,-0.0433534000,258,-0.3415570000,259,0.0904376000,260,-0.0708402000,261,-1.7454000000,262,2.8026500000,263,0.5805830000,264,0.4239370000,265,0.3579540000,266,-0.4481790000,267,-0.5575290000,268,-1.0299000000,269,0.5243020000,270,-0.3900440000,271,1.0697300000,272,1.3634200000,273,-0.0054519500,274,-0.4123910000,275,0.4491680000,276,-0.6337630000,277,-0.2051920000,278,0.3142900000,279,-0.3663410000,280,-0.0795749000,281,0.4786390000,282,-0.4373720000,283,0.0402989000,284,-0.5001690000,285,0.0863596000,286,-0.0107671000,287,0.5475860000,288,0.2093860000,289,0.6820260000,290,-0.3255930000,291,-0.6519950000,292,-0.4301130000,293,0.4015280000,294,0.9615500000,295,-0.2924470000,296,-0.4668180000,297,0.2088070000,298,-0.1018790000,299,0.0008576530,300,0.1330310000,301,-1.8181700000,302,-0.5717820000,303,0.8628190000,304,1.1394700000 +173,0,2.2869600000,328,-1.0000000000,255,0.3475380000,256,0.6985390000,257,-0.0024796200,258,0.1487200000,259,0.8044030000,260,0.6090720000,261,0.3174480000,262,-0.1460360000,263,0.8500440000,264,-0.4429010000,265,0.6749290000,266,0.9080490000,267,2.0271500000,268,-0.3585230000,269,2.0196800000,270,0.2309880000,271,0.4277720000,272,-0.7386600000,273,-0.0037363700,274,0.6474310000,275,-0.0970008000,276,0.6200180000,277,-0.5993630000,278,0.5438150000,279,-1.6202100000,280,-0.0933356000,281,-0.6478700000,282,-1.6753400000,283,0.4389590000,284,-0.0276947000,285,-0.3976310000,286,-0.0218188000,287,-0.2254180000,288,0.3726980000,289,-0.5988040000,290,0.9917800000,291,0.8946120000,292,2.5350500000,293,-1.2422300000,294,-0.0922515000,295,-1.0414000000,296,0.5217480000,297,0.1788280000,298,-1.6625800000,299,-0.8551240000,300,0.9640140000,301,0.8157090000,302,1.0286800000,303,-1.8502400000,304,0.0437452000 +174,0,0.0122070000,329,-1.0000000000,255,0.0234458000,256,-0.0225110000,257,-0.0458420000,258,-0.0012932500,259,0.0296201000,260,0.0118800000,261,-0.0090540000,262,0.0229114000,263,-0.0473720000,264,0.0088044600,265,0.0330441000,266,0.0365267000,267,0.0023958100,268,0.0014304400,269,-0.0036146100,270,-0.0342445000,271,0.0084627100,272,0.0039168500,273,0.0209142000,274,-0.0459912000,275,0.0201690000,276,-0.0526689000,277,0.0141459000,278,0.0459919000,279,-0.0403537000,280,-0.0536985000,281,-0.0404442000,282,-0.0440484000,283,-0.0022547300,284,-0.0149095000,285,0.0137237000,286,-0.0114036000,287,-0.0217238000,288,-0.0082817800,289,-0.0251766000,290,-0.0070014900,291,-0.0514845000,292,-0.0162060000,293,0.0371858000,294,-0.0400866000,295,-0.0066867400,296,-0.0388539000,297,-0.0243062000,298,-0.0522015000,299,-0.0325919000,300,-0.0311690000,301,-0.0371294000,302,-0.0107862000,303,-0.0434321000,304,-0.0130684000 +175,0,0.3039170000,330,-1.0000000000,255,0.1827730000,256,0.0358442000,257,-0.0388189000,258,-0.6773060000,259,-0.9197250000,260,0.1551930000,261,-0.6602050000,262,-0.9511860000,263,1.1164200000,264,0.1458530000,265,-0.1099700000,266,0.7769610000,267,0.2907150000,268,0.0944013000,269,-0.4301880000,270,0.4866450000,271,2.8352100000,272,0.9232770000,273,-0.0267469000,274,-0.4852160000,275,-0.3260400000,276,-0.0031048500,277,0.3215130000,278,0.3577090000,279,-0.8070280000,280,0.5162660000,281,0.4385600000,282,1.0634300000,283,-0.7506700000,284,0.8906570000,285,-0.2909210000,286,0.0423355000,287,0.7175940000,288,0.0460732000,289,0.0742086000,290,-0.4329800000,291,-1.1610400000,292,1.5541100000,293,0.2999550000,294,0.7384500000,295,-0.3662100000,296,-2.2517800000,297,-0.3967290000,298,0.2585480000,299,-0.4359220000,300,0.0377398000,301,0.2383110000,302,0.2807320000,303,-1.3695200000,304,1.5755700000 +176,0,-1.2535600000,331,-1.0000000000,255,-1.1276700000,256,-1.0359300000,257,-0.0399442000,258,0.3643840000,259,-0.2857150000,260,-1.2215500000,261,-0.0141265000,262,0.5208090000,263,-0.5351860000,264,0.0831042000,265,-0.2856380000,266,0.6881380000,267,0.7833540000,268,0.5494390000,269,0.9731250000,270,-0.2963840000,271,-0.1719620000,272,-0.2898180000,273,0.0157541000,274,0.0005751950,275,0.3049110000,276,-0.6490040000,277,0.2237250000,278,0.2817950000,279,0.5092240000,280,-0.6003920000,281,0.0257263000,282,-0.1528790000,283,0.1146240000,284,0.6057250000,285,0.0730756000,286,0.0036953300,287,0.8250070000,288,0.4619070000,289,0.3782430000,290,-0.4673750000,291,0.1730810000,292,0.0159112000,293,-0.7071150000,294,-0.2042430000,295,0.3396760000,296,-0.1827340000,297,-0.1061920000,298,-0.2222070000,299,-0.3093290000,300,-0.4867090000,301,-0.0936650000,302,0.2315370000,303,0.3098370000,304,0.4367690000 +177,0,0.5625540000,332,-1.0000000000,255,-0.3891270000,256,0.2794170000,257,-0.0450097000,258,-0.1367630000,259,-0.1311230000,260,0.7007430000,261,-0.0819003000,262,0.3187120000,263,-1.7682100000,264,-0.8479960000,265,0.2569250000,266,-0.1223170000,267,-0.5514120000,268,0.1772660000,269,0.0948513000,270,1.1640900000,271,-0.7745360000,272,-0.2731730000,273,-0.0063016400,274,-0.2386690000,275,-0.0819791000,276,-0.0313895000,277,-0.3528880000,278,0.3337830000,279,0.0795027000,280,0.1952790000,281,0.2019780000,282,0.2552790000,283,-0.5454460000,284,0.8178850000,285,-0.2553250000,286,0.0388465000,287,2.2379200000,288,-0.5779910000,289,-0.0082000400,290,0.1078770000,291,0.0353910000,292,0.1811460000,293,-0.6779920000,294,-0.2487440000,295,0.0557690000,296,-0.2788040000,297,0.8620680000,298,-0.0649132000,299,-0.2892490000,300,0.3798750000,301,0.5702130000,302,-1.6120800000,303,-0.5751760000,304,-1.3548100000 +178,0,0.1215700000,333,-1.0000000000,255,-0.2150460000,256,0.1185250000,257,-0.0069996900,258,0.1231040000,259,0.2374940000,260,-0.1261460000,261,0.1399520000,262,-0.3029730000,263,0.8692860000,264,0.2193520000,265,-0.9244260000,266,0.8923940000,267,0.5443040000,268,0.4187410000,269,-0.1204180000,270,0.4085540000,271,-0.3815580000,272,-0.2444920000,273,-0.0006691300,274,0.3630350000,275,0.1290320000,276,-0.2130080000,277,-0.4030730000,278,0.8504990000,279,-0.0250949000,280,-0.0101100000,281,1.1103100000,282,0.0062877100,283,-1.4516900000,284,-0.2265220000,285,-0.2686770000,286,-0.0217281000,287,-0.2850840000,288,0.5737380000,289,0.0491202000,290,-0.3632080000,291,-0.5710460000,292,-0.6001180000,293,1.0288700000,294,0.3698440000,295,-0.0108542000,296,0.3688670000,297,-0.1462920000,298,0.4364000000,299,-0.3119480000,300,-0.3085000000,301,-0.3647030000,302,-0.2458320000,303,1.0251400000,304,0.9313460000 +179,0,-0.6903410000,334,-1.0000000000,255,-0.2722310000,256,-0.1229490000,257,0.0165958000,258,-0.4455880000,259,-0.0126691000,260,-0.1146600000,261,-0.2609810000,262,0.1318360000,263,-0.5566820000,264,-0.3347790000,265,0.2715370000,266,-0.0137183000,267,0.6196120000,268,-0.1022510000,269,0.2445490000,270,-0.1241400000,271,-0.6481360000,272,0.1511280000,273,-0.0305143000,274,0.1090850000,275,-0.3835850000,276,0.2852710000,277,0.0265050000,278,0.3115980000,279,0.1451010000,280,-0.1902260000,281,-0.0047435400,282,-0.3114710000,283,-0.2235120000,284,-0.0156196000,285,0.2270170000,286,-0.0358850000,287,-0.4031820000,288,-0.1162060000,289,-0.2009040000,290,-0.1771900000,291,-0.3500550000,292,0.4284580000,293,-0.4996380000,294,0.1142830000,295,-0.1327670000,296,0.3014370000,297,0.0331854000,298,-0.1327950000,299,-0.0026041800,300,0.0988872000,301,0.0967035000,302,-0.3957500000,303,0.4065250000,304,0.1855230000 +180,0,0.1099130000,335,-1.0000000000,255,-0.4752470000,256,-0.0974948000,257,-0.0424146000,258,-0.6635720000,259,-0.1691030000,260,-0.5388250000,261,0.4827570000,262,-0.0479622000,263,-0.0530413000,264,-0.0187823000,265,0.1291710000,266,1.4949900000,267,0.5653300000,268,-0.0340219000,269,-0.4360830000,270,-2.4519800000,271,0.6360160000,272,0.3051280000,273,0.0028688200,274,0.5118830000,275,-0.4317790000,276,-0.1622080000,277,0.2423780000,278,-1.9929900000,279,-0.4911870000,280,0.0337513000,281,-0.0529700000,282,-1.0807400000,283,0.0102843000,284,-0.5040800000,285,0.3948310000,286,0.0477870000,287,-1.3183600000,288,-0.3161370000,289,-0.6896280000,290,0.4934380000,291,-0.3242560000,292,-0.4077400000,293,1.7552900000,294,0.2310600000,295,0.2738840000,296,0.4745850000,297,-0.5654560000,298,-0.3135700000,299,0.1453630000,300,0.4739030000,301,0.2112100000,302,0.2115700000,303,-0.1557980000,304,1.7546600000 +181,0,-0.4221120000,336,-1.0000000000,255,-1.5512400000,256,0.6758070000,257,-0.0222968000,258,-0.7074720000,259,-1.4507400000,260,0.9513260000,261,-0.2737840000,262,0.3540050000,263,-1.4676000000,264,-0.4479900000,265,0.2211250000,266,0.8578640000,267,-2.3077800000,268,-0.7354980000,269,-3.0874900000,270,-0.8736100000,271,-0.0575011000,272,-0.8093780000,273,-0.0051134900,274,0.0451565000,275,-0.3038260000,276,0.6460470000,277,-0.2904940000,278,-0.4135170000,279,0.6729700000,280,-0.2139260000,281,-0.1214670000,282,-0.9147370000,283,-1.3806100000,284,-0.9419890000,285,0.7034550000,286,-0.0057624900,287,-0.8815680000,288,0.1402540000,289,-0.6132120000,290,0.0123514000,291,0.5656270000,292,-0.1310730000,293,-0.8161130000,294,-0.5125640000,295,0.5461810000,296,0.0666227000,297,-0.0158716000,298,-0.5151850000,299,0.1346420000,300,-0.7306710000,301,-0.2734540000,302,-2.2076500000,303,0.4445780000,304,-0.2747920000 +182,0,0.4573820000,337,-1.0000000000,255,-0.0686099000,256,-0.0342720000,257,-0.0052491000,258,0.0394632000,259,-0.3938480000,260,-0.1346850000,261,-1.7236000000,262,0.1210790000,263,0.1898270000,264,0.1517100000,265,0.3773510000,266,-0.3901600000,267,-0.1781830000,268,1.1913000000,269,0.3718730000,270,0.1782470000,271,-1.3439200000,272,0.2278220000,273,-0.0215351000,274,0.6712000000,275,0.0239696000,276,-0.2505290000,277,-0.5119040000,278,-0.0678306000,279,-0.2115010000,280,-0.0245895000,281,0.2015830000,282,0.1080350000,283,0.6041410000,284,0.2613000000,285,0.1092750000,286,-0.0222158000,287,0.3598150000,288,0.2073550000,289,0.5369730000,290,-0.0122993000,291,0.0086379500,292,0.0159114000,293,0.2721800000,294,-0.1222360000,295,0.1636680000,296,0.2982680000,297,0.0153855000,298,-0.1067150000,299,0.2420350000,300,-0.0095409800,301,0.6378100000,302,0.1592730000,303,-0.8385920000,304,-0.2025430000 +183,0,0.2745760000,338,-1.0000000000,255,0.1618160000,256,0.7444270000,257,-0.0006987300,258,-0.1475500000,259,0.7967180000,260,-0.1888200000,261,-0.6114180000,262,-0.3334690000,263,1.7739400000,264,0.4798130000,265,0.4130100000,266,-1.4073500000,267,1.0992500000,268,0.4515850000,269,-0.3081990000,270,-0.7080180000,271,-0.5535880000,272,0.3814710000,273,-0.0436178000,274,0.1767140000,275,0.2054550000,276,0.8025210000,277,-0.2817030000,278,-0.0431393000,279,-0.1910830000,280,0.5713460000,281,-0.3889020000,282,-1.1293400000,283,0.3594390000,284,0.0175257000,285,0.1652030000,286,-0.0516669000,287,-0.7348970000,288,0.5555710000,289,-0.5313210000,290,0.9300050000,291,-0.1669210000,292,-0.2895450000,293,1.7825400000,294,0.0406001000,295,-0.0294558000,296,0.2213550000,297,0.3751100000,298,-0.6986570000,299,-0.5494470000,300,0.6163640000,301,-0.2874730000,302,0.4107520000,303,0.2988460000,304,0.3975010000 +184,0,-0.3055310000,339,-1.0000000000,255,0.4459140000,256,-0.2164620000,257,0.0041700100,258,-0.0263143000,259,0.6440860000,260,-0.1475380000,261,-0.3441360000,262,0.7298520000,263,0.5773380000,264,0.1253140000,265,0.1232410000,266,0.3829010000,267,0.8447810000,268,-0.8437980000,269,0.1454120000,270,0.2247870000,271,1.4720600000,272,-0.0281673000,273,-0.0416278000,274,-0.1760180000,275,0.3920570000,276,-0.0429522000,277,-0.3308010000,278,-0.2098270000,279,-0.3301410000,280,-0.0047368600,281,-0.2543770000,282,0.3805470000,283,0.3819790000,284,-0.3773030000,285,-0.3766870000,286,-0.0373518000,287,-0.1371500000,288,0.3256380000,289,-0.3368570000,290,0.6091570000,291,0.3561010000,292,-0.8738390000,293,0.1747890000,294,0.0041613800,295,0.1721550000,296,-0.2500600000,297,-0.4192650000,298,0.4303470000,299,-0.0734408000,300,-0.1910230000,301,-0.2888050000,302,0.0544294000,303,-0.3787390000,304,-0.3242400000 +185,0,1.1061200000,340,-1.0000000000,255,-0.0586666000,256,0.1962810000,257,-0.0381402000,258,0.4804020000,259,-0.6886700000,260,0.7661120000,261,0.1568820000,262,0.1580310000,263,0.1884810000,264,-0.2856760000,265,0.3445000000,266,0.7343970000,267,0.2169560000,268,0.1257010000,269,1.1911100000,270,0.4789210000,271,1.4297100000,272,0.1081310000,273,-0.0058158900,274,-0.7990620000,275,0.0355091000,276,-0.1981230000,277,-0.2327460000,278,0.6857980000,279,0.2035800000,280,-0.5766960000,281,-0.4278180000,282,-0.0454941000,283,0.7091150000,284,-0.3499660000,285,-0.0932197000,286,-0.0082252900,287,0.1845870000,288,0.8480930000,289,0.3126980000,290,-0.2968760000,291,-0.3896320000,292,0.9268050000,293,-0.6468530000,294,0.5621030000,295,-0.3138010000,296,0.3083210000,297,0.1067990000,298,0.0540927000,299,-0.9356460000,300,0.0720691000,301,0.1159940000,302,0.0975113000,303,0.5541650000,304,0.0975302000 +186,0,-0.9057130000,341,-1.0000000000,255,0.5698690000,256,0.4033330000,257,0.0096981300,258,-0.2542780000,259,0.6362400000,260,-1.1500900000,261,0.2181950000,262,-1.2884800000,263,1.2728600000,264,0.4135430000,265,0.1095570000,266,0.4747370000,267,0.7643060000,268,0.4369710000,269,-2.4540700000,270,0.1043050000,271,-0.2634960000,272,0.0593565000,273,-0.0415394000,274,0.0379877000,275,0.2382460000,276,0.2993220000,277,0.1607440000,278,0.4426030000,279,-0.1452180000,280,0.2990880000,281,0.4645810000,282,0.1685340000,283,1.0829300000,284,0.5451470000,285,-0.1599570000,286,-0.0547442000,287,0.3390960000,288,0.3303280000,289,-0.2535290000,290,0.6132510000,291,0.0630275000,292,-0.8142960000,293,0.9115330000,294,0.1821030000,295,-0.0427102000,296,-0.5259900000,297,-0.5809840000,298,-0.2453010000,299,0.7163140000,300,0.7322400000,301,-0.1325560000,302,0.6514910000,303,-0.1299090000,304,0.1304710000 +187,0,-0.2753810000,342,-1.0000000000,255,0.0027543000,256,0.0015275600,257,0.0402141000,258,-0.2047530000,259,0.1128920000,260,-0.3418940000,261,0.2330540000,262,-0.0257017000,263,-0.1873620000,264,-0.3837540000,265,0.4240370000,266,-0.4592090000,267,-0.1365960000,268,0.2748950000,269,-0.3726040000,270,0.4344640000,271,0.9698910000,272,-0.1644030000,273,-0.0083994600,274,-0.2665880000,275,0.0030164000,276,-0.2522090000,277,0.4494160000,278,0.4010830000,279,0.3535700000,280,-0.1514360000,281,0.8833230000,282,0.6003800000,283,-0.4797200000,284,0.0153306000,285,-0.0988670000,286,0.0465801000,287,0.7142350000,288,0.5676350000,289,0.2320510000,290,-0.3262770000,291,-0.2350170000,292,-0.4824260000,293,0.1486810000,294,0.2112810000,295,-0.1830570000,296,-1.1470800000,297,0.2304300000,298,-0.1247680000,299,-0.0810744000,300,-0.0577515000,301,-0.0541686000,302,0.0605525000,303,0.5774370000,304,0.0220869000 +188,0,0.2375750000,343,-1.0000000000,255,0.4120600000,256,0.0730080000,257,0.0511096000,258,0.4588310000,259,-0.4822760000,260,0.8859560000,261,-0.4611050000,262,-0.8716540000,263,0.4103720000,264,-0.3213440000,265,0.3621710000,266,0.1959030000,267,1.0101600000,268,0.2747770000,269,-1.1436400000,270,-0.1528340000,271,-1.7643000000,272,0.2744700000,273,-0.0390877000,274,-0.0328933000,275,-0.4042640000,276,0.0375477000,277,-0.1552510000,278,0.2503440000,279,-0.0147167000,280,0.0858153000,281,-0.4759720000,282,0.5201050000,283,-0.4640830000,284,0.7444890000,285,0.3570980000,286,-0.0183390000,287,0.1817940000,288,0.4384410000,289,0.6173200000,290,-0.0701591000,291,-0.6424290000,292,1.0019700000,293,-0.9690230000,294,-1.8674000000,295,-0.1252220000,296,0.5916470000,297,0.0344718000,298,0.2114680000,299,-0.5360710000,300,0.2670470000,301,-0.7310240000,302,-0.1568250000,303,0.2148730000,304,-0.6943770000 +189,0,-0.7945720000,344,-1.0000000000,255,0.0074961200,256,-0.9410770000,257,-0.0155145000,258,-0.3909810000,259,0.3474280000,260,-0.9718720000,261,-2.5062400000,262,0.2267890000,263,-0.3845570000,264,1.1276100000,265,0.3402250000,266,-0.4236720000,267,0.9705610000,268,0.7966620000,269,-5.4989600000,270,-1.8599600000,271,-1.4392200000,272,-0.1863450000,273,-0.0403752000,274,-0.3279480000,275,0.7794850000,276,0.1438770000,277,-0.2414440000,278,0.6065970000,279,-1.1528700000,280,-0.0684446000,281,0.2183410000,282,0.3255770000,283,-0.2994570000,284,-0.2603270000,285,0.2223070000,286,-0.0692348000,287,-0.6245500000,288,-1.3199700000,289,-0.6375800000,290,-0.2139460000,291,-0.9858100000,292,-0.4757180000,293,0.4633270000,294,1.0730400000,295,0.6106870000,296,0.1573050000,297,-0.2469500000,298,0.5828160000,299,-0.3670970000,300,-0.1129980000,301,0.1405390000,302,0.1273750000,303,-0.6368780000,304,-0.5249060000 +190,0,1.9045900000,345,-1.0000000000,255,0.5620290000,256,0.1225830000,257,0.0002342500,258,-0.2912610000,259,-0.2045280000,260,-0.9810100000,261,1.0536900000,262,1.5198300000,263,0.6266970000,264,-1.2757200000,265,0.4300650000,266,1.5477200000,267,0.0671698000,268,0.0571311000,269,0.1668940000,270,0.7041710000,271,0.0271949000,272,0.8202610000,273,-0.0184504000,274,1.3326800000,275,-0.2617300000,276,-0.2180470000,277,-0.4228730000,278,0.4731750000,279,0.2660180000,280,0.0565517000,281,0.4756600000,282,1.6583100000,283,0.0879880000,284,-0.0656896000,285,0.4706180000,286,0.0115005000,287,-3.4190400000,288,-0.7500020000,289,0.4157380000,290,-0.2560630000,291,0.1530610000,292,1.7920900000,293,1.2891600000,294,0.3631890000,295,-0.1023980000,296,0.2616420000,297,-0.6389560000,298,-0.0743671000,299,-0.3673790000,300,0.8384670000,301,0.9089080000,302,-0.6119010000,303,-0.3870010000,304,0.4621730000 +191,0,-0.1632460000,346,-1.0000000000,255,-0.5085760000,256,0.0587444000,257,-0.0175599000,258,-0.8949980000,259,0.8859310000,260,-0.4162460000,261,-3.8858800000,262,0.2883880000,263,0.0317247000,264,0.3770150000,265,-0.8442500000,266,0.4394420000,267,0.1564400000,268,2.2866500000,269,0.0881114000,270,0.7215730000,271,3.2650400000,272,0.6016520000,273,-0.0286086000,274,2.3508100000,275,-0.7589950000,276,0.6046370000,277,-0.3587420000,278,1.2039800000,279,-0.1036020000,280,-0.6257060000,281,-0.4252760000,282,0.8357300000,283,-0.1130970000,284,0.0409474000,285,0.2710210000,286,0.0230120000,287,-0.0959481000,288,-1.4738800000,289,-1.0443400000,290,0.1862610000,291,-0.4726290000,292,-0.4148890000,293,-2.0724700000,294,-0.2439430000,295,-1.3319500000,296,0.5730900000,297,0.9134420000,298,-0.8919860000,299,0.5741500000,300,0.7932440000,301,0.4708630000,302,-0.9785160000,303,0.0564160000,304,1.5687800000 +192,0,-0.1112270000,347,-1.0000000000,255,-0.0206870000,256,-0.0792332000,257,0.0190646000,258,0.1511580000,259,-0.0640437000,260,-0.8839470000,261,-0.0463807000,262,-0.7254680000,263,0.1826090000,264,0.2665150000,265,-0.0775152000,266,0.1124860000,267,-0.2956860000,268,-0.2639880000,269,-0.2676190000,270,-0.3233560000,271,-1.0084400000,272,0.2067310000,273,0.0346614000,274,0.1209740000,275,0.0319907000,276,0.0664298000,277,-0.0519479000,278,-0.2597030000,279,-0.0928199000,280,-0.0362429000,281,-0.0658807000,282,-0.2287100000,283,-0.0901965000,284,0.2004050000,285,-0.0011364700,286,0.0019144500,287,-0.0163141000,288,0.2417510000,289,0.0710595000,290,0.4354480000,291,-0.1030380000,292,-0.6590640000,293,0.7480440000,294,-0.0903243000,295,-0.1042280000,296,-0.3269270000,297,-0.1828320000,298,0.1389220000,299,-0.0753061000,300,0.1057970000,301,-0.0166613000,302,-0.0147446000,303,-0.2534590000,304,0.4393220000 +193,0,-1.0326300000,348,-1.0000000000,255,0.3499390000,256,-0.2390220000,257,-0.0039133700,258,-0.5909870000,259,-0.1418470000,260,-4.4299800000,261,-0.1521010000,262,0.3571910000,263,-0.7730780000,264,-0.9084080000,265,0.1331930000,266,2.0445900000,267,-0.7447770000,268,-0.3043020000,269,-2.9149700000,270,-0.4420020000,271,-1.3714800000,272,0.5443040000,273,0.0187935000,274,0.5268780000,275,0.7188900000,276,-0.0878719000,277,-0.5972340000,278,1.0984100000,279,-0.8976400000,280,-0.0799355000,281,-0.6386480000,282,0.4266860000,283,0.3477800000,284,0.5906140000,285,0.4499280000,286,-0.0008548480,287,-0.2680200000,288,-0.6820180000,289,-4.9104100000,290,0.1088530000,291,-0.4435570000,292,0.6101380000,293,1.0554000000,294,0.9528750000,295,-0.9152120000,296,-0.7894830000,297,0.1529210000,298,-0.8644120000,299,0.2697340000,300,-0.1392160000,301,-0.3016890000,302,0.2869660000,303,1.8920300000,304,-0.4404130000 +194,0,-1.5072700000,349,-1.0000000000,255,0.8576280000,256,-1.3824500000,257,0.0421851000,258,0.5215440000,259,-0.3993650000,260,0.0627473000,261,1.7814900000,262,-0.6250520000,263,-0.5789270000,264,1.3087000000,265,-1.5757900000,266,-2.2026900000,267,-2.0931700000,268,-0.9702030000,269,-1.3120200000,270,0.0621150000,271,-2.3786100000,272,-3.1809500000,273,-0.0226965000,274,-4.4327700000,275,-0.3147550000,276,-2.5542700000,277,-0.0133051000,278,-1.0065100000,279,-1.9134900000,280,0.1829740000,281,0.7656610000,282,2.0164600000,283,-0.7984590000,284,0.8278850000,285,-0.7996050000,286,-0.0117088000,287,3.0457000000,288,0.0464709000,289,-5.8997600000,290,0.4914670000,291,-1.2822800000,292,-0.1468610000,293,0.0606159000,294,-0.6825250000,295,1.1495000000,296,-1.7683300000,297,-0.3584930000,298,0.0869858000,299,0.9959360000,300,-2.5050700000,301,2.4133800000,302,0.2193370000,303,0.0433431000,304,0.9374110000 +195,0,-0.3291140000,350,-1.0000000000,255,0.1653270000,256,-0.4203800000,257,-0.0257075000,258,0.2839940000,259,-0.0296898000,260,0.2484730000,261,0.0390292000,262,-0.6960690000,263,-0.5873730000,264,0.3261150000,265,0.2567350000,266,-0.0213285000,267,-0.0224324000,268,-0.3129150000,269,-0.3535690000,270,-0.2328200000,271,-0.9735390000,272,-0.2657910000,273,0.0460543000,274,-0.2831090000,275,0.1112870000,276,-0.1133300000,277,0.0568965000,278,-0.3077560000,279,-0.1724070000,280,0.0830135000,281,0.2723100000,282,0.0448928000,283,0.0041625000,284,-0.0485397000,285,0.2097810000,286,0.0125595000,287,-0.2928440000,288,-0.2560680000,289,-0.5577840000,290,0.0645670000,291,-0.6396520000,292,0.1380000000,293,0.9746670000,294,-0.0273919000,295,0.2159080000,296,0.4042150000,297,0.1110840000,298,0.0765368000,299,-0.0340706000,300,-0.6606760000,301,0.4714570000,302,-0.0521350000,303,0.3097540000,304,-0.2458050000 +196,0,-1.3003900000,351,-1.0000000000,255,-0.9568690000,256,1.1885200000,257,0.0118782000,258,-0.0134504000,259,-0.4358720000,260,0.7917550000,261,-0.4665400000,262,-0.6232160000,263,-4.2731600000,264,-6.6218500000,265,-0.5050170000,266,0.3112790000,267,-1.1164200000,268,1.6896500000,269,-0.9773330000,270,0.8501690000,271,-2.4100900000,272,0.3521880000,273,0.0064962300,274,-0.8611240000,275,-0.9008820000,276,0.2992640000,277,-0.2091270000,278,-0.0362949000,279,0.2858430000,280,0.1870790000,281,2.7837000000,282,0.1398360000,283,-0.3793920000,284,0.2240330000,285,-0.8966130000,286,0.0067062500,287,0.9262770000,288,0.2637200000,289,-0.4538080000,290,-3.1161600000,291,-0.4683940000,292,0.4909810000,293,1.4203400000,294,-1.5691800000,295,-0.0814311000,296,0.2622950000,297,-0.0082659800,298,0.6383480000,299,-0.5189320000,300,-0.1075680000,301,-0.7086710000,302,-0.1215780000,303,0.8710240000,304,1.8507400000 +197,0,-0.2501850000,352,-1.0000000000,255,-0.0020342000,256,-0.1437570000,257,0.0096763000,258,-0.7661440000,259,-0.0093808400,260,0.5785500000,261,0.3143990000,262,-0.9221170000,263,-1.7493400000,264,-0.1757270000,265,0.1673680000,266,0.6268020000,267,0.4074710000,268,0.6552810000,269,-4.5850700000,270,-0.4687060000,271,-1.4071800000,272,0.9969210000,273,0.0153237000,274,-1.0992300000,275,-0.7112390000,276,-0.5188550000,277,0.1400270000,278,0.1312810000,279,0.3500540000,280,-0.0289918000,281,-0.2850250000,282,-0.2326800000,283,-1.1730800000,284,0.0797245000,285,0.4341170000,286,0.0234017000,287,1.3518900000,288,0.2321520000,289,0.3266860000,290,-0.5403400000,291,-0.9716310000,292,-0.8577570000,293,0.4807060000,294,0.2720850000,295,0.9989300000,296,-1.1950900000,297,-0.1735470000,298,0.1575140000,299,-0.7411530000,300,-0.4905790000,301,0.7579680000,302,-0.0374659000,303,-0.3096470000,304,-0.2822970000 +198,0,-1.8247400000,353,-1.0000000000,255,-2.0704500000,256,-2.2339500000,257,-0.0347303000,258,0.0139990000,259,-2.1763100000,260,0.7427740000,261,-0.8982140000,262,-2.8171600000,263,-2.0112800000,264,-1.7710700000,265,-0.2126150000,266,-1.1821500000,267,1.2749800000,268,1.0971400000,269,-1.9044300000,270,-4.6954600000,271,-7.4038600000,272,-5.8174300000,273,0.0340597000,274,0.1012380000,275,0.0460012000,276,0.5837890000,277,-1.1925000000,278,-2.8638600000,279,-0.1879110000,280,1.2006500000,281,0.6699660000,282,-0.1327290000,283,-0.9300140000,284,0.6792350000,285,-0.6619760000,286,-0.0194079000,287,-1.4854700000,288,1.0103300000,289,0.0178066000,290,1.5030700000,291,-0.3181420000,292,0.7208430000,293,-0.0202814000,294,-2.9185200000,295,-0.8524570000,296,-0.9845750000,297,0.7555020000,298,0.0266846000,299,0.1640470000,300,-3.3829300000,301,-1.3673800000,302,0.9202480000,303,-0.7326870000,304,-0.1067740000 +199,0,-0.3629360000,354,-1.0000000000,255,-0.1836490000,256,0.0000639906,257,-0.0228830000,258,0.1634490000,259,0.0128694000,260,0.2889590000,261,-0.3701580000,262,0.2995270000,263,-1.8876500000,264,0.2297080000,265,-0.4154580000,266,0.0809612000,267,-0.2477160000,268,0.5527490000,269,-0.9804110000,270,-0.4629940000,271,-0.0383553000,272,-0.2691600000,273,0.0120003000,274,0.1880250000,275,0.0753018000,276,-0.0374311000,277,0.1437780000,278,0.2159900000,279,-0.0759176000,280,-0.1347940000,281,0.7355860000,282,-0.3715860000,283,0.2481240000,284,-0.0062374400,285,-0.1880630000,286,-0.0080812400,287,-0.1273380000,288,0.6383440000,289,0.6433170000,290,-0.6366770000,291,0.1198420000,292,-0.5073340000,293,0.1064680000,294,-0.1321680000,295,0.2034900000,296,0.8488460000,297,0.2529480000,298,-0.1486160000,299,0.1400670000,300,0.1234850000,301,0.1422030000,302,0.0638366000,303,-0.1257820000,304,0.1371050000 +200,0,-0.1411190000,405,-1.0000000000,355,-0.3041340000,356,0.0718915000,357,-0.0844441000,358,0.5047190000,359,-0.1228690000,360,-4.1763600000,361,1.5895700000,362,0.4416450000,363,1.5117300000,364,-0.1524640000,365,0.6334540000,366,-2.1228100000,367,0.6537230000,368,0.2558010000,369,0.7431750000,370,-1.9939600000,371,0.6370340000,372,0.2482920000,373,0.6455490000,374,-0.1471350000,375,0.1451720000,376,0.3390740000,377,0.3808170000,378,-0.3616200000,379,0.0365797000,380,0.8798510000,381,0.1121000000,382,-0.3498360000,383,0.6980790000,384,-0.2261710000,385,-1.5140900000,386,0.8889950000,387,0.4270890000,388,0.1454920000,389,-0.8695950000,390,-0.1678400000,391,-0.7610200000,392,-0.6885090000,393,-0.1152280000,394,-1.4631900000,395,0.8766670000,396,-2.0307700000,397,-0.8796670000,398,-0.2537170000,399,-0.0658197000,400,-0.9272930000,401,0.0447259000,402,-0.6192220000,403,0.3071310000,404,0.1010700000 +201,0,0.0822190000,406,-1.0000000000,355,0.1185680000,356,-0.3086530000,357,-0.2759260000,358,0.0160704000,359,-0.3817740000,360,0.2025760000,361,-0.2462820000,362,0.0714022000,363,-0.2579990000,364,0.5201180000,365,-0.1757550000,366,-0.0785037000,367,0.6457280000,368,-0.0822821000,369,0.1620800000,370,0.4126160000,371,0.0606244000,372,0.2092470000,373,-0.1764420000,374,0.3135130000,375,-0.2430270000,376,-0.0005610850,377,0.3802850000,378,0.3296270000,379,0.0028834400,380,-0.2216340000,381,0.4340820000,382,-0.0594026000,383,0.0089627400,384,0.4257270000,385,0.2139730000,386,-0.1463420000,387,0.0379818000,388,-0.2900330000,389,0.2378070000,390,0.3709150000,391,-0.4849900000,392,0.2651080000,393,0.0482172000,394,-0.1787440000,395,-0.3157150000,396,0.3094650000,397,-0.0107704000,398,-0.0392008000,399,-0.1913670000,400,0.5001820000,401,-0.0266758000,402,-0.2167890000,403,-0.0173749000,404,0.6790860000 +202,0,-0.4777310000,407,-1.0000000000,355,-0.2923180000,356,-0.1632100000,357,-0.1103500000,358,-0.1840660000,359,-0.0125195000,360,0.6697340000,361,0.2179410000,362,0.4222550000,363,0.3200150000,364,-0.2222960000,365,0.0747675000,366,0.0789738000,367,0.0608457000,368,-0.1120150000,369,0.1489030000,370,0.3668600000,371,-1.3421600000,372,-0.0181305000,373,0.0451615000,374,-0.1252400000,375,-0.1798050000,376,-0.4181620000,377,0.0664959000,378,-0.3837210000,379,-0.0445345000,380,0.0738726000,381,0.1899620000,382,0.0560243000,383,0.1657250000,384,0.4143260000,385,-0.4199910000,386,-0.2332520000,387,0.2432760000,388,-0.2547400000,389,0.0608724000,390,-0.7730190000,391,-0.1738570000,392,0.0489275000,393,-0.2211620000,394,-0.2096690000,395,0.3798890000,396,-0.4416700000,397,0.2139470000,398,-0.3220970000,399,-0.0459821000,400,-0.0403334000,401,-0.0086453400,402,0.1176310000,403,0.0655656000,404,0.2011370000 +203,0,-1.2366800000,408,-1.0000000000,355,0.2084910000,356,-0.1357660000,357,-0.1213480000,358,0.2125850000,359,0.1827940000,360,0.1982400000,361,0.1745220000,362,-0.4187040000,363,0.1579610000,364,-0.1121910000,365,-0.1487160000,366,0.0043723100,367,-0.0906729000,368,-0.0170684000,369,0.1280960000,370,1.1367300000,371,0.3316030000,372,0.3046210000,373,-0.2551120000,374,0.3658030000,375,-0.0404843000,376,0.1085290000,377,0.1838710000,378,-0.0358132000,379,-0.0453783000,380,0.2613410000,381,0.1492150000,382,-0.2014280000,383,-0.1567460000,384,-0.4878130000,385,0.1632250000,386,-0.0789888000,387,0.2351760000,388,-0.3405510000,389,0.1019440000,390,-0.4679540000,391,-0.1196180000,392,-0.1151650000,393,0.2873680000,394,-0.0249782000,395,-0.1708310000,396,0.2455330000,397,-0.2837710000,398,-0.3438300000,399,-0.2209870000,400,0.4460220000,401,-0.3300580000,402,0.2635810000,403,-0.0909600000,404,-0.0159329000 +204,0,-0.6867370000,409,-1.0000000000,355,0.3929600000,356,-0.1237300000,357,0.1027140000,358,-0.3278870000,359,-0.0516683000,360,0.3663750000,361,-0.9625710000,362,0.4159090000,363,-0.1866620000,364,-0.0138102000,365,0.1659540000,366,-0.0897650000,367,-0.0472575000,368,0.1197250000,369,-0.1423750000,370,0.5990640000,371,-0.0710065000,372,0.0356555000,373,-0.0740021000,374,-0.4069160000,375,0.0173214000,376,0.0317526000,377,0.2125860000,378,0.0232728000,379,-0.0000919689,380,-0.1131910000,381,0.1317580000,382,0.2263790000,383,-0.3982700000,384,0.2750440000,385,0.2278890000,386,-0.1860450000,387,0.0277186000,388,0.0424778000,389,-0.2259570000,390,-0.1897950000,391,-0.3220630000,392,0.2431770000,393,-0.1081490000,394,0.0470157000,395,-0.0924128000,396,-0.1537450000,397,0.2227530000,398,0.0533810000,399,0.1061950000,400,-0.4308810000,401,-0.0600927000,402,-0.5379950000,403,0.0941603000,404,0.1788810000 +205,0,2.7475200000,410,-1.0000000000,355,-0.2456600000,356,0.5511770000,357,0.0161483000,358,0.1055580000,359,-0.1152090000,360,-0.7201600000,361,0.0429095000,362,-1.2754500000,363,-0.4513020000,364,0.4578990000,365,0.1048960000,366,0.9109240000,367,-0.0516169000,368,0.2208210000,369,-0.7051480000,370,-1.1158000000,371,-0.7516430000,372,0.5356060000,373,0.1232260000,374,-0.2547260000,375,0.3048500000,376,0.4996410000,377,-0.6430370000,378,-0.5567840000,379,-0.0232892000,380,0.3754120000,381,0.1567700000,382,0.2031900000,383,-0.0533967000,384,-1.7521300000,385,-0.2808230000,386,0.0275462000,387,-0.2506750000,388,-0.0769799000,389,0.5258800000,390,-0.1599020000,391,-0.1838030000,392,-1.6929200000,393,0.0203541000,394,0.4122540000,395,-0.4552520000,396,0.1248940000,397,-0.1173470000,398,-0.4628130000,399,0.0980830000,400,-0.5224540000,401,-0.3864060000,402,0.0727651000,403,-0.0276525000,404,-1.8362600000 +206,0,2.6226800000,411,-1.0000000000,355,-0.9240160000,356,-3.7612800000,357,0.3545300000,358,-0.4816200000,359,-0.0963033000,360,0.5356750000,361,-0.0051833900,362,0.3878150000,363,-0.7518400000,364,0.1843230000,365,0.6110980000,366,0.5902680000,367,0.5340820000,368,0.0500003000,369,-0.5497450000,370,-0.6720010000,371,-0.7570240000,372,0.4143760000,373,0.4870620000,374,0.5436480000,375,0.0895275000,376,-0.1671880000,377,0.1473090000,378,-0.3797770000,379,-0.0504365000,380,0.2140410000,381,0.8004500000,382,0.4218830000,383,0.5294970000,384,-2.1686100000,385,0.0339204000,386,1.1629100000,387,-0.2537010000,388,-0.4986200000,389,-0.0542202000,390,0.6330120000,391,-0.3005090000,392,0.8905860000,393,-0.2812970000,394,-0.1103760000,395,0.1192160000,396,0.0881380000,397,1.4507200000,398,0.5853470000,399,0.0807602000,400,1.4159300000,401,0.4973150000,402,-0.0830277000,403,-0.2069740000,404,1.2372700000 +207,0,0.4417850000,412,-1.0000000000,355,-1.5396500000,356,-0.0182390000,357,0.5412170000,358,0.9515600000,359,0.1605810000,360,-1.3489100000,361,-1.5686000000,362,1.3444800000,363,-0.1155800000,364,-0.8520920000,365,0.9589650000,366,-1.0266300000,367,0.6466380000,368,0.1176750000,369,0.1187640000,370,-2.0854800000,371,1.2434700000,372,-0.1201560000,373,-4.1955600000,374,-0.2764500000,375,-0.0008496250,376,0.1230620000,377,-0.4565130000,378,-1.4999900000,379,0.0458934000,380,-1.7997100000,381,0.1515510000,382,1.1763700000,383,0.1057370000,384,-0.3288950000,385,-0.8383700000,386,0.2675010000,387,0.6725890000,388,-0.2014680000,389,0.1825020000,390,0.4871890000,391,0.4540490000,392,-0.0160586000,393,-0.4006920000,394,0.5100240000,395,-0.8110650000,396,-0.2701980000,397,-0.5133360000,398,-1.8027400000,399,0.3805770000,400,-0.6058040000,401,0.8203120000,402,-1.2671300000,403,-1.7326400000,404,-0.7420960000 +208,0,-0.5052680000,413,-1.0000000000,355,-0.2854760000,356,0.2112560000,357,-0.0762946000,358,0.1978000000,359,0.3406960000,360,-0.2344630000,361,0.0861565000,362,-0.0744319000,363,0.1449390000,364,0.2653520000,365,0.0658665000,366,-0.0657703000,367,0.1703450000,368,0.0011218300,369,0.2343620000,370,-0.2144630000,371,0.0210859000,372,-0.1263280000,373,0.0134765000,374,-0.2847950000,375,0.1556520000,376,-0.2454420000,377,0.1122030000,378,0.1260960000,379,0.0130111000,380,0.1731260000,381,-0.2522060000,382,-0.1629140000,383,-0.4834160000,384,-0.0681323000,385,-0.1549980000,386,-0.1085150000,387,-0.5100870000,388,-0.0861860000,389,0.0360266000,390,-0.3068530000,391,-0.4259250000,392,-0.1677280000,393,0.1450390000,394,0.0412943000,395,0.3144000000,396,-0.1540130000,397,0.0793478000,398,0.2150050000,399,0.0466011000,400,-0.2309760000,401,0.0546175000,402,-0.0903264000,403,0.0369121000,404,-0.0362706000 +209,0,-0.2956330000,414,-1.0000000000,355,-0.4043710000,356,0.1967310000,357,-0.2328590000,358,-0.4097010000,359,-0.5279820000,360,0.0442579000,361,-0.6468780000,362,0.1363890000,363,0.1543760000,364,0.4989130000,365,-0.6466940000,366,-0.1699800000,367,0.7082650000,368,0.2505670000,369,-0.2538280000,370,1.3493500000,371,0.0396757000,372,0.4147880000,373,-0.5553160000,374,0.9236520000,375,-0.0489053000,376,0.6373800000,377,0.3889650000,378,-0.8810820000,379,-0.0291346000,380,0.6949780000,381,0.0383173000,382,0.0740904000,383,0.4512690000,384,-0.5320780000,385,-0.7040980000,386,0.0820199000,387,0.3094180000,388,0.0371642000,389,0.1945060000,390,-1.9272800000,391,-0.3427480000,392,0.1925760000,393,-0.3215130000,394,0.4514880000,395,-0.8952450000,396,0.2950170000,397,-0.5390810000,398,0.4979540000,399,-0.6821590000,400,0.6504050000,401,0.2825980000,402,0.1367110000,403,-0.3193970000,404,-0.0504364000 +210,0,-0.7068750000,415,-1.0000000000,355,0.1490570000,356,-0.2751960000,357,-0.0942953000,358,-0.1721370000,359,0.4146320000,360,0.2699100000,361,-0.3287020000,362,0.2247100000,363,-0.2032380000,364,-0.3607840000,365,0.0060386500,366,-0.0408246000,367,0.6994960000,368,-0.1590630000,369,0.2307730000,370,1.2836700000,371,0.8040510000,372,-0.0531707000,373,-0.0050140700,374,-0.0105739000,375,-0.0522462000,376,-0.1044740000,377,0.1618530000,378,-0.1630550000,379,-0.0014422200,380,-0.2816740000,381,-0.0427960000,382,0.0719036000,383,-0.2819410000,384,0.1606100000,385,0.1126790000,386,-0.0504136000,387,0.2867000000,388,-0.4644590000,389,0.0502910000,390,-0.8683380000,391,0.0318697000,392,0.2400580000,393,-0.3211310000,394,-0.0409520000,395,-0.0262920000,396,-0.0150200000,397,0.0953242000,398,-0.1125660000,399,0.0219707000,400,-0.1772020000,401,-0.0711014000,402,-0.0288024000,403,0.0670160000,404,-0.2915710000 +211,0,-1.2513500000,416,-1.0000000000,355,0.3647300000,356,-0.1665380000,357,0.0194244000,358,-0.1519620000,359,-0.1150650000,360,0.4704190000,361,0.3211700000,362,-0.5483110000,363,0.5650360000,364,-0.0567256000,365,-0.1601550000,366,-0.2775440000,367,0.0709311000,368,-0.1172420000,369,-0.3900990000,370,-0.5525040000,371,-0.2732890000,372,0.3639700000,373,-0.3373070000,374,-1.0414500000,375,0.1706670000,376,-0.1324950000,377,0.0232082000,378,-1.6706400000,379,0.0532829000,380,0.3009790000,381,-0.1102080000,382,0.1483110000,383,-0.2155280000,384,-0.0295422000,385,0.3797890000,386,-0.7735040000,387,0.1117690000,388,-0.0688866000,389,0.1116460000,390,-1.9901700000,391,-0.3103730000,392,0.4493590000,393,0.6853540000,394,0.2448770000,395,0.1139420000,396,-0.5650090000,397,-1.1638300000,398,0.5950720000,399,-0.1197130000,400,-0.1652610000,401,0.1932740000,402,0.0363978000,403,-0.1490500000,404,-0.1734840000 +212,0,-0.2476070000,417,-1.0000000000,355,0.1433370000,356,-0.3560660000,357,-0.1107030000,358,-0.0610017000,359,0.2139580000,360,1.0137900000,361,0.0846336000,362,-1.1103800000,363,0.2547170000,364,-0.1706750000,365,0.0080642000,366,-0.2270040000,367,1.2945000000,368,-0.0278869000,369,-0.5076230000,370,1.6436400000,371,-0.7310880000,372,0.7357810000,373,-1.0861000000,374,-0.7423110000,375,-0.6588090000,376,-0.5134370000,377,0.6720870000,378,0.6712650000,379,0.0034415800,380,-0.3649480000,381,0.3337320000,382,0.7429980000,383,0.2091360000,384,0.5771230000,385,-0.2994140000,386,0.2549350000,387,0.0167024000,388,-0.5278850000,389,0.3171950000,390,-0.1466350000,391,-0.2640350000,392,-0.0668705000,393,0.2626990000,394,-0.0080416200,395,-0.7164510000,396,-0.4800230000,397,1.4429100000,398,0.1878550000,399,-0.3407640000,400,0.4787390000,401,0.8425000000,402,0.7762480000,403,0.0533930000,404,-0.8172640000 +213,0,0.0322980000,418,-1.0000000000,355,0.0158999000,356,-0.0391709000,357,-0.0108573000,358,-0.0481206000,359,-0.0421769000,360,0.0352836000,361,0.0010851300,362,0.0203394000,363,-0.0381097000,364,-0.0311044000,365,-0.0499966000,366,0.0187605000,367,0.0306810000,368,-0.0301811000,369,-0.0451321000,370,-0.0404851000,371,-0.0222496000,372,0.0426759000,373,0.0003243520,374,0.0130848000,375,-0.0099550000,376,-0.0344632000,377,-0.0193130000,378,-0.0221783000,379,-0.0349803000,380,-0.0029273800,381,-0.0048026000,382,-0.0438547000,383,0.0488148000,384,0.0381192000,385,0.0334997000,386,0.0128630000,387,-0.0186848000,388,-0.0144162000,389,-0.0580490000,390,0.0473745000,391,-0.0217061000,392,0.0301951000,393,0.0192055000,394,-0.0140510000,395,0.0181428000,396,0.0418311000,397,-0.0124914000,398,-0.0104114000,399,-0.0485687000,400,0.0282961000,401,0.0186775000,402,0.0205851000,403,-0.0405195000,404,-0.0452260000 +214,0,0.2553090000,419,-1.0000000000,355,0.0365088000,356,0.0517837000,357,-0.2567650000,358,-0.5277720000,359,0.1894270000,360,0.0894270000,361,0.3855540000,362,-1.8542000000,363,0.7541750000,364,-0.3653640000,365,0.1125470000,366,0.0290149000,367,-0.3882650000,368,-0.2030300000,369,-0.1959750000,370,0.0641470000,371,-1.5322500000,372,0.4439000000,373,0.1811430000,374,-0.8100880000,375,0.3243090000,376,0.2536420000,377,0.7479170000,378,-0.4314940000,379,0.0473655000,380,0.6982870000,381,-0.1518760000,382,-0.2263140000,383,-0.0893421000,384,-1.1978300000,385,0.2810840000,386,0.4357210000,387,0.3028050000,388,-0.6858810000,389,0.0103984000,390,-0.0114170000,391,0.0377586000,392,-0.3593050000,393,0.5762110000,394,0.2019740000,395,-0.0519518000,396,0.1119010000,397,-0.5355210000,398,0.4004360000,399,-0.1893700000,400,0.7751440000,401,-0.3715440000,402,0.3572530000,403,-0.2345840000,404,-1.1209400000 +215,0,0.0311038000,420,-1.0000000000,355,-0.0455768000,356,-0.0473540000,357,-0.0443832000,358,-0.0321845000,359,-0.0009475530,360,-0.0254093000,361,0.0355742000,362,-0.0111464000,363,-0.0160118000,364,0.0055727500,365,-0.0442146000,366,-0.0647418000,367,0.0181847000,368,-0.0187761000,369,0.0069608600,370,-0.0515105000,371,0.0299590000,372,-0.0195781000,373,-0.0364136000,374,0.0196335000,375,-0.0240797000,376,-0.0085642500,377,-0.0309005000,378,-0.0594677000,379,-0.0186261000,380,-0.0247925000,381,0.0159906000,382,0.0303821000,383,-0.0389371000,384,-0.0337082000,385,0.0243633000,386,-0.0359409000,387,-0.0198791000,388,0.0074155600,389,-0.0281763000,390,-0.0360046000,391,0.0040990600,392,-0.0160109000,393,-0.0182254000,394,-0.0085323100,395,-0.0290213000,396,-0.0532313000,397,-0.0668669000,398,-0.0301596000,399,-0.0530687000,400,-0.0226950000,401,0.0209122000,402,-0.0447261000,403,-0.0513531000,404,0.0146293000 +216,0,0.0930378000,421,-1.0000000000,355,-0.2148430000,356,0.1273720000,357,0.0205146000,358,0.0173883000,359,0.1589480000,360,-0.0907018000,361,0.2586370000,362,-0.1068260000,363,0.0255657000,364,-0.0451931000,365,-0.0095967100,366,0.1750080000,367,-0.0489790000,368,0.0084943100,369,0.0945504000,370,0.3959820000,371,0.0839985000,372,-0.1308080000,373,0.0874716000,374,-0.4015670000,375,0.0710072000,376,-0.0252397000,377,-0.1025290000,378,-0.2639590000,379,0.0163761000,380,0.0560327000,381,-0.1286520000,382,-0.0913483000,383,-0.0212289000,384,-0.1634540000,385,-0.2191190000,386,0.3266380000,387,-0.2444670000,388,0.0920476000,389,0.2245880000,390,-0.2314200000,391,0.2742080000,392,-0.2985130000,393,-0.1014970000,394,-0.1287270000,395,0.1156640000,396,0.1387980000,397,0.0748266000,398,-0.1627510000,399,0.0834568000,400,0.0156287000,401,0.0531910000,402,0.0718057000,403,-0.0204059000,404,-0.2207510000 +217,0,0.0255746000,422,-1.0000000000,355,-0.0559845000,356,0.0152185000,357,-0.0447537000,358,-0.0254214000,359,0.0055030400,360,-0.0477723000,361,-0.0563901000,362,0.0057470000,363,-0.0270776000,364,-0.0495792000,365,-0.0406335000,366,0.0030309200,367,-0.0428361000,368,0.0221718000,369,-0.0191103000,370,-0.0110232000,371,0.0436582000,372,-0.0435234000,373,0.0147007000,374,0.0093601800,375,0.0255448000,376,-0.0070482900,377,0.0329200000,378,-0.0061163500,379,-0.0168039000,380,0.0375604000,381,-0.0217941000,382,-0.0294792000,383,0.0194352000,384,0.0277457000,385,0.0130491000,386,0.0128757000,387,-0.0452958000,388,-0.0539311000,389,-0.0045763300,390,-0.0423593000,391,-0.0142900000,392,-0.0422480000,393,-0.0289328000,394,0.0291132000,395,0.0199380000,396,-0.0209416000,397,-0.0701766000,398,0.0369116000,399,0.0206906000,400,0.0146085000,401,-0.0406899000,402,-0.0576706000,403,-0.0026309200,404,-0.0448800000 +218,0,-0.0132371000,423,-1.0000000000,355,0.3149920000,356,0.5767310000,357,-0.0665336000,358,-0.3310710000,359,-0.0026736600,360,0.3674760000,361,0.8059640000,362,-0.5474090000,363,0.2219150000,364,0.0370599000,365,-0.2310600000,366,0.0171286000,367,-1.4068400000,368,-0.1354580000,369,-0.2034670000,370,-2.3889400000,371,0.2529960000,372,-0.2636680000,373,-0.7809150000,374,0.1786030000,375,0.1197420000,376,-0.2464280000,377,0.8268740000,378,-0.6200920000,379,0.0295705000,380,0.4678390000,381,0.1316050000,382,0.1557950000,383,0.1395970000,384,-0.1717720000,385,-0.1049290000,386,-0.7640250000,387,0.2021890000,388,-0.4318890000,389,0.4623960000,390,-1.8869700000,391,-0.1058260000,392,-0.1516560000,393,0.3265270000,394,-0.1688470000,395,-0.3164930000,396,-0.0107094000,397,-0.5431520000,398,0.8133060000,399,-0.3311650000,400,0.6883320000,401,0.0779638000,402,0.2206430000,403,-0.0592155000,404,-0.1930170000 +219,0,1.5578300000,424,-1.0000000000,355,-0.9698690000,356,1.9056400000,357,-0.3884670000,358,0.4791890000,359,0.1309470000,360,0.1767780000,361,-1.2073000000,362,0.1441710000,363,-1.3488900000,364,0.7936480000,365,0.3489570000,366,0.1290160000,367,-0.6661170000,368,-0.6754110000,369,-0.0940883000,370,-1.3090500000,371,-2.7609600000,372,0.0149173000,373,0.4850160000,374,-1.7753800000,375,0.3065640000,376,-0.4034150000,377,-0.4391730000,378,-0.5008380000,379,-0.0232036000,380,-8.7667800000,381,0.0899342000,382,-0.0602742000,383,0.0461462000,384,-0.1554340000,385,-0.2160520000,386,-0.0971828000,387,0.2819760000,388,-1.0670000000,389,-0.1452130000,390,-0.4132710000,391,0.0130687000,392,-0.1436230000,393,-0.9565420000,394,0.0161169000,395,-0.0292150000,396,-1.1640600000,397,0.3903560000,398,-5.3650700000,399,0.0958950000,400,-0.8865400000,401,-0.4501340000,402,0.1394930000,403,0.1068220000,404,-0.1784560000 +220,0,-1.4906500000,425,-1.0000000000,355,-0.0051632100,356,-0.0518978000,357,-0.0340105000,358,0.0590162000,359,0.3191560000,360,-0.1518650000,361,-0.0389252000,362,-0.2760320000,363,0.0548842000,364,0.1352350000,365,0.0513355000,366,-0.0323530000,367,0.0716179000,368,0.0113214000,369,0.1215920000,370,0.1597430000,371,-0.0487556000,372,0.2550940000,373,-0.1541190000,374,-0.2805440000,375,0.0037315100,376,0.0579249000,377,0.1660430000,378,0.0284264000,379,-0.0135462000,380,0.1197130000,381,0.0670985000,382,-0.0870455000,383,0.1190470000,384,-0.5838410000,385,-0.0251860000,386,0.0177273000,387,-0.2003830000,388,-0.1927040000,389,-0.0125044000,390,-0.0570422000,391,-0.1650740000,392,-0.1947140000,393,-0.0956954000,394,-0.0612260000,395,-0.0484945000,396,0.0259430000,397,-0.1915620000,398,0.1536840000,399,-0.0535956000,400,0.2810900000,401,-0.0754367000,402,-0.0082070200,403,-0.0197059000,404,-0.0225761000 +221,0,-1.6610400000,426,-1.0000000000,355,0.7693310000,356,-1.2975900000,357,-0.1865870000,358,-0.3142940000,359,1.0745900000,360,3.3483200000,361,-2.8198400000,362,1.9970700000,363,-0.7713330000,364,-0.6503900000,365,-3.2182600000,366,-0.3572350000,367,-0.6867530000,368,-0.0457167000,369,-0.5109620000,370,3.9832900000,371,-3.1154100000,372,1.7663000000,373,0.1474410000,374,-5.3605800000,375,-2.5554000000,376,0.5815580000,377,-4.5813500000,378,-4.8071100000,379,0.0200223000,380,-1.0594400000,381,0.5893720000,382,-1.7099900000,383,0.8245310000,384,-1.3653700000,385,-0.9484540000,386,0.7760080000,387,-1.5147400000,388,0.3762840000,389,-0.4672600000,390,-2.8481200000,391,-0.1223970000,392,0.1097780000,393,-1.9408100000,394,0.3987100000,395,-2.6658600000,396,0.6203320000,397,0.6515630000,398,0.1578430000,399,0.2159180000,400,-0.4458920000,401,0.3767750000,402,-0.7371300000,403,-0.5944380000,404,-2.3066800000 +222,0,-0.3413610000,427,-1.0000000000,355,-0.4687850000,356,0.8429840000,357,0.4908420000,358,0.1747800000,359,0.2485330000,360,-0.0087016400,361,-0.4770260000,362,-0.5788070000,363,0.3022040000,364,-1.4836500000,365,-0.9755600000,366,-0.6663420000,367,-1.4074600000,368,2.3948200000,369,2.2979900000,370,-1.3047600000,371,-1.0604000000,372,-0.3249860000,373,-1.5563100000,374,-2.3321400000,375,0.0232240000,376,0.4353750000,377,-0.0215052000,378,-7.5913400000,379,0.0031568800,380,-2.2420800000,381,-1.6299800000,382,-1.8088800000,383,-2.4442700000,384,-2.7752500000,385,-2.7449700000,386,1.0087000000,387,-0.8983910000,388,0.8118510000,389,-1.4270600000,390,-4.8165300000,391,-0.2318730000,392,-0.7649540000,393,-1.2179700000,394,-0.5053500000,395,-4.3302900000,396,1.6216300000,397,0.3364070000,398,0.2214980000,399,-0.2580250000,400,0.0537389000,401,-2.4196600000,402,-0.3361480000,403,0.0111649000,404,-3.5786500000 +223,0,0.4716730000,428,-1.0000000000,355,-0.1108160000,356,-0.1122950000,357,0.0376845000,358,-1.5899700000,359,0.2449300000,360,0.2620380000,361,0.2208380000,362,0.4658830000,363,-0.1038720000,364,0.7623150000,365,0.0459493000,366,0.3124720000,367,0.1296090000,368,-0.1305830000,369,-0.0180964000,370,1.1912100000,371,0.0120343000,372,0.9124440000,373,0.0804062000,374,0.4289570000,375,-0.1261630000,376,-0.6075800000,377,0.0532106000,378,-0.6117290000,379,-0.0262293000,380,0.1211290000,381,-0.6836150000,382,0.0026160300,383,0.2375480000,384,0.4798640000,385,0.0441117000,386,0.1144860000,387,0.1319380000,388,-0.4621610000,389,0.5015390000,390,-0.3568020000,391,-0.1843710000,392,-0.0469303000,393,0.3341310000,394,-0.0435434000,395,0.1041460000,396,0.1951560000,397,0.4516830000,398,-0.3207820000,399,-0.0100091000,400,0.1006520000,401,0.0460074000,402,0.3565030000,403,0.0372020000,404,0.5488070000 +224,0,-0.9895770000,429,-1.0000000000,355,0.3686740000,356,-0.3909920000,357,-0.0860173000,358,-0.2242580000,359,0.1589070000,360,0.4914700000,361,0.0932561000,362,0.0756496000,363,0.1335410000,364,0.0760493000,365,-0.3573790000,366,0.0233413000,367,0.2201750000,368,0.2617910000,369,0.0903569000,370,-0.1424160000,371,-0.4241470000,372,0.0740111000,373,-0.0510274000,374,-0.3952260000,375,-0.1830780000,376,0.0958859000,377,0.0350599000,378,0.0095205100,379,0.0378681000,380,-0.1481770000,381,0.1850670000,382,-0.3746910000,383,-0.0691503000,384,-0.0493929000,385,0.0857276000,386,0.0572566000,387,0.3840820000,388,-0.3239310000,389,0.2699750000,390,-0.6493960000,391,-0.1249720000,392,0.0518960000,393,0.2013090000,394,-0.2414350000,395,-0.1255470000,396,0.1606440000,397,-0.1564610000,398,0.0757455000,399,-0.2453150000,400,0.3894260000,401,0.1575990000,402,0.1031200000,403,-0.0947856000,404,0.0899320000 +225,0,0.0495069000,430,-1.0000000000,355,-0.1657830000,356,0.3768530000,357,-0.0114988000,358,0.1715710000,359,0.0470740000,360,-0.6861240000,361,-0.4221960000,362,0.6966730000,363,-0.7971140000,364,0.2507070000,365,-0.1314440000,366,-0.2577060000,367,-0.0777031000,368,0.3815400000,369,0.2739900000,370,0.9412820000,371,0.0782574000,372,-0.1256120000,373,0.0742578000,374,0.7339970000,375,0.0624718000,376,0.1369320000,377,-0.0090731500,378,-1.4330100000,379,-0.0334256000,380,-2.4667700000,381,0.2514230000,382,-0.2531090000,383,0.2672220000,384,0.5463620000,385,0.2611570000,386,0.3691220000,387,-0.0527244000,388,-0.1496510000,389,-0.2882520000,390,-1.1917400000,391,0.1157400000,392,-0.4838800000,393,-1.2901600000,394,0.0632302000,395,0.6410200000,396,-0.3775350000,397,-0.4996760000,398,-0.5885540000,399,-0.4519200000,400,-1.7355000000,401,-0.1210990000,402,-0.0492624000,403,0.1802730000,404,-0.0470504000 +226,0,-1.6064900000,431,-1.0000000000,355,0.3169740000,356,-0.7802360000,357,-0.1303790000,358,0.7281870000,359,0.2329900000,360,0.4261380000,361,-0.1984530000,362,0.1835000000,363,-0.3684420000,364,0.0244491000,365,-0.2101790000,366,0.2436010000,367,0.3870400000,368,0.0136655000,369,-0.0243655000,370,1.0031000000,371,0.2866260000,372,0.1284050000,373,-0.2851310000,374,0.8738470000,375,0.0994056000,376,0.3419120000,377,0.1828080000,378,-0.1045950000,379,0.0051590700,380,-0.1070930000,381,0.3879280000,382,0.3187310000,383,0.0081289100,384,0.8191990000,385,-0.0168572000,386,-0.0114440000,387,-0.0583140000,388,0.0296728000,389,-0.1020470000,390,-0.4122030000,391,-0.4173290000,392,0.0835685000,393,-0.3626650000,394,0.1046450000,395,-0.1840000000,396,-0.1256130000,397,0.3106790000,398,-0.2199920000,399,-0.1756600000,400,-0.6977630000,401,0.0040287100,402,-0.1757490000,403,-0.0123221000,404,0.0851038000 +227,0,-0.1092280000,432,-1.0000000000,355,0.3332530000,356,-0.5416520000,357,0.1570710000,358,0.4784430000,359,-0.5002600000,360,1.5124500000,361,0.7140960000,362,-0.9093230000,363,1.6113800000,364,0.3386630000,365,-1.1748800000,366,-1.1426700000,367,1.4497600000,368,-0.7877070000,369,-0.1224350000,370,-0.4052770000,371,-0.7098980000,372,0.5505800000,373,0.0224673000,374,-1.5871800000,375,0.0823621000,376,-0.6975660000,377,0.3756400000,378,0.1396780000,379,0.0057243600,380,-0.1603740000,381,0.6212570000,382,0.0314960000,383,-0.1933780000,384,-0.6411670000,385,-2.6883500000,386,-1.7145100000,387,0.6217500000,388,0.0310617000,389,0.8625310000,390,0.3976490000,391,-0.9731170000,392,0.2460350000,393,1.3280700000,394,-0.5532020000,395,-0.0593237000,396,-0.8528000000,397,0.0835301000,398,0.7737280000,399,-0.9523090000,400,1.1087000000,401,0.6977100000,402,-1.5785400000,403,-1.2596300000,404,-0.4288990000 +228,0,-1.5901000000,433,-1.0000000000,355,-0.0965522000,356,0.1069200000,357,-0.1051310000,358,0.7193390000,359,-0.0471951000,360,0.3095840000,361,0.6552240000,362,0.0766002000,363,0.0924404000,364,0.0554021000,365,-0.2872770000,366,0.1034280000,367,1.0796300000,368,0.0120723000,369,0.2316690000,370,0.7790650000,371,0.1471700000,372,-0.1208150000,373,-0.2304260000,374,1.2336300000,375,-0.4113300000,376,-0.0736013000,377,-0.5342460000,378,-0.2297500000,379,-0.0161799000,380,-0.6901530000,381,-0.0147953000,382,0.4192330000,383,0.1200620000,384,0.0671697000,385,-0.3679000000,386,-0.1461900000,387,0.9315130000,388,-0.1804920000,389,-0.0329408000,390,-0.1780350000,391,-0.7355770000,392,0.4184550000,393,-0.0613083000,394,0.4586330000,395,-0.2610990000,396,-0.3084300000,397,0.0065458700,398,0.5787100000,399,-0.2193410000,400,-0.1568290000,401,0.6104850000,402,0.2623200000,403,-0.2809040000,404,-0.1142810000 +229,0,1.5285000000,434,-1.0000000000,355,0.5962000000,356,0.4778090000,357,-1.0253100000,358,-0.0284687000,359,-0.1605380000,360,0.9876180000,361,0.6343940000,362,0.1625930000,363,0.1759960000,364,0.2071720000,365,-0.3948580000,366,-0.0241352000,367,0.2133580000,368,-0.4046230000,369,-0.4347110000,370,0.2923160000,371,0.4086170000,372,0.2751470000,373,-0.1216650000,374,0.5467230000,375,0.1674080000,376,-1.5650300000,377,0.2360100000,378,0.1258190000,379,-0.0178660000,380,-0.0326233000,381,0.3590440000,382,0.3659960000,383,-0.4732830000,384,-1.6273100000,385,-1.8202100000,386,1.0517900000,387,0.7116440000,388,-4.6636500000,389,-0.1241150000,390,-0.8256120000,391,-0.6332200000,392,0.1352640000,393,0.4387280000,394,0.2756010000,395,-0.0699498000,396,-0.8319570000,397,0.4554800000,398,-0.9274100000,399,-1.9479300000,400,0.3807150000,401,-0.0107676000,402,0.0043650700,403,-0.4905950000,404,0.7985610000 +230,0,1.8598700000,435,-1.0000000000,355,0.5025790000,356,0.2664520000,357,-0.0772797000,358,0.3378290000,359,-0.3321250000,360,-1.1670500000,361,0.0362711000,362,-0.7363240000,363,-0.0315748000,364,0.3291090000,365,0.0734835000,366,0.1941460000,367,0.3213220000,368,-0.1692280000,369,-0.1732100000,370,0.3998980000,371,0.2263520000,372,0.6986290000,373,-0.4447770000,374,-0.1766200000,375,-0.1435690000,376,-0.4043450000,377,0.2108980000,378,-2.8823600000,379,0.0311106000,380,-1.1171900000,381,-0.2517020000,382,0.2967200000,383,-0.0386034000,384,-0.9659090000,385,0.3289730000,386,-0.0006119870,387,0.2589300000,388,-0.5336860000,389,0.3460860000,390,0.2092870000,391,-0.0597732000,392,0.0994157000,393,-0.1042740000,394,0.0222289000,395,0.0057219300,396,-0.0036379300,397,0.4089350000,398,-0.1560720000,399,-0.0763420000,400,-0.0882149000,401,0.1863120000,402,0.1953430000,403,-0.0355764000,404,-0.1509800000 +231,0,-0.3735790000,436,-1.0000000000,355,0.0744713000,356,-0.2168970000,357,-0.1237130000,358,0.8235430000,359,0.2818940000,360,0.0191721000,361,0.1450060000,362,0.2222490000,363,0.2187670000,364,0.3469440000,365,0.1924160000,366,-0.0975287000,367,0.9554170000,368,-0.0244767000,369,-0.1472460000,370,1.4215000000,371,-0.1626710000,372,-0.3038650000,373,-0.0238632000,374,0.8859440000,375,-0.5294130000,376,-0.0567724000,377,-0.2114740000,378,0.2168220000,379,-0.0460850000,380,0.3386550000,381,-0.4764380000,382,0.0581924000,383,1.1816000000,384,0.8759480000,385,0.2897980000,386,-0.1622530000,387,0.5098790000,388,-0.7838280000,389,0.2053470000,390,1.0616500000,391,0.0240881000,392,0.7801250000,393,-0.1619840000,394,0.1703040000,395,0.3687980000,396,0.1140820000,397,0.5128550000,398,-0.0751215000,399,-0.1165320000,400,0.2029570000,401,0.3520450000,402,0.1008590000,403,0.0784370000,404,-0.6191960000 +232,0,-0.4891850000,437,-1.0000000000,355,-0.3355480000,356,0.3139160000,357,-0.3058620000,358,0.4593180000,359,-0.2961730000,360,-0.4886250000,361,0.5274760000,362,1.1064500000,363,0.4292090000,364,-0.1593810000,365,-0.5594180000,366,-0.2977160000,367,0.0765329000,368,0.0963344000,369,0.0528269000,370,0.0920894000,371,0.3061310000,372,0.1237690000,373,-0.5585490000,374,1.5588900000,375,-0.1270180000,376,-0.4176750000,377,0.4946840000,378,0.2502740000,379,-0.0103263000,380,0.0934376000,381,-0.0607551000,382,0.6185830000,383,-0.0331033000,384,1.3447200000,385,-0.4519720000,386,-0.4058050000,387,-0.1560000000,388,0.2360760000,389,-0.6780750000,390,0.2735640000,391,-0.4918970000,392,-0.0963977000,393,-0.1072970000,394,-0.4179260000,395,0.0060861400,396,-0.5208380000,397,0.5702660000,398,0.2118770000,399,-7.2105800000,400,0.5017040000,401,-0.4057400000,402,0.0611516000,403,0.1575070000,404,0.2822320000 +233,0,-1.9168500000,438,-1.0000000000,355,-1.5897700000,356,-0.1995750000,357,-0.2578620000,358,0.3358640000,359,0.0041107600,360,0.3879610000,361,-1.4350500000,362,-0.9976950000,363,-0.5323530000,364,-0.2623820000,365,-0.2208840000,366,-0.0391583000,367,0.3681780000,368,0.5324090000,369,-0.0890814000,370,2.0454100000,371,0.5841920000,372,0.2522400000,373,-0.0233509000,374,1.2967000000,375,0.5914040000,376,-0.0816247000,377,0.4688960000,378,0.1667930000,379,-0.0265648000,380,-2.0552600000,381,-0.4539230000,382,0.8092670000,383,-0.3352220000,384,-1.6324000000,385,0.4466570000,386,-0.5087300000,387,0.3642650000,388,-0.2070890000,389,-1.2907300000,390,-1.6153100000,391,-0.4170350000,392,-1.8660100000,393,-0.4041210000,394,-0.0535540000,395,-0.3954100000,396,-0.3279520000,397,0.5145370000,398,-0.0903636000,399,-1.0743000000,400,0.0787787000,401,-2.4629900000,402,-3.7292600000,403,0.0359973000,404,0.3902760000 +234,0,-1.4753800000,439,-1.0000000000,355,0.5275170000,356,0.6029530000,357,-0.3281130000,358,-0.3003610000,359,0.0708053000,360,1.2978000000,361,0.4858440000,362,-0.4553270000,363,0.1066470000,364,-0.2365880000,365,-0.9847050000,366,-0.0700691000,367,-1.3281000000,368,0.2467060000,369,-0.4691710000,370,0.6818010000,371,0.0705448000,372,-0.5844640000,373,0.0500256000,374,-0.9016460000,375,-0.5111450000,376,0.1821080000,377,0.1545590000,378,-0.3524250000,379,-0.0133606000,380,-0.0193540000,381,-0.4966510000,382,-0.2836930000,383,0.3701980000,384,0.3574020000,385,-0.1667080000,386,0.2349330000,387,0.0902970000,388,-0.0655680000,389,0.3202310000,390,-0.4561340000,391,-0.3888790000,392,0.4606140000,393,0.6991170000,394,0.0318888000,395,-0.1175230000,396,0.0463310000,397,-0.0947217000,398,0.2671220000,399,-0.5318220000,400,0.3545960000,401,-0.1440520000,402,0.0604850000,403,-0.3361930000,404,-0.6249630000 +235,0,0.1451780000,440,-1.0000000000,355,-0.1550930000,356,0.0752838000,357,-0.0477856000,358,-0.3363590000,359,-0.3123400000,360,0.1644370000,361,0.0581430000,362,0.0857759000,363,-0.1718590000,364,0.7461310000,365,0.0202074000,366,0.1390980000,367,0.1023600000,368,0.0315619000,369,0.1457260000,370,0.1296580000,371,0.0247035000,372,-0.1125730000,373,0.0339266000,374,0.1820990000,375,0.0614421000,376,-0.3011100000,377,0.0590641000,378,0.0099381400,379,-0.0342600000,380,-0.1190280000,381,0.1483550000,382,0.0239907000,383,-0.2457610000,384,-0.1227770000,385,0.0089653700,386,0.0738613000,387,0.0604362000,388,-0.1109040000,389,0.2036000000,390,-0.1745510000,391,-0.3258540000,392,0.0484906000,393,0.0854634000,394,-0.0104269000,395,0.0866092000,396,0.0053513200,397,0.2230310000,398,-0.1553280000,399,0.0165883000,400,0.0636605000,401,0.0408916000,402,0.0354514000,403,0.0300790000,404,0.4593120000 +236,0,1.4023400000,441,-1.0000000000,355,0.1487810000,356,-0.3307990000,357,-0.2719060000,358,0.7047200000,359,0.6879660000,360,-1.0246800000,361,-0.5200070000,362,0.3201540000,363,0.5810140000,364,-0.7115530000,365,-0.3437010000,366,-0.1396980000,367,0.9267300000,368,0.2064920000,369,-0.5432000000,370,0.0906027000,371,-0.4875660000,372,-0.3039240000,373,-0.3593890000,374,1.0903500000,375,-0.6892770000,376,0.0837162000,377,0.1498180000,378,-0.9297100000,379,-0.0198655000,380,0.1341510000,381,0.0764312000,382,0.0955826000,383,0.4719230000,384,1.2104800000,385,0.1898980000,386,-0.2180340000,387,0.1576100000,388,-0.3440020000,389,-0.2209000000,390,-1.5742500000,391,0.6543370000,392,-0.2710210000,393,-0.3462340000,394,-0.0444577000,395,-0.9365570000,396,0.0841015000,397,0.0344867000,398,0.2209480000,399,-0.2930570000,400,-0.2706710000,401,0.0083970400,402,0.1394950000,403,-0.0558184000,404,0.2189560000 +237,0,0.2805410000,442,-1.0000000000,355,0.7397100000,356,-0.2183550000,357,-0.5850530000,358,0.3114890000,359,0.1528170000,360,-0.4062240000,361,-0.4035330000,362,-0.2007300000,363,0.0549040000,364,-0.0783793000,365,-0.1759410000,366,0.1978650000,367,0.5302640000,368,0.5636620000,369,0.7179350000,370,1.9096000000,371,0.7308920000,372,0.8581480000,373,-0.6722210000,374,0.7032080000,375,0.2461190000,376,0.6902490000,377,0.0785768000,378,0.1796910000,379,0.0332863000,380,-0.1362000000,381,0.5002620000,382,0.1512740000,383,-0.8155930000,384,-0.1799350000,385,-0.0623132000,386,0.0923102000,387,0.3635560000,388,-0.8797780000,389,0.6397950000,390,0.6444690000,391,-0.6841840000,392,0.2013050000,393,0.0717695000,394,-0.2830170000,395,-0.3900480000,396,0.0749356000,397,-1.6242000000,398,-0.3349090000,399,-0.2732600000,400,0.5902510000,401,0.0070071000,402,0.3704720000,403,-0.0642924000,404,0.2382930000 +238,0,-1.2049100000,443,-1.0000000000,355,0.4466410000,356,-0.4135270000,357,-0.3246200000,358,-0.2654680000,359,0.0807389000,360,0.2760440000,361,0.4673740000,362,-0.0461801000,363,0.4294600000,364,-0.0421806000,365,0.1955590000,366,-0.4778260000,367,-0.0565467000,368,-0.1113700000,369,0.0559595000,370,-0.8963360000,371,0.3309910000,372,-0.1853820000,373,-0.0595539000,374,-0.8708350000,375,-0.1217270000,376,-0.0262612000,377,0.4170030000,378,-0.5593540000,379,0.0122978000,380,1.2448100000,381,0.9362570000,382,-0.8090620000,383,0.9278490000,384,0.5710970000,385,0.0670443000,386,0.7231130000,387,0.2686090000,388,-0.4477420000,389,0.9022760000,390,-2.5875300000,391,-0.4212630000,392,-0.7057920000,393,-0.3728750000,394,-0.0407039000,395,0.4152630000,396,0.1778700000,397,0.3831670000,398,0.3502560000,399,-0.3422530000,400,0.5375990000,401,-0.9768560000,402,0.7972550000,403,-0.2169880000,404,-1.2524100000 +239,0,-0.6113140000,444,-1.0000000000,355,0.1841560000,356,0.1283120000,357,-0.0725048000,358,-0.2103180000,359,-0.0954042000,360,0.3605400000,361,0.1476720000,362,0.1536680000,363,0.0764004000,364,0.0387353000,365,-0.0374524000,366,-0.4985660000,367,-0.3462760000,368,0.0332662000,369,-0.1804640000,370,0.0815860000,371,-2.9105700000,372,-0.4039340000,373,0.1436750000,374,-0.1417590000,375,0.3737540000,376,-0.9618820000,377,0.2802170000,378,-0.5795470000,379,0.0430284000,380,-0.3401460000,381,-0.1063640000,382,0.0072165900,383,-0.3916510000,384,0.3000450000,385,-0.1502930000,386,0.0233881000,387,0.3624330000,388,0.0682949000,389,-0.5051910000,390,-0.5870640000,391,-0.1273560000,392,-0.2100220000,393,-0.3263150000,394,0.0361243000,395,0.7519740000,396,-0.7073000000,397,-1.0234900000,398,-0.0701956000,399,-0.0703208000,400,-0.3760460000,401,-0.0575910000,402,-0.1239040000,403,0.0272722000,404,-0.1839210000 +240,0,1.6454000000,445,-1.0000000000,355,0.5220160000,356,-0.9788560000,357,-0.0784858000,358,1.0751700000,359,-0.1597640000,360,-0.3140720000,361,-1.5621300000,362,-0.0211806000,363,0.6099930000,364,0.2677090000,365,-0.3416250000,366,-0.4258340000,367,-1.2988700000,368,-1.0499500000,369,-0.6041030000,370,0.1449220000,371,0.5500230000,372,1.0280400000,373,-1.0002300000,374,-1.2674600000,375,-0.0608687000,376,-1.4473000000,377,0.5871900000,378,-2.9881900000,379,-0.0221416000,380,0.2390540000,381,0.9613940000,382,0.0343369000,383,-0.3020280000,384,1.0242100000,385,-0.3081510000,386,-0.1047710000,387,0.8628790000,388,-0.3856350000,389,0.6304480000,390,0.3301700000,391,0.4091580000,392,-0.4355260000,393,-0.0665312000,394,0.0365167000,395,-0.1804810000,396,-0.7135000000,397,-1.4577400000,398,0.9481430000,399,-0.2261040000,400,-0.0372352000,401,0.3698180000,402,-1.8420400000,403,-0.4940340000,404,0.2053110000 +241,0,0.8829660000,446,-1.0000000000,355,0.4447250000,356,-0.9725890000,357,0.0372408000,358,-0.2871640000,359,-0.0971890000,360,0.5574700000,361,0.8131070000,362,-0.8287890000,363,0.3404760000,364,0.0587546000,365,-0.0281453000,366,-0.5445350000,367,0.2809600000,368,-0.0146972000,369,0.2398420000,370,1.1643400000,371,-0.3527050000,372,0.4552620000,373,-0.4606080000,374,-0.4732320000,375,-0.7018260000,376,-0.2518970000,377,0.3774660000,378,-0.6156930000,379,0.0075110400,380,0.5051340000,381,0.2882340000,382,-0.0175627000,383,0.1789370000,384,-1.1499400000,385,0.0343772000,386,-0.0296733000,387,0.3783160000,388,-0.3936250000,389,0.7012630000,390,-0.4801910000,391,0.0126928000,392,-0.1766600000,393,0.8884750000,394,0.0564671000,395,-0.0495774000,396,-0.0104336000,397,0.1857680000,398,0.3008300000,399,-0.2151450000,400,0.7914530000,401,-0.1311800000,402,0.3344580000,403,0.0442010000,404,-0.6388210000 +242,0,-0.0388865000,447,-1.0000000000,355,-0.5894350000,356,0.1222460000,357,0.1921010000,358,-0.4930260000,359,0.2328630000,360,-0.0348037000,361,-0.3687780000,362,0.3221680000,363,-0.6018420000,364,0.1107190000,365,0.2929700000,366,-0.2594780000,367,-0.4544190000,368,-0.3029350000,369,-0.0275826000,370,-0.1934550000,371,0.1268650000,372,0.2881800000,373,0.0176080000,374,0.2145980000,375,0.0859088000,376,-0.1392180000,377,0.2194890000,378,-1.9922300000,379,0.0195765000,380,-0.1095430000,381,-0.2191430000,382,0.0043229500,383,0.2344410000,384,0.1964460000,385,-0.1115550000,386,0.0600771000,387,-0.1514270000,388,-0.2158460000,389,-0.9615850000,390,1.1016000000,391,0.4817950000,392,-0.6320470000,393,-0.3758720000,394,0.2691100000,395,0.4041550000,396,-0.0589660000,397,0.1248440000,398,0.1495120000,399,-0.0342329000,400,-0.0505540000,401,0.0455466000,402,-0.1692600000,403,-0.0090376100,404,0.2064730000 +243,0,0.3158100000,448,-1.0000000000,355,-0.4068590000,356,0.7891740000,357,-0.1737920000,358,0.7611580000,359,-0.2949230000,360,-0.4089370000,361,-0.5763750000,362,-0.3276980000,363,-0.4403020000,364,0.1854060000,365,-0.0765596000,366,-0.2105660000,367,0.3785770000,368,-0.1046330000,369,0.0178041000,370,-0.8922390000,371,0.2982250000,372,0.0280304000,373,0.1850470000,374,0.2171110000,375,-0.1689590000,376,-0.1996250000,377,-0.2674260000,378,-0.2418960000,379,0.0007405480,380,-0.4021260000,381,0.2684860000,382,0.2813270000,383,-0.7239620000,384,0.1017240000,385,0.1446390000,386,0.2209480000,387,0.3128050000,388,-0.4485910000,389,0.0204325000,390,0.0240887000,391,0.1726770000,392,-0.1195170000,393,0.2889110000,394,-0.1970870000,395,0.1820660000,396,0.2986220000,397,0.1101660000,398,0.6277060000,399,0.0767972000,400,-0.1914750000,401,-0.3598570000,402,-0.0941574000,403,-0.0749107000,404,0.3964940000 +244,0,1.0611400000,449,-1.0000000000,355,0.3635630000,356,0.3846290000,357,-0.0600320000,358,0.0827620000,359,0.2194280000,360,0.3970250000,361,-0.0806451000,362,-0.0109191000,363,-0.0915960000,364,-0.0310985000,365,-0.0339967000,366,-0.1408780000,367,-1.6034100000,368,-0.1372550000,369,0.2503790000,370,-0.2738070000,371,-0.2405080000,372,0.1565840000,373,0.0065885600,374,-0.1270020000,375,-0.0333541000,376,-0.1848230000,377,0.0914953000,378,-1.6240200000,379,-0.0031738300,380,-0.1328590000,381,-0.0130440000,382,0.1928540000,383,0.3000900000,384,0.0018986800,385,-0.2978660000,386,0.0279329000,387,0.0462376000,388,-0.1820170000,389,0.1501040000,390,-0.4973350000,391,-0.2362900000,392,-0.0636910000,393,0.2876140000,394,0.0516349000,395,-0.0790164000,396,0.0251702000,397,0.0929397000,398,0.1567430000,399,-0.0929784000,400,0.2995730000,401,0.1465300000,402,-0.2199770000,403,0.0082690200,404,0.0217830000 +245,0,-0.8701230000,450,-1.0000000000,355,0.0121417000,356,0.0183067000,357,0.0142790000,358,-0.0884079000,359,0.0197898000,360,0.1603160000,361,-0.0295197000,362,0.3949780000,363,-0.7712970000,364,0.0404134000,365,0.1813320000,366,-0.9040180000,367,0.3075990000,368,0.5992570000,369,-0.1275770000,370,-0.8356430000,371,-0.9943340000,372,0.3599440000,373,0.1647760000,374,-0.3254010000,375,0.0330980000,376,-0.0926298000,377,-0.0813858000,378,-0.4148550000,379,-0.0259284000,380,-0.4602070000,381,0.0852966000,382,-0.2493070000,383,-0.1708050000,384,-0.8951350000,385,0.1423690000,386,0.4775170000,387,0.0744392000,388,0.0390462000,389,-0.3391180000,390,-6.3056800000,391,-0.0572920000,392,0.0526055000,393,-0.6202160000,394,-0.1720550000,395,0.9543450000,396,-0.0919782000,397,-0.4647880000,398,-0.8457370000,399,-0.6220450000,400,-0.6168110000,401,0.2771280000,402,0.6200270000,403,0.0895401000,404,0.5491330000 +246,0,0.0486400000,451,-1.0000000000,355,0.4207080000,356,-0.0502089000,357,-0.4052850000,358,0.5639200000,359,0.5900260000,360,-0.4881730000,361,0.2010150000,362,-0.9014210000,363,-0.3653160000,364,-0.8518940000,365,0.1206650000,366,-0.4651410000,367,-0.0347752000,368,-0.1231670000,369,0.2148940000,370,-4.4658300000,371,1.5873100000,372,-0.0860481000,373,0.0809448000,374,-1.4062200000,375,0.2354220000,376,-0.2875500000,377,-0.4047210000,378,-14.5255000000,379,-0.0150174000,380,0.0730389000,381,-0.5547190000,382,0.2003950000,383,-0.0056561900,384,-0.8572860000,385,0.1320410000,386,-1.0936200000,387,-0.3056800000,388,-1.0360200000,389,-0.4277980000,390,-2.0213800000,391,0.6809460000,392,-0.1529420000,393,0.4716530000,394,0.3992620000,395,-0.4719960000,396,-1.8948200000,397,0.0869019000,398,0.3834220000,399,0.0238823000,400,-0.1088520000,401,-0.3726930000,402,0.2792830000,403,-0.0860936000,404,-0.5769160000 +247,0,-0.6608870000,452,-1.0000000000,355,0.2539300000,356,-0.0342615000,357,-0.0653002000,358,-0.6221320000,359,0.1613550000,360,0.3308300000,361,0.0345244000,362,0.3554910000,363,0.0092630600,364,0.4334090000,365,-0.0487003000,366,0.0768158000,367,-0.0232722000,368,0.3224290000,369,0.0240880000,370,1.2396100000,371,-0.0630995000,372,0.0863070000,373,-0.1012250000,374,0.1258840000,375,0.1343620000,376,-0.0345365000,377,0.0157476000,378,-0.0714119000,379,0.0024974400,380,0.1139920000,381,0.1714090000,382,-0.0352160000,383,-0.4186260000,384,-0.3093660000,385,0.0684384000,386,-0.0324147000,387,0.0687231000,388,0.0013481100,389,0.1703710000,390,0.2816640000,391,-0.4545850000,392,0.3131190000,393,0.1998570000,394,0.0402221000,395,0.1321250000,396,-0.1214940000,397,0.0389482000,398,-0.2545350000,399,-0.0491054000,400,-0.1371240000,401,-0.0998032000,402,-0.0584424000,403,0.0076564700,404,0.1350620000 +248,0,0.2757940000,453,-1.0000000000,355,0.6640180000,356,0.6381990000,357,-0.4344690000,358,0.3758380000,359,0.2611590000,360,-0.7891980000,361,0.3590820000,362,-0.0181626000,363,-0.3510680000,364,-0.2875780000,365,0.2345180000,366,0.3692960000,367,-0.7203210000,368,0.2470460000,369,-0.1412090000,370,-1.8062200000,371,-0.6312310000,372,0.0752731000,373,-0.0297197000,374,-1.4117900000,375,0.0641283000,376,-0.1679490000,377,0.2279220000,378,-0.4692290000,379,-0.0265459000,380,0.2425010000,381,-0.8564250000,382,-0.3565670000,383,-0.0446680000,384,-0.7139640000,385,-0.2602570000,386,0.3247870000,387,-0.9543170000,388,-0.2896950000,389,-0.0382764000,390,-0.6299640000,391,0.0476723000,392,-0.9378770000,393,-0.3132490000,394,-0.6762210000,395,-0.2330990000,396,-0.2873510000,397,-0.1252500000,398,-6.1094100000,399,-0.0438238000,400,0.0271944000,401,1.1475600000,402,-0.0529417000,403,0.0046246200,404,-0.7650250000 +249,0,0.2108920000,454,-1.0000000000,355,-0.4967370000,356,0.1054290000,357,-0.1963910000,358,0.9747980000,359,-0.3987000000,360,-0.7383450000,361,-0.8774840000,362,-0.9562700000,363,1.1337100000,364,0.3468980000,365,-1.3150000000,366,-1.3376600000,367,0.6870780000,368,-0.2978690000,369,0.1692320000,370,3.0718100000,371,-3.3454600000,372,1.0924600000,373,-1.3820600000,374,-1.1972200000,375,0.4582900000,376,0.2324170000,377,0.3180570000,378,-0.6060420000,379,0.0330832000,380,0.4464930000,381,0.2022930000,382,-2.7880800000,383,-1.9978300000,384,-0.5208260000,385,0.2223250000,386,1.8029100000,387,0.2193100000,388,0.1116900000,389,0.6747950000,390,-0.5051440000,391,-0.6423500000,392,-0.1389540000,393,-0.5041760000,394,-0.7650290000,395,0.9397640000,396,0.8548170000,397,1.4559300000,398,0.2858150000,399,0.1609860000,400,-0.1044220000,401,-0.0707007000,402,0.2998500000,403,-0.5155340000,404,-0.5421780000 +250,0,-0.0584027000,505,-1.0000000000,455,0.0228096000,456,-0.0960569000,457,0.2204280000,458,0.1793860000,459,0.1150520000,460,0.0421017000,461,0.0394347000,462,-0.0268269000,463,0.1384630000,464,0.0559454000,465,0.1310840000,466,0.0687201000,467,0.0459285000,468,-0.0297286000,469,-0.0861108000,470,0.0341982000,471,-0.1414770000,472,0.0191006000,473,-0.0570288000,474,-0.0522554000,475,0.1193530000,476,-0.0131058000,477,-0.0434001000,478,0.0195415000,479,0.0403205000,480,-0.1015560000,481,0.0127983000,482,0.0044262000,483,0.1174490000,484,0.3015940000,485,-0.1046590000,486,0.0309550000,487,0.0508255000,488,-0.0446679000,489,-0.0109601000,490,-0.1342930000,491,-0.0994520000,492,0.1941840000,493,-0.0026414100,494,-0.0045612900,495,0.0008921540,496,-0.1191800000,497,-0.0515294000,498,0.1464160000,499,0.7596380000,500,0.0856740000,501,0.0193499000,502,0.0843267000,503,-0.0226938000,504,-0.0868061000 +251,0,0.0094074700,506,-1.0000000000,455,0.0421558000,456,-0.1197170000,457,-0.0069083100,458,-0.0961923000,459,0.1261160000,460,0.0175945000,461,-0.0075363000,462,-0.0051314400,463,0.0860834000,464,0.0002822110,465,0.0335479000,466,-0.0413862000,467,-0.1246930000,468,0.0163174000,469,-0.0232131000,470,0.0253453000,471,-0.0056838900,472,0.0435378000,473,0.0102200000,474,-0.0144054000,475,0.1343090000,476,-0.0034550700,477,-0.0012557400,478,0.0216150000,479,0.0446529000,480,-0.0213045000,481,0.1298550000,482,-0.0352169000,483,0.0946134000,484,-1.3746600000,485,-0.1196810000,486,-0.0090570900,487,-0.1075670000,488,-0.0635917000,489,-0.0220851000,490,-0.1602480000,491,-0.0157514000,492,0.1066470000,493,-0.0148038000,494,0.1325120000,495,0.0225804000,496,-0.0109401000,497,0.0312410000,498,0.1420490000,499,-0.0439466000,500,0.0701014000,501,-0.0937998000,502,0.1037200000,503,-0.0483041000,504,-0.0447452000 +252,0,2.1214600000,507,-1.0000000000,455,-0.0133339000,456,-0.1518160000,457,-0.9585280000,458,0.1825190000,459,-0.1664850000,460,0.0848141000,461,-0.5198140000,462,-0.1137990000,463,-6.3587800000,464,0.1407280000,465,-0.4793200000,466,-0.5817360000,467,-0.9538130000,468,-0.0142608000,469,-0.5174990000,470,-0.0324933000,471,0.0988631000,472,0.0196349000,473,-0.0096871200,474,0.0272314000,475,-0.1790320000,476,-0.1460230000,477,-0.0559089000,478,0.3535580000,479,-0.2188450000,480,-0.0797443000,481,-3.8438200000,482,-1.1271700000,483,0.0086898200,484,0.0052012300,485,-0.1717260000,486,0.2931320000,487,-0.0430273000,488,0.0128400000,489,-0.1087090000,490,0.0928549000,491,-0.0498749000,492,-0.1999010000,493,0.1869020000,494,0.0091671900,495,0.1540030000,496,-0.1859300000,497,-0.2535870000,498,-0.1065340000,499,-0.0325151000,500,0.0408630000,501,-3.7773000000,502,-0.4100440000,503,-1.4540600000,504,-0.0246277000 +253,0,-0.0502159000,508,-1.0000000000,455,0.4978700000,456,-0.6129490000,457,0.1669170000,458,0.3587960000,459,-0.5179520000,460,0.4392850000,461,-0.4350880000,462,-0.0056418800,463,0.4234120000,464,0.1173200000,465,0.2259400000,466,0.0681266000,467,0.3523810000,468,0.0195594000,469,-0.0213061000,470,0.0046042600,471,-0.4148670000,472,0.0223610000,473,0.0580484000,474,0.3662530000,475,0.2232800000,476,-0.2231520000,477,-0.1041380000,478,0.0104932000,479,-0.1562650000,480,0.8858260000,481,-0.1486900000,482,-0.0653999000,483,-0.5086390000,484,0.3813690000,485,-1.0192400000,486,0.0748852000,487,-0.4052150000,488,0.2117540000,489,-0.0762768000,490,-0.5914540000,491,-0.0815593000,492,-0.0193447000,493,-0.0607417000,494,-0.4047090000,495,-0.0000121276,496,-0.3433230000,497,-0.1383590000,498,-0.1323980000,499,0.5064810000,500,-0.0338224000,501,0.1519200000,502,-0.3755700000,503,-0.2464990000,504,-0.6440480000 +254,0,-0.2529670000,509,-1.0000000000,455,-0.0891182000,456,-0.1519060000,457,-0.3545180000,458,-0.0465202000,459,-0.0563499000,460,0.0500900000,461,0.0123931000,462,-0.0107624000,463,-0.0567130000,464,-0.0463112000,465,-0.0300290000,466,-0.1372200000,467,-0.1072070000,468,-0.0316065000,469,-0.3640470000,470,-0.0194694000,471,-0.2146380000,472,0.0401363000,473,0.0876760000,474,-0.0400558000,475,0.0341313000,476,0.0355497000,477,-0.0337633000,478,-0.0314425000,479,0.0071709200,480,0.0223412000,481,0.1173790000,482,0.0608886000,483,0.0215803000,484,-0.5686280000,485,-0.0868183000,486,-0.0098014900,487,0.0321963000,488,0.1103270000,489,0.0431727000,490,0.1284770000,491,0.0129966000,492,-0.0575238000,493,-0.0771255000,494,-0.1143030000,495,-0.0744366000,496,-1.1905200000,497,-0.1126940000,498,-0.2549060000,499,0.2989410000,500,0.0355690000,501,-0.0814094000,502,0.0026097800,503,0.0278590000,504,0.0112543000 +255,0,-0.4602200000,510,-1.0000000000,455,-0.1052300000,456,0.5390620000,457,0.0299753000,458,-0.1853780000,459,-0.0455383000,460,-0.0493685000,461,0.0149364000,462,-0.0603578000,463,0.0858057000,464,-0.0700313000,465,-0.3872190000,466,-0.0298358000,467,0.0508105000,468,-0.0291791000,469,-0.0357638000,470,0.0078854300,471,-0.2708900000,472,-0.0049430400,473,-0.0608588000,474,-0.1510130000,475,0.0261828000,476,0.0231186000,477,-0.0006663660,478,0.2146760000,479,-0.1220110000,480,-0.2029870000,481,-0.0874181000,482,-0.1270050000,483,-0.2157790000,484,0.7547790000,485,-2.3851600000,486,-0.0516238000,487,0.0378558000,488,0.2584120000,489,0.1091890000,490,-0.8232600000,491,0.0723333000,492,-0.0238574000,493,-0.0194009000,494,0.1914860000,495,0.1324650000,496,-0.0237079000,497,-0.0623563000,498,0.1874930000,499,-0.2782330000,500,0.0557252000,501,-0.0088930800,502,0.2802890000,503,0.0780947000,504,-0.0545466000 +256,0,0.0991848000,511,-1.0000000000,455,-0.2423740000,456,-0.0876491000,457,-1.3792600000,458,0.0313754000,459,-0.8173800000,460,-0.6120990000,461,0.7999870000,462,0.2767140000,463,0.3860490000,464,-0.0383284000,465,0.1989920000,466,-0.1217330000,467,-0.2642500000,468,-0.0241604000,469,-0.2250820000,470,-0.0160875000,471,-1.5353700000,472,0.0070567300,473,0.3067680000,474,-0.9967680000,475,0.0022770900,476,0.2149090000,477,0.0532744000,478,0.0630089000,479,-0.2594950000,480,-0.5758620000,481,0.6634660000,482,-0.9142750000,483,0.1799650000,484,-0.0505358000,485,-0.5380510000,486,-0.1351730000,487,-0.1894210000,488,-0.4401770000,489,0.0277474000,490,-0.4935970000,491,-0.0111961000,492,-0.2337320000,493,-0.5936830000,494,-0.4849000000,495,0.9495160000,496,-0.4712890000,497,-0.1011570000,498,-2.2331100000,499,-0.8898120000,500,0.2169970000,501,-0.2159970000,502,0.0424401000,503,1.1192600000,504,-3.1805500000 +257,0,0.3964540000,512,-1.0000000000,455,-0.2189690000,456,-0.4671030000,457,-0.0646622000,458,0.1896120000,459,0.2891820000,460,-0.0914327000,461,0.0841729000,462,-0.1370300000,463,0.0424525000,464,0.1370510000,465,0.2139720000,466,0.1304860000,467,-0.2855560000,468,0.0487657000,469,-0.0980585000,470,-0.0197020000,471,-0.1189000000,472,-0.0027743900,473,-0.1798950000,474,-0.0784084000,475,-0.0692510000,476,0.0400378000,477,-0.0733167000,478,-0.0471765000,479,0.0512927000,480,0.0747601000,481,-0.0082108800,482,-0.2325090000,483,0.0528446000,484,-0.4777510000,485,-0.1056240000,486,0.0556262000,487,0.0300953000,488,0.3938900000,489,0.1993170000,490,0.2845090000,491,-0.0960910000,492,-0.0776297000,493,-0.0843730000,494,-0.0521792000,495,0.0758570000,496,-0.4775570000,497,-0.2674950000,498,-0.0034579400,499,0.3222010000,500,0.1081360000,501,-0.2057650000,502,-0.0388911000,503,0.1137440000,504,-0.1604560000 +258,0,0.2927980000,513,-1.0000000000,455,-0.0058183800,456,0.1021070000,457,-0.0681307000,458,0.2809130000,459,-0.0687258000,460,0.0979647000,461,-0.1098230000,462,-0.1292110000,463,0.3274560000,464,0.2365270000,465,0.3318140000,466,0.2595010000,467,0.1350580000,468,0.0257947000,469,-0.3147900000,470,0.0253607000,471,-0.1835630000,472,0.0432369000,473,0.0432396000,474,-0.3047690000,475,0.1427160000,476,0.0126177000,477,-0.0524655000,478,0.1275930000,479,-0.1486990000,480,0.3941870000,481,0.0045926600,482,-0.4534820000,483,-0.1666450000,484,1.0360400000,485,-0.2316330000,486,-0.1561830000,487,0.2991330000,488,0.1400140000,489,0.0019302600,490,-0.0851459000,491,-0.7679680000,492,-0.1471290000,493,0.0352162000,494,-0.1488380000,495,-0.2030310000,496,-0.0189819000,497,-0.0501292000,498,0.5522080000,499,0.1447880000,500,-0.3137520000,501,0.0212819000,502,-0.1922780000,503,0.0372797000,504,0.1280430000 +259,0,-0.1213780000,514,-1.0000000000,455,-0.0668834000,456,-0.1984450000,457,0.0876958000,458,-0.1306220000,459,0.1585740000,460,0.0428343000,461,0.0156855000,462,-0.1163840000,463,0.1962320000,464,0.0175672000,465,0.1458070000,466,-0.2132440000,467,-0.1121960000,468,0.0171850000,469,-0.0619803000,470,0.0490317000,471,-0.1313960000,472,-0.0316663000,473,-0.1076500000,474,-0.0702606000,475,-0.0451315000,476,0.0142041000,477,-0.0209212000,478,0.0476854000,479,0.1452100000,480,-0.1441360000,481,0.1421600000,482,-0.0169133000,483,0.1347630000,484,1.4422300000,485,-0.0385869000,486,0.0311647000,487,0.2194510000,488,-0.0274649000,489,0.0091185900,490,-0.1826940000,491,-0.1383190000,492,0.0954806000,493,-0.0064167100,494,0.0558606000,495,0.0344397000,496,0.0744929000,497,-0.0254044000,498,-0.0388091000,499,0.6418520000,500,0.1686800000,501,-0.2316890000,502,0.0182152000,503,0.0746884000,504,-0.0244428000 +260,0,0.1408410000,515,-1.0000000000,455,0.0753702000,456,-0.1742210000,457,0.1246410000,458,0.0492834000,459,0.1776450000,460,-0.3183130000,461,-0.0960433000,462,0.0170545000,463,0.1397890000,464,-0.0565330000,465,-0.1699990000,466,-0.0502213000,467,-0.0609172000,468,0.0371296000,469,-0.0336231000,470,-0.0038571700,471,0.0219388000,472,0.0194224000,473,0.0406753000,474,-0.1796880000,475,-0.0618638000,476,0.0267172000,477,-0.0560776000,478,0.1905170000,479,-0.0511898000,480,-0.0993719000,481,0.0266283000,482,-0.0564457000,483,-0.1353980000,484,1.1994500000,485,-0.0756687000,486,0.0303945000,487,-0.1511890000,488,0.1287430000,489,0.0169216000,490,-0.0620730000,491,-0.0001344710,492,-0.0562461000,493,0.0095730400,494,0.2582960000,495,0.1186570000,496,-0.0821972000,497,-0.0869960000,498,-0.2373990000,499,-0.8987670000,500,0.0592014000,501,0.0879141000,502,-0.0625418000,503,-0.0522647000,504,-0.0735746000 +261,0,-0.0309936000,516,-1.0000000000,455,-2.6517800000,456,0.8576630000,457,0.0094976100,458,0.0766626000,459,-0.4173130000,460,0.1185340000,461,-0.0759310000,462,0.0435164000,463,0.0802948000,464,0.0756430000,465,-0.0669701000,466,-0.0418733000,467,0.1294830000,468,0.0295272000,469,0.0040433100,470,0.0270011000,471,-0.1097130000,472,0.0262029000,473,-0.0681070000,474,-1.0872200000,475,-0.0332474000,476,0.0089169300,477,0.0028354100,478,0.0053795600,479,-0.0420403000,480,-1.6180200000,481,0.1521480000,482,-0.1843060000,483,-0.0511952000,484,-1.7746200000,485,-0.5112480000,486,-0.1300820000,487,0.0692470000,488,0.1162910000,489,0.0336005000,490,-0.3674080000,491,-0.0662473000,492,-0.1096250000,493,-0.1422300000,494,-0.7781460000,495,0.0939439000,496,-0.4899780000,497,-0.0623180000,498,0.0270295000,499,0.4273880000,500,-0.1040900000,501,-0.0076673400,502,0.1118080000,503,0.1300190000,504,-0.1910040000 +262,0,0.5330620000,517,-1.0000000000,455,0.0800534000,456,-0.0098028500,457,-0.1119330000,458,0.5626650000,459,0.1231590000,460,-0.0252813000,461,-0.0068827600,462,0.0420865000,463,0.0399784000,464,0.2525930000,465,0.0166185000,466,0.1592120000,467,0.1634160000,468,-0.0273041000,469,-0.1653370000,470,-0.0264197000,471,-0.0277157000,472,-0.0415513000,473,0.0086784600,474,-0.2764600000,475,0.1050310000,476,-0.0669975000,477,-0.0135163000,478,-0.0602190000,479,-0.0417367000,480,0.1216570000,481,-0.1096610000,482,0.0640616000,483,-0.0917094000,484,0.1915260000,485,-0.1667960000,486,-0.0178726000,487,-0.1796760000,488,-0.0881293000,489,-0.0549124000,490,0.1057390000,491,-0.1494470000,492,-0.0762798000,493,-0.0062284100,494,0.3072330000,495,0.0484939000,496,-0.0537607000,497,-0.0253014000,498,-0.2802590000,499,0.1831390000,500,-0.0481802000,501,0.0638714000,502,-0.0120050000,503,-0.1264110000,504,-0.2486080000 +263,0,-0.2011460000,518,-1.0000000000,455,0.0879932000,456,-0.2764530000,457,0.4075190000,458,0.0522743000,459,0.0286301000,460,0.0655005000,461,0.0257805000,462,-0.0141040000,463,-0.0987776000,464,0.0192751000,465,0.0735591000,466,0.0175539000,467,0.0468878000,468,-0.0011694900,469,-0.0842665000,470,-0.0422541000,471,-0.1850320000,472,-0.0322000000,473,-0.0718600000,474,-0.0812427000,475,-0.1242410000,476,-0.0159305000,477,-0.0611895000,478,0.0453452000,479,-0.1474410000,480,0.0255932000,481,-0.0849690000,482,-0.0345484000,483,0.0379497000,484,-3.5588000000,485,-0.1507090000,486,-0.0192724000,487,-0.1250360000,488,-0.0497783000,489,0.1369800000,490,0.2446710000,491,0.0126652000,492,-0.0326508000,493,0.0333027000,494,0.1076450000,495,0.0482554000,496,0.0618283000,497,0.0327219000,498,0.0909951000,499,-3.0972400000,500,-0.0448715000,501,-0.1006640000,502,0.0136046000,503,0.0624842000,504,0.0462003000 +264,0,-0.1025730000,519,-1.0000000000,455,-0.4822180000,456,-0.3124290000,457,-0.2595090000,458,-0.4715580000,459,0.0644549000,460,0.1182420000,461,-0.1413920000,462,-0.2057250000,463,0.0546985000,464,0.0714135000,465,-0.0577667000,466,-0.4445900000,467,-0.4552110000,468,-0.0391337000,469,0.1153560000,470,-0.0416892000,471,-0.7002840000,472,0.0247094000,473,-0.4382350000,474,-0.1589990000,475,-0.0175985000,476,0.0817407000,477,-0.0130404000,478,0.0189775000,479,0.1580000000,480,-0.1442120000,481,0.2964770000,482,-1.1168200000,483,0.0870352000,484,-0.2457440000,485,0.5754660000,486,0.0304844000,487,0.2949630000,488,0.3282570000,489,0.0219458000,490,-0.0454919000,491,-0.1198630000,492,-0.1073840000,493,-0.1715160000,494,-0.0584214000,495,-0.0297256000,496,-1.0271900000,497,-0.4394430000,498,-0.3427330000,499,0.4929620000,500,0.2550000000,501,-0.2881560000,502,0.0039919000,503,-0.0408397000,504,0.1482010000 +265,0,-0.4967040000,520,-1.0000000000,455,0.2511200000,456,-1.8857300000,457,0.8493680000,458,0.0487683000,459,-1.0881000000,460,0.1900990000,461,-0.8158140000,462,-0.0339226000,463,-1.5986100000,464,-1.7262300000,465,0.4143580000,466,-0.7934620000,467,-2.0532200000,468,-0.0046257200,469,0.1625290000,470,-0.0171081000,471,-1.0208100000,472,0.0221381000,473,-5.0202200000,474,-0.2452380000,475,0.3079620000,476,-0.1870810000,477,-0.4635920000,478,-0.1158080000,479,0.9047710000,480,-0.2616820000,481,-0.2981050000,482,-2.4917000000,483,-0.4966210000,484,0.0184157000,485,0.4207450000,486,-0.0763206000,487,0.6232090000,488,-0.1719750000,489,0.3052180000,490,-0.2090750000,491,-0.2675870000,492,-1.1620000000,493,-0.0378005000,494,-4.2204100000,495,-0.1579230000,496,0.4216400000,497,0.2499180000,498,0.7197760000,499,-0.0392206000,500,-0.1077420000,501,-0.5868640000,502,-2.9085800000,503,-0.2501050000,504,-0.8099430000 +266,0,0.6736180000,521,-1.0000000000,455,0.0589957000,456,0.2505720000,457,0.1614480000,458,0.0378614000,459,-0.0967349000,460,-0.0849743000,461,-0.1951480000,462,-0.3409720000,463,-0.1011720000,464,0.0179587000,465,-0.0051617400,466,-0.1958130000,467,0.3002780000,468,0.0345371000,469,-0.1472980000,470,-0.0288195000,471,0.0538345000,472,-0.0169922000,473,-0.1560040000,474,-0.3350570000,475,0.2689370000,476,-0.1392390000,477,-0.0484279000,478,0.0204791000,479,0.1259160000,480,-0.1771780000,481,0.0187707000,482,-0.1819680000,483,0.0698511000,484,1.1721900000,485,0.2809330000,486,-0.2171560000,487,0.0919183000,488,-0.2846760000,489,0.0278233000,490,-0.1559960000,491,-0.0304572000,492,-0.0602021000,493,-0.1044440000,494,1.0734000000,495,0.1420150000,496,-0.4923380000,497,0.1810410000,498,0.1532900000,499,0.2282650000,500,-0.2792750000,501,-0.4059710000,502,0.0640183000,503,-0.4587680000,504,-0.0174637000 +267,0,1.3283300000,522,-1.0000000000,455,0.0090798100,456,0.2379780000,457,0.0010511900,458,0.5978610000,459,0.1878410000,460,0.1349130000,461,-0.0080325100,462,0.0630634000,463,0.0873631000,464,0.1713660000,465,0.0773662000,466,0.2124700000,467,0.3832230000,468,-0.0185410000,469,-0.2423740000,470,-0.0381341000,471,-0.0005623910,472,0.0191831000,473,0.1069640000,474,-0.3157830000,475,0.4363200000,476,-0.1282700000,477,-0.0513579000,478,-0.0520787000,479,0.0205286000,480,0.5356100000,481,-0.3940160000,482,0.0908062000,483,-0.1674780000,484,0.2632620000,485,-0.0135435000,486,-0.0321001000,487,-0.0699281000,488,-0.2043980000,489,-0.0974388000,490,-0.1196200000,491,-0.3324080000,492,-0.1984640000,493,-0.0214644000,494,0.4168470000,495,-0.0841114000,496,-0.0708092000,497,0.1440530000,498,0.0967831000,499,0.3597710000,500,-0.1292290000,501,0.0673511000,502,-0.0132340000,503,-0.2738500000,504,-0.2654960000 +268,0,0.3698090000,523,-1.0000000000,455,0.1333540000,456,-0.2222360000,457,-0.4748070000,458,0.1004820000,459,0.1697540000,460,0.0879679000,461,-0.0311206000,462,-0.0297595000,463,-0.0517908000,464,0.0038518500,465,-0.0493362000,466,-0.1618530000,467,0.0185127000,468,-0.0131504000,469,-0.0071266600,470,0.0321911000,471,-0.0151757000,472,0.0322368000,473,0.0596977000,474,-0.1074990000,475,0.1026140000,476,0.0494805000,477,-0.0324700000,478,-0.0321678000,479,-0.0112692000,480,0.0482467000,481,0.0533447000,482,-0.0028584200,483,-0.0067111400,484,-0.1990270000,485,-0.3761200000,486,0.0778458000,487,-0.2158950000,488,0.0640131000,489,0.0179814000,490,0.3696360000,491,-0.0001211480,492,0.0756472000,493,-0.0039427000,494,0.6712440000,495,0.1867180000,496,-0.0203645000,497,0.0128067000,498,0.0792621000,499,-0.0311826000,500,-0.0114752000,501,-0.0086479300,502,-0.1135900000,503,-0.0550220000,504,-0.0476906000 +269,0,0.3879680000,524,-1.0000000000,455,-1.3255300000,456,0.5472080000,457,1.0461500000,458,0.0642168000,459,-0.3681760000,460,-0.4166620000,461,0.2072230000,462,-1.3916200000,463,-1.3160900000,464,0.2508090000,465,0.1927260000,466,0.0478187000,467,-0.5176900000,468,-0.0309710000,469,0.0057730900,470,-0.0345775000,471,-0.0272014000,472,0.0337081000,473,-0.5448320000,474,0.3884200000,475,0.0769705000,476,0.0511547000,477,-0.0483681000,478,0.0197898000,479,-0.1883080000,480,0.5666350000,481,-0.0626260000,482,-0.7223170000,483,0.1963120000,484,-0.0012567800,485,0.1161950000,486,-0.0537095000,487,-1.0372000000,488,-0.6417730000,489,0.2635360000,490,-0.4027850000,491,-0.2017170000,492,-0.5929450000,493,0.0906076000,494,-0.1891080000,495,0.0449734000,496,-0.0519171000,497,-0.3331430000,498,0.1820350000,499,0.0041999100,500,0.0794049000,501,0.2142990000,502,-0.4147940000,503,-1.1672000000,504,-0.5620420000 +270,0,-0.9658190000,525,-1.0000000000,455,-0.1281990000,456,-0.3531700000,457,-1.2511500000,458,-0.1636590000,459,-0.0337852000,460,-1.5644600000,461,-0.2659810000,462,0.1353560000,463,-1.1077600000,464,-0.4849180000,465,-0.4488080000,466,-0.1904560000,467,0.1481290000,468,-0.0412394000,469,0.2935680000,470,0.0492417000,471,0.0261912000,472,0.0373452000,473,0.5885170000,474,-0.1320230000,475,-0.5377850000,476,0.2448530000,477,0.2538500000,478,-1.3670000000,479,-1.1306800000,480,-0.2669640000,481,0.3933960000,482,-0.5615200000,483,-0.7955540000,484,0.0397926000,485,-0.0571788000,486,-0.8768240000,487,-0.6495400000,488,-0.0040648000,489,-0.7500810000,490,-1.9395900000,491,-0.0349145000,492,-0.1320040000,493,-0.5484220000,494,0.5103140000,495,1.0656900000,496,0.7682990000,497,0.1768700000,498,-5.2191800000,499,-0.0284128000,500,-0.1055170000,501,0.2102350000,502,-0.4837930000,503,0.9930040000,504,0.3924340000 +271,0,0.9138320000,526,-1.0000000000,455,0.1334440000,456,-0.6318870000,457,0.5300860000,458,0.2700450000,459,0.0981997000,460,0.2192120000,461,0.0128325000,462,-0.0601015000,463,-0.1035390000,464,-0.0527310000,465,0.1062210000,466,0.1980440000,467,0.1356040000,468,0.0180109000,469,-0.2164720000,470,0.0373536000,471,-0.3950830000,472,-0.0479085000,473,-0.1189440000,474,-0.1414710000,475,-0.0281683000,476,-0.0853878000,477,0.1076140000,478,0.0186189000,479,-0.1439930000,480,0.0961447000,481,-0.0329463000,482,0.0912601000,483,-0.1372930000,484,0.2175420000,485,-0.4168980000,486,0.0681940000,487,-0.3228940000,488,-0.0336929000,489,0.2256370000,490,1.0501600000,491,0.1002200000,492,0.1745080000,493,0.0779140000,494,0.3067210000,495,-0.0454327000,496,-0.0160101000,497,0.0301563000,498,0.0421697000,499,-0.2942410000,500,-0.0472711000,501,-0.2427730000,502,-0.3103950000,503,-0.0964899000,504,0.0556806000 +272,0,0.3512390000,527,-1.0000000000,455,0.0177035000,456,-0.4764270000,457,-0.6191640000,458,0.0133320000,459,0.3329560000,460,0.4843060000,461,0.0096536500,462,-0.0060155400,463,0.0314679000,464,0.0562685000,465,-0.0542856000,466,0.0204591000,467,0.0595074000,468,-0.0479318000,469,0.0219548000,470,0.0091405800,471,0.0047421100,472,-0.0193353000,473,0.0397566000,474,-0.0257617000,475,-0.0636511000,476,-0.0072220800,477,0.0034478600,478,-0.0400381000,479,-0.0867800000,480,0.0245836000,481,0.0044867200,482,0.2545540000,483,0.0277436000,484,-0.7774680000,485,-0.0678022000,486,-0.0181781000,487,-0.2804940000,488,-0.1466710000,489,0.0023985700,490,-0.1787130000,491,-1.8315800000,492,0.0103841000,493,-0.0389465000,494,-3.7289200000,495,0.0528171000,496,-0.0087364800,497,0.0094969200,498,-1.0356200000,499,-0.1125070000,500,-0.4838890000,501,-0.0006323630,502,0.0200291000,503,0.0108389000,504,-0.1859470000 +273,0,0.0756306000,528,-1.0000000000,455,-0.1215870000,456,-0.2074420000,457,-0.0866213000,458,0.3482390000,459,-0.0090813900,460,-0.0423916000,461,0.0784161000,462,-0.0375985000,463,0.0786588000,464,0.0481528000,465,0.1231280000,466,-0.0174588000,467,-0.0578112000,468,0.0343461000,469,-0.0065679200,470,-0.0083460400,471,-0.2097450000,472,-0.0279170000,473,-0.1348590000,474,-0.0494562000,475,-0.0935276000,476,-0.0264569000,477,-0.0424580000,478,0.0172140000,479,0.1429020000,480,-0.0619427000,481,0.0739975000,482,-0.0304856000,483,0.0623472000,484,0.8996510000,485,-0.0970686000,486,0.0054170200,487,0.1265910000,488,0.1217980000,489,-0.0280799000,490,-0.0378158000,491,-0.1961350000,492,-0.1053950000,493,-0.0042675300,494,0.2745250000,495,0.0201798000,496,-0.1682670000,497,-0.0159885000,498,0.0136915000,499,0.0337247000,500,0.0936566000,501,-0.0660658000,502,0.0396763000,503,0.1452060000,504,-0.0356749000 +274,0,0.9177680000,529,-1.0000000000,455,0.1003990000,456,-0.0465317000,457,0.6846510000,458,-0.4214340000,459,-0.7834190000,460,-0.6613470000,461,-0.3860430000,462,-0.6363390000,463,0.4208840000,464,0.0699139000,465,0.2405440000,466,0.1581630000,467,0.1020630000,468,-0.0276378000,469,0.0405611000,470,0.0430053000,471,-0.0364062000,472,-0.0407713000,473,-0.1940970000,474,-0.2066860000,475,0.3512490000,476,-0.0399407000,477,-0.0732837000,478,-0.0909657000,479,0.3997790000,480,0.6468390000,481,-0.0931828000,482,-0.1506560000,483,-0.4681490000,484,-0.7958580000,485,-0.8382120000,486,0.1083060000,487,-0.2294450000,488,0.5462090000,489,-0.1140430000,490,-0.3620390000,491,0.0184364000,492,-0.1110330000,493,0.0209786000,494,0.7300510000,495,0.1754370000,496,0.2891370000,497,0.1129580000,498,0.1013880000,499,-0.3285250000,500,-0.0671827000,501,-0.4032510000,502,0.0379483000,503,0.1339330000,504,0.0561187000 +275,0,0.0708037000,530,-1.0000000000,455,-0.1278090000,456,0.0390217000,457,-0.0781268000,458,0.2255790000,459,0.1714640000,460,-0.6630960000,461,0.1021510000,462,-0.0284188000,463,0.1380920000,464,-0.1049070000,465,0.0436704000,466,0.0751790000,467,0.0945155000,468,0.0104687000,469,-0.0727493000,470,-0.0424673000,471,-0.0109712000,472,-0.0204432000,473,-0.0540868000,474,-0.4681660000,475,0.1217100000,476,-0.0748592000,477,-0.0406408000,478,-0.0522235000,479,0.0893181000,480,0.0275465000,481,-0.1966220000,482,0.0496012000,483,0.0042794800,484,0.4880790000,485,-0.7821280000,486,0.0247992000,487,-0.0043408900,488,0.0321180000,489,-0.0429880000,490,-0.1510010000,491,-0.2417910000,492,-0.1790420000,493,0.0185427000,494,0.0623078000,495,-0.0389176000,496,-0.0950227000,497,-0.0699212000,498,-0.6405290000,499,0.0340329000,500,0.1154610000,501,-0.0331312000,502,0.0553970000,503,-0.1668670000,504,-0.0591401000 +276,0,0.8075230000,531,-1.0000000000,455,-0.5963000000,456,0.1250330000,457,0.0566391000,458,0.2685490000,459,0.4506290000,460,0.1479980000,461,-0.0271326000,462,-0.0555037000,463,-0.2157670000,464,0.0384946000,465,0.5015000000,466,0.3304520000,467,0.1958550000,468,0.0130004000,469,-0.1056090000,470,-0.0091190000,471,0.0300925000,472,-0.0167381000,473,-0.3232590000,474,-0.1167340000,475,-0.2368720000,476,-0.1914790000,477,-0.3023060000,478,-0.0550296000,479,0.2226280000,480,-0.6185040000,481,-0.2604430000,482,-0.2748350000,483,0.2094870000,484,0.2084500000,485,0.3399360000,486,0.1005390000,487,-0.4169680000,488,-0.0715665000,489,0.1127430000,490,0.3189520000,491,-1.5427300000,492,0.0047687100,493,-0.1365300000,494,1.5085400000,495,0.4778420000,496,-0.1976350000,497,-1.1404000000,498,-0.9215570000,499,-0.4227130000,500,0.3164050000,501,-0.0003723900,502,-0.2335450000,503,-1.3079500000,504,-0.5071180000 +277,0,-0.1625530000,532,-1.0000000000,455,0.1468950000,456,-1.8594700000,457,-0.1260510000,458,0.0854090000,459,-0.5253040000,460,-0.3343210000,461,-0.2395790000,462,0.0234629000,463,-0.0289314000,464,0.0063781900,465,0.4726340000,466,-0.5750280000,467,0.2513990000,468,-0.0040251200,469,-0.1719710000,470,-0.0171434000,471,-0.1190390000,472,0.0276157000,473,-0.0423974000,474,-7.1274200000,475,-0.0522069000,476,-0.0436124000,477,-0.0734581000,478,0.1335200000,479,-0.0403694000,480,0.1202010000,481,-0.0989242000,482,-0.3541550000,483,0.1133270000,484,0.4240790000,485,-0.2516370000,486,-0.3042470000,487,-0.1452140000,488,-0.0620772000,489,0.1487710000,490,-0.4639470000,491,-0.2546370000,492,-0.3562230000,493,0.2612400000,494,0.6752570000,495,-0.0158973000,496,-0.2840820000,497,0.0271267000,498,0.5937730000,499,-1.9141300000,500,-0.0546706000,501,-0.4388470000,502,0.1683770000,503,-0.0441048000,504,-0.1292960000 +278,0,0.4185520000,533,-1.0000000000,455,-0.0220062000,456,-0.2256770000,457,0.0873380000,458,0.3351310000,459,0.2128650000,460,0.1288330000,461,-0.0052169000,462,-0.0503271000,463,0.5276750000,464,0.1683000000,465,0.1404210000,466,0.1186690000,467,-0.0609362000,468,-0.0248389000,469,-0.3097790000,470,0.0476314000,471,-0.2814270000,472,0.0456015000,473,-0.0075554700,474,-0.1176390000,475,0.0184275000,476,-0.0389193000,477,-0.0032191600,478,0.0878393000,479,0.1666240000,480,-0.0997252000,481,-0.0783494000,482,-0.0556905000,483,-0.0432073000,484,0.2493820000,485,-0.1684020000,486,0.0408599000,487,0.0608539000,488,-0.0778625000,489,-0.1149800000,490,-0.1208930000,491,-0.1991740000,492,-0.0512511000,493,0.0521403000,494,0.3114770000,495,-0.0561551000,496,-0.1355840000,497,0.2691590000,498,0.1123600000,499,0.0900458000,500,0.0410087000,501,-0.0942654000,502,-0.1282280000,503,-0.2035920000,504,-0.1537700000 +279,0,0.0215523000,534,-1.0000000000,455,-0.0092306700,456,-0.0202992000,457,-0.0348901000,458,-0.0127331000,459,-0.0448820000,460,-0.0385486000,461,0.0053960800,462,-0.0071278100,463,-0.0567163000,464,-0.0535105000,465,0.0237632000,466,-0.0043357400,467,-0.0373330000,468,-0.0180508000,469,0.0091479100,470,0.0100668000,471,-0.0552348000,472,0.0146279000,473,-0.0062856200,474,-0.0263121000,475,0.0063172100,476,-0.0147459000,477,-0.0487937000,478,-0.0156661000,479,-0.0451630000,480,-0.0390070000,481,0.0178590000,482,-0.0198782000,483,-0.0500792000,484,0.0224548000,485,0.0227977000,486,-0.0088702300,487,-0.0383841000,488,0.0011368200,489,0.0077128300,490,0.0274196000,491,-0.0306206000,492,0.0225778000,493,-0.0094192900,494,-0.0443660000,495,-0.0186261000,496,0.0312221000,497,0.0064579600,498,0.0086850200,499,-0.0205656000,500,-0.0023610700,501,0.0076142900,502,-0.0252405000,503,0.0448766000,504,0.0103445000 +280,0,0.0169398000,535,-1.0000000000,455,-0.0781924000,456,-0.6047660000,457,-1.7665000000,458,0.0205550000,459,-0.3775810000,460,0.6085810000,461,0.0137369000,462,-0.0089929200,463,0.0673365000,464,0.0821157000,465,0.0214166000,466,-0.0106240000,467,-0.0629605000,468,0.0307798000,469,0.0063828400,470,-0.0357026000,471,0.0001406730,472,-0.0227296000,473,0.0522527000,474,-0.0245264000,475,-0.1093590000,476,0.0055606900,477,-0.0011653200,478,-0.0470397000,479,-0.1005800000,480,0.0239887000,481,0.0759086000,482,-0.0310928000,483,0.0608835000,484,1.0533700000,485,-0.0247795000,486,-0.0180068000,487,-1.1949800000,488,-0.0814381000,489,-0.0914386000,490,-0.2370660000,491,0.0145777000,492,0.0089798900,493,-0.0372862000,494,-0.0648618000,495,0.1695700000,496,0.0104051000,497,-0.0013874300,498,-1.2809000000,499,-0.3606680000,500,-0.0135043000,501,-0.0015625400,502,0.0325305000,503,-0.0018069600,504,-0.2347210000 +281,0,0.4486130000,536,-1.0000000000,455,-0.1363210000,456,-0.1246650000,457,-0.1191420000,458,-0.0182841000,459,0.0459147000,460,0.0683111000,461,-0.0387466000,462,-0.2192100000,463,0.3240790000,464,-0.0310349000,465,-0.0672861000,466,-0.0444418000,467,-0.0367068000,468,-0.0062949400,469,-0.0017825700,470,-0.0362130000,471,-0.4647310000,472,-0.0474938000,473,-0.0376943000,474,0.0516670000,475,0.2164740000,476,0.0268685000,477,-0.0094601800,478,0.0557630000,479,0.3921810000,480,-0.0878921000,481,0.1441050000,482,-0.0653458000,483,-0.0882012000,484,-0.2609020000,485,-0.1136960000,486,0.0574645000,487,0.1820030000,488,0.1437340000,489,0.0751292000,490,-0.0551905000,491,-0.1373370000,492,-0.0564717000,493,-0.0584854000,494,0.4011000000,495,0.1002790000,496,-0.0238295000,497,-0.2215330000,498,0.3606290000,499,-0.5026460000,500,-0.0799237000,501,0.0002877430,502,-0.2571970000,503,-0.0405718000,504,-0.0251009000 +282,0,1.3821700000,537,-1.0000000000,455,0.0406495000,456,-0.3186830000,457,0.8898780000,458,0.0974524000,459,-0.0541481000,460,0.0696402000,461,-0.1200230000,462,-0.3829750000,463,0.1405570000,464,-0.0796044000,465,-0.1305770000,466,-0.2906780000,467,0.1870470000,468,-0.0089208700,469,-0.1655890000,470,0.0040542000,471,-0.2227550000,472,0.0013146400,473,-0.0746417000,474,-0.0673151000,475,0.0429409000,476,-0.0926742000,477,0.1112980000,478,-0.0444179000,479,-0.1749110000,480,0.0639614000,481,-0.0269645000,482,-0.0756443000,483,-0.0200255000,484,0.3742190000,485,-0.2998770000,486,0.0674845000,487,0.0926988000,488,-0.0115704000,489,0.4429120000,490,0.4196340000,491,0.0966893000,492,-0.0173509000,493,-0.1308660000,494,0.8314340000,495,0.4860430000,496,-0.1704820000,497,-0.2548240000,498,-0.5264960000,499,0.0269811000,500,-0.0511312000,501,0.5599740000,502,0.2963410000,503,-0.1545830000,504,-0.9194060000 +283,0,0.0945636000,538,-1.0000000000,455,0.0096732600,456,0.0656509000,457,0.2687430000,458,0.3138490000,459,0.1238500000,460,0.0267759000,461,0.1002940000,462,-0.0718538000,463,0.1340320000,464,0.2420580000,465,-0.0335044000,466,-0.0510230000,467,-0.1664780000,468,-0.0317419000,469,-0.2226850000,470,0.0305809000,471,-0.1223170000,472,-0.0316607000,473,-0.0469346000,474,-0.3132690000,475,-0.2132180000,476,-0.0289953000,477,-0.0081333700,478,-0.0105149000,479,0.1173290000,480,-0.1021000000,481,0.0213694000,482,-0.1600200000,483,0.1550670000,484,0.1340810000,485,-0.0480481000,486,0.0896883000,487,-0.2333150000,488,-0.2209270000,489,-0.1704130000,490,0.0174858000,491,-0.0739541000,492,-0.1811050000,493,-0.0453741000,494,0.2010130000,495,0.1034090000,496,-0.2061950000,497,-0.4092240000,498,-0.5503460000,499,0.2243990000,500,0.2535180000,501,0.2101190000,502,-0.0518925000,503,-0.3130050000,504,-0.3113870000 +284,0,0.0324427000,539,-1.0000000000,455,-0.1438080000,456,-0.9705880000,457,-0.9158850000,458,0.0374748000,459,-0.8948210000,460,-0.0187049000,461,-0.0808380000,462,-0.0216029000,463,0.1539220000,464,-0.0176350000,465,-0.2304980000,466,-0.0170978000,467,-1.2710900000,468,0.0179978000,469,0.0040764200,470,0.0235309000,471,-0.0056392200,472,-0.0129596000,473,0.1220440000,474,0.0550150000,475,-0.2548310000,476,0.0459462000,477,0.0042173600,478,0.0078984000,479,0.0297661000,480,0.1074650000,481,0.1926550000,482,0.0377336000,483,-0.1148010000,484,-0.0531932000,485,0.3674940000,486,-0.0218520000,487,-2.5663400000,488,-0.1189480000,489,-0.2679420000,490,0.0591612000,491,0.0278702000,492,-0.0174130000,493,-0.0746627000,494,-0.1027170000,495,0.4056740000,496,0.0489928000,497,0.0028786300,498,-0.4327840000,499,-0.4171800000,500,0.0810337000,501,0.0082512200,502,-0.0436610000,503,-0.0369563000,504,-0.2107870000 +285,0,1.8301300000,540,-1.0000000000,455,0.2938040000,456,0.7175610000,457,1.0287200000,458,-0.0434987000,459,1.2283700000,460,1.1830000000,461,-1.2567600000,462,-0.4402930000,463,0.3729300000,464,0.0490443000,465,0.6428170000,466,-1.3641000000,467,-0.0032587900,468,-0.0350307000,469,-0.3381290000,470,0.0486125000,471,-1.8075300000,472,-0.0351914000,473,0.6008210000,474,-0.5883130000,475,-0.2975070000,476,0.2282850000,477,-1.9118300000,478,0.3206250000,479,-0.4785430000,480,-0.6162760000,481,-0.7908010000,482,-1.4262700000,483,0.9597170000,484,2.5422100000,485,-0.3532300000,486,-0.4198290000,487,0.3362520000,488,1.0758000000,489,0.3571990000,490,0.6437770000,491,1.2768700000,492,0.4714210000,493,0.0718219000,494,1.1535100000,495,0.5286870000,496,-0.6788770000,497,0.5322910000,498,-3.2629800000,499,-0.1487480000,500,0.0684066000,501,1.5440400000,502,-0.4483620000,503,-0.1000510000,504,-0.8163200000 +286,0,0.6150520000,541,-1.0000000000,455,-0.1639430000,456,0.0572689000,457,-0.0259740000,458,0.0877096000,459,0.1854400000,460,0.0395548000,461,0.0241110000,462,-0.1194800000,463,0.0449512000,464,-0.4132220000,465,-0.1402760000,466,-0.0618066000,467,0.1264180000,468,0.0065634100,469,0.0134484000,470,-0.0124343000,471,0.0719251000,472,-0.0001833080,473,-0.0199718000,474,0.0863448000,475,0.4630060000,476,0.0322996000,477,0.0059220900,478,0.0566244000,479,0.1165090000,480,0.1362020000,481,0.1608680000,482,0.0525704000,483,0.1125940000,484,-2.1913800000,485,-0.0345692000,486,-0.0391878000,487,0.0111301000,488,0.0882107000,489,-0.2063770000,490,-0.1649330000,491,0.0178839000,492,-0.1361720000,493,-0.0674045000,494,-0.6843900000,495,-0.0828280000,496,0.0313837000,497,-0.0523692000,498,-0.3169720000,499,-0.9936270000,500,-0.3573900000,501,0.1027730000,502,-0.2291360000,503,-0.2248140000,504,0.1234150000 +287,0,-0.5539560000,542,-1.0000000000,455,-0.2916770000,456,0.1655560000,457,0.5852260000,458,-0.0099063900,459,0.0259986000,460,0.2642130000,461,-0.3937710000,462,-0.0780563000,463,0.2304690000,464,0.2497470000,465,-0.3336420000,466,-0.2263260000,467,-0.5195420000,468,-0.0346799000,469,-2.2322600000,470,-0.0170086000,471,-0.8400710000,472,0.0239775000,473,-0.2460910000,474,-0.2197130000,475,-0.1383830000,476,0.1094310000,477,0.0269128000,478,0.1128500000,479,0.0183944000,480,-0.2616300000,481,0.1228420000,482,-1.0758200000,483,0.1180680000,484,0.8131940000,485,0.8768280000,486,0.1167860000,487,0.1293070000,488,0.3152400000,489,-0.1898620000,490,-0.1443080000,491,-0.0636241000,492,-0.1202550000,493,-0.1755400000,494,0.7403720000,495,-0.1772160000,496,-1.6184400000,497,-0.6007220000,498,-0.0914311000,499,0.2078840000,500,0.3184380000,501,0.4255200000,502,-0.0503679000,503,-0.3422510000,504,-0.1634890000 +288,0,0.1922920000,543,-1.0000000000,455,-0.0279554000,456,-0.2405510000,457,0.2428020000,458,0.0485982000,459,0.0459632000,460,0.0969311000,461,0.0113756000,462,-0.0514350000,463,0.1486640000,464,-0.0944301000,465,0.0576968000,466,0.1217820000,467,-0.0068028500,468,-0.0039502900,469,-0.0709395000,470,0.0510533000,471,-0.1796060000,472,-0.0490978000,473,-0.0747321000,474,-0.0298057000,475,0.0629103000,476,0.0376200000,477,-0.0547482000,478,-0.0022834900,479,0.0449053000,480,0.0172995000,481,0.0650035000,482,0.0344851000,483,-0.1537910000,484,-0.5588710000,485,-0.0126091000,486,0.0383517000,487,-0.0413877000,488,0.1770930000,489,0.0896008000,490,0.4148980000,491,-0.0657357000,492,-0.0073917400,493,0.0462178000,494,0.1513820000,495,-0.1096040000,496,-0.0425528000,497,0.0273227000,498,-0.0305241000,499,-0.4611410000,500,0.0339345000,501,-0.1597100000,502,-0.1802960000,503,-0.0763708000,504,0.0235376000 +289,0,-0.3923250000,544,-1.0000000000,455,-0.4095740000,456,-0.5692320000,457,-0.5444040000,458,0.1688320000,459,-0.0117970000,460,-0.2360930000,461,-0.0586899000,462,-0.1741470000,463,0.0482952000,464,0.1600970000,465,0.0718266000,466,-0.3324270000,467,-0.1124210000,468,0.0004466490,469,-0.0210181000,470,-0.0341781000,471,-0.7521930000,472,-0.0172022000,473,-0.7920810000,474,-0.1972750000,475,0.0513180000,476,0.0007934820,477,-0.0572974000,478,0.0225518000,479,0.1605440000,480,-0.2454560000,481,0.2854960000,482,-0.7727140000,483,0.0708738000,484,-1.1584200000,485,0.1870720000,486,0.0049664900,487,0.2458090000,488,0.1603590000,489,0.0215051000,490,0.0096270400,491,-0.2334420000,492,-0.2772960000,493,-0.0892503000,494,-0.1082990000,495,0.2897170000,496,-1.8645600000,497,-0.3954670000,498,-0.1336050000,499,0.7014450000,500,0.2629610000,501,-0.5605120000,502,0.1946630000,503,-0.2327720000,504,-0.0947218000 +290,0,0.7704860000,545,-1.0000000000,455,-0.2968170000,456,0.2486300000,457,0.4533260000,458,-0.3418700000,459,-1.2563100000,460,-0.2374670000,461,-0.3640880000,462,-0.5817510000,463,-0.5285520000,464,-0.1982290000,465,-0.6381950000,466,-0.0468618000,467,0.2745120000,468,-0.0101380000,469,0.2801180000,470,0.0006161830,471,-0.7058160000,472,0.0415879000,473,-0.3889430000,474,-0.2825670000,475,0.7660920000,476,0.0121180000,477,0.1505240000,478,-0.0026907600,479,-0.1069860000,480,0.1129660000,481,0.4672480000,482,-0.0224234000,483,0.1536160000,484,-0.3859520000,485,-0.3599130000,486,-0.1684500000,487,-0.3469150000,488,0.0098575800,489,-0.0418119000,490,-1.1636500000,491,0.0083159300,492,-0.0411061000,493,-0.3044540000,494,1.6460000000,495,0.1145910000,496,0.0651163000,497,0.4882770000,498,-0.5098350000,499,-0.8793540000,500,-0.4778260000,501,-1.7388100000,502,-0.0778304000,503,-0.2279810000,504,-0.0472869000 +291,0,0.1391750000,546,-1.0000000000,455,-0.3458460000,456,-0.3718600000,457,0.0501151000,458,0.5022990000,459,0.1208680000,460,-2.5459600000,461,-5.9796400000,462,-0.5687070000,463,-6.6630800000,464,0.3499590000,465,1.1841000000,466,0.0564177000,467,-0.3685320000,468,0.0136840000,469,-0.8344670000,470,-0.0039399700,471,-0.2555960000,472,-0.0289913000,473,-0.3346390000,474,0.2507420000,475,-0.6102450000,476,0.0999348000,477,-4.1125600000,478,0.2736360000,479,0.0805719000,480,0.1831810000,481,-0.3383910000,482,0.3368530000,483,0.7703710000,484,-0.0274803000,485,-3.3202100000,486,-0.0902441000,487,-0.0949569000,488,-1.2124000000,489,-0.2653550000,490,-0.1586580000,491,-0.9465720000,492,-0.3336720000,493,0.2115800000,494,1.6320900000,495,0.1033750000,496,-0.0258553000,497,-0.1414150000,498,1.0668700000,499,-0.0341361000,500,-0.0098338600,501,0.0066572800,502,-1.1845400000,503,-1.8960200000,504,0.2547260000 +292,0,-0.0164133000,547,-1.0000000000,455,-0.9044450000,456,0.6587990000,457,-2.4605900000,458,0.3114280000,459,0.1338940000,460,-1.2711100000,461,-0.1196780000,462,-0.0357267000,463,-0.1963170000,464,-0.2096650000,465,-0.2510010000,466,-1.0790200000,467,-0.1803220000,468,0.0234447000,469,-1.1218600000,470,0.0001309140,471,-0.2072480000,472,-0.0027521200,473,-0.1526850000,474,-0.0309807000,475,-0.1933220000,476,0.0289643000,477,0.0156259000,478,0.0967622000,479,-0.4166170000,480,-0.2244910000,481,0.3685610000,482,0.1697770000,483,-0.3700690000,484,0.0094036300,485,-0.0259486000,486,-0.3273130000,487,0.1151980000,488,0.1447710000,489,-0.0884457000,490,-3.3820400000,491,-0.0699062000,492,-0.0304657000,493,0.1096080000,494,0.5596540000,495,-0.2100140000,496,0.2522140000,497,-0.0102000000,498,0.2131160000,499,3.4107100000,500,0.2521050000,501,-1.0482700000,502,-0.2205900000,503,0.2358380000,504,0.2482960000 +293,0,-0.2254530000,548,-1.0000000000,455,-0.1495920000,456,-0.1251150000,457,-0.2578520000,458,0.0100889000,459,0.1154100000,460,-0.1356960000,461,0.0690184000,462,-0.0782210000,463,0.0477031000,464,0.0635477000,465,0.0570697000,466,0.0376154000,467,-0.0774930000,468,0.0018097100,469,-0.0550796000,470,-0.0045918800,471,-0.2418020000,472,-0.0300450000,473,-0.2019150000,474,-0.0726893000,475,-0.0057520200,476,0.0164765000,477,-0.0339329000,478,-0.0097699000,479,-0.0125908000,480,-0.0559697000,481,0.0197795000,482,-0.1462280000,483,0.0760502000,484,-0.0228945000,485,0.1225830000,486,0.0239719000,487,0.0222225000,488,0.0630138000,489,0.0997296000,490,-0.0768837000,491,-0.0515456000,492,-0.1127510000,493,-0.0476957000,494,-0.0895114000,495,0.0931488000,496,-0.3545230000,497,-0.2339100000,498,-0.1982890000,499,0.2380420000,500,0.1083720000,501,-0.0372895000,502,0.1115400000,503,0.1246850000,504,0.0140624000 +294,0,0.4754830000,549,-1.0000000000,455,-0.0496915000,456,-0.3024060000,457,-0.0037821400,458,0.1678910000,459,-0.5888750000,460,0.0906613000,461,0.0654139000,462,0.0793910000,463,0.3889360000,464,-0.1322750000,465,0.0269988000,466,-0.0067870700,467,-1.3887000000,468,0.0312201000,469,-0.2698370000,470,0.0400171000,471,-0.0914361000,472,-0.0522201000,473,-2.5013900000,474,0.1296900000,475,0.0101704000,476,0.0295737000,477,-0.1854550000,478,-0.1168420000,479,-2.1380100000,480,-0.1771800000,481,0.1325180000,482,-0.0402167000,483,0.0434172000,484,0.0060953500,485,-0.4868330000,486,-0.1637730000,487,0.2050880000,488,0.3126600000,489,0.0224392000,490,0.1979210000,491,0.0317958000,492,0.0971619000,493,-1.9468100000,494,0.0238495000,495,-0.0478494000,496,-1.0161900000,497,-1.4536100000,498,-0.0106475000,499,-0.0436196000,500,-0.1605630000,501,-0.0062345500,502,-0.1491280000,503,0.1023500000,504,-0.2351360000 +295,0,-0.0243152000,550,-1.0000000000,455,0.1051640000,456,-0.0710372000,457,0.3699140000,458,0.0307638000,459,-0.0815971000,460,0.0100803000,461,-0.0115584000,462,0.0125602000,463,0.0907503000,464,-0.0359821000,465,-0.1544400000,466,0.0092115100,467,0.0442541000,468,-0.0019142100,469,-0.0128343000,470,-0.0235987000,471,-0.0108688000,472,0.0090518300,473,0.0363374000,474,-0.0508967000,475,0.1520140000,476,-0.0065522400,477,0.0190118000,478,-0.0033002200,479,-0.0146857000,480,0.0043912000,481,-0.0011502300,482,-0.0440212000,483,-0.0635642000,484,-0.7548750000,485,0.0234625000,486,-0.0008990040,487,0.0296045000,488,0.0219667000,489,-0.0082214200,490,-0.1023610000,491,-0.0286399000,492,-0.0953876000,493,-0.0269653000,494,0.0506572000,495,-0.0408072000,496,0.0518382000,497,0.0126535000,498,0.0518446000,499,-0.2448720000,500,-0.0578858000,501,0.0157393000,502,0.0739886000,503,0.0223953000,504,-0.0316530000 +296,0,0.0127448000,551,-1.0000000000,455,-0.0879451000,456,-4.0937800000,457,0.1122030000,458,0.0371601000,459,-0.5972080000,460,0.0008383540,461,-0.0006763750,462,-0.0206656000,463,0.4816570000,464,0.0176068000,465,0.6580290000,466,-0.0276331000,467,0.1377410000,468,0.0209065000,469,0.0548599000,470,-0.0083554600,471,-0.0000881618,472,0.0248499000,473,0.0890724000,474,0.1465280000,475,-0.3018470000,476,0.0550490000,477,0.0203833000,478,0.0094313800,479,-0.2687150000,480,0.2304350000,481,-0.0143971000,482,-0.4207930000,483,0.2500790000,484,0.0847256000,485,-0.2467100000,486,-0.1149350000,487,0.2498010000,488,0.1098870000,489,-0.2712200000,490,-0.0842221000,491,0.0086731800,492,-0.0848145000,493,-0.1063710000,494,0.4953370000,495,0.3955280000,496,0.0671323000,497,0.0184757000,498,-0.7769180000,499,-0.0947382000,500,-0.0763688000,501,-0.0132389000,502,0.0140835000,503,0.0389416000,504,-0.0175961000 +297,0,-0.0948080000,552,-1.0000000000,455,-0.0075565700,456,0.0517532000,457,-0.1620460000,458,-0.0336418000,459,-0.2083440000,460,-0.0221829000,461,0.0357517000,462,0.0104125000,463,-0.0204967000,464,0.0656780000,465,0.2074210000,466,0.0342932000,467,0.0656861000,468,0.0071498300,469,-0.0236782000,470,0.0367300000,471,-0.0560601000,472,-0.0394792000,473,-0.0763914000,474,0.0847560000,475,0.0662616000,476,-0.1189240000,477,-0.0339996000,478,0.0250163000,479,0.0034234700,480,-0.0723602000,481,-0.0362343000,482,0.0355665000,483,-0.1587610000,484,0.4799990000,485,0.2015830000,486,-0.0107154000,487,0.1135590000,488,-0.1859650000,489,0.0669632000,490,-0.0757720000,491,-0.0031695400,492,-0.1922250000,493,0.0346868000,494,0.0034986600,495,-0.2590320000,496,-0.0550784000,497,-0.0029429200,498,-0.1258470000,499,0.8369860000,500,0.0003282040,501,-0.0800545000,502,0.1923610000,503,-0.0333167000,504,0.0657590000 +298,0,-0.2147200000,553,-1.0000000000,455,-0.2304130000,456,-0.0638164000,457,-0.0148386000,458,-0.0581101000,459,-0.1408640000,460,-0.0569277000,461,0.0104813000,462,-0.0335520000,463,0.3125330000,464,0.0905172000,465,0.2258120000,466,-0.1772680000,467,-0.0468842000,468,0.0417210000,469,0.1216270000,470,0.0317386000,471,-0.2804470000,472,0.0003374240,473,-0.3287560000,474,0.0622714000,475,0.0280483000,476,0.0299599000,477,-0.0098604300,478,0.0071960800,479,0.1767950000,480,0.0680675000,481,0.1736790000,482,-0.2682210000,483,-0.1014000000,484,-1.2491500000,485,-0.2492080000,486,-0.0345517000,487,0.0998358000,488,0.1068510000,489,0.0789002000,490,-0.1529810000,491,-0.0699145000,492,-0.1506960000,493,-0.1626850000,494,-0.3071120000,495,0.0338332000,496,0.1996250000,497,-0.1174590000,498,-0.3121100000,499,-0.0019455800,500,-0.1146910000,501,-0.0438175000,502,-0.1872310000,503,0.3718840000,504,0.1268420000 +299,0,-0.2695890000,554,-1.0000000000,455,-0.1087210000,456,-1.0141000000,457,1.2919100000,458,-0.1195410000,459,-0.0850485000,460,-0.5373930000,461,-0.2072040000,462,0.1086860000,463,-0.9095160000,464,-0.2902090000,465,-0.3426790000,466,-0.1493330000,467,0.0901981000,468,0.0323842000,469,0.2263790000,470,0.0278967000,471,0.0208542000,472,0.0312270000,473,0.4801510000,474,-0.0459075000,475,-0.4312690000,476,0.1786110000,477,0.1981820000,478,-1.0686200000,479,-0.8742060000,480,-0.1980310000,481,0.3004630000,482,-0.4311030000,483,-0.5585560000,484,-0.0319266000,485,-0.0762257000,486,-0.6684170000,487,-0.5230120000,488,-0.0296786000,489,-0.5827940000,490,-1.4441400000,491,-0.0153107000,492,0.5849290000,493,-0.4492070000,494,0.3137900000,495,0.8571200000,496,0.6053500000,497,0.1262560000,498,-1.3407000000,499,-0.0730646000,500,-0.1379880000,501,0.1775380000,502,-0.3769860000,503,0.8095810000,504,0.3026240000 +300,0,-0.0196398000,605,-1.0000000000,555,0.0482032000,556,0.0214049000,557,0.0164872000,558,-0.0144304000,559,-0.0194360000,560,0.0141909000,561,-0.0107964000,562,-0.0185676000,563,0.0017752300,564,0.0086653000,565,0.0150087000,566,0.0004107460,567,-0.0003188940,568,0.0149960000,569,-0.0081246900,570,0.0066240400,571,0.0388279000,572,-0.0143085000,573,0.0272383000,574,0.0259043000,575,-0.0627297000,576,-0.0190460000,577,0.1188400000,578,0.0376236000,579,0.0098572400,580,0.0007387630,581,-0.0119613000,582,0.0087176700,583,0.0262494000,584,0.0168444000,585,-0.0949289000,586,0.0133651000,587,0.0286669000,588,0.0379295000,589,0.0247448000,590,0.0032626500,591,0.0265451000,592,-0.0116947000,593,0.0150157000,594,-0.0083496900,595,-0.0110818000,596,0.0253438000,597,-0.0042005500,598,0.0164152000,599,0.0268306000,600,0.0050537500,601,0.0198959000,602,0.0175853000,603,0.0126248000,604,0.0763071000 +301,0,-0.0208072000,606,-1.0000000000,555,0.0591463000,556,0.0189787000,557,0.1005550000,558,-0.0136165000,559,-0.0173815000,560,0.0124635000,561,-0.0054985800,562,-0.0099527800,563,0.0156469000,564,0.0019368000,565,0.0055644700,566,0.0049485300,567,0.0418960000,568,0.0100627000,569,0.0041181100,570,-0.0002170930,571,0.0249693000,572,-0.0412352000,573,0.0279252000,574,0.0319697000,575,-0.0018367000,576,-0.0140086000,577,0.0024500400,578,0.0203095000,579,0.0093456700,580,0.0370848000,581,-0.0121548000,582,-0.0078219300,583,0.0210940000,584,-0.0070293200,585,-0.0018068800,586,0.0214907000,587,0.0230574000,588,0.0322691000,589,-0.0011835900,590,-0.0023304300,591,0.0221421000,592,-0.0126860000,593,0.0111692000,594,-0.0038254100,595,0.0276789000,596,0.0353907000,597,0.0041155400,598,-0.0083840400,599,0.0027043600,600,0.0228732000,601,0.0109350000,602,0.0175674000,603,0.0076075300,604,0.0006953200 +302,0,0.0233903000,607,-1.0000000000,555,0.0430746000,556,0.0277751000,557,0.0845514000,558,-0.0113077000,559,0.0135056000,560,0.0182742000,561,-0.0203801000,562,-0.0362946000,563,-0.0073532800,564,0.0184071000,565,0.0188359000,566,0.0234712000,567,-0.0018388100,568,0.0187275000,569,-0.0340263000,570,0.0289731000,571,-0.0056373400,572,0.0005669630,573,0.0250275000,574,-0.0260332000,575,0.0057105000,576,-0.0277357000,577,-0.0077046200,578,0.0441217000,579,0.0207970000,580,-0.0049654500,581,-0.0127222000,582,-0.0233031000,583,0.0212614000,584,0.0232154000,585,0.0068213200,586,-0.0045535100,587,0.0274875000,588,0.0317463000,589,-0.0167367000,590,-0.0092262100,591,0.0111783000,592,0.0033710800,593,0.0393508000,594,-0.0003819980,595,0.0379041000,596,0.0155231000,597,-0.0163736000,598,0.0483302000,599,-0.0130692000,600,-0.0047852300,601,0.0118624000,602,0.0079455100,603,0.0436066000,604,-0.0055178900 +303,0,-0.0200349000,608,-1.0000000000,555,0.0596014000,556,0.0161775000,557,0.0846238000,558,-0.0169586000,559,-0.0092740300,560,0.0114406000,561,-0.0052446900,562,-0.0061833500,563,0.0187785000,564,0.0023030700,565,0.0087063900,566,-0.0033524200,567,0.0484217000,568,0.0013386800,569,0.0235373000,570,-0.0221036000,571,0.0378339000,572,-0.0491677000,573,0.0225108000,574,0.0522568000,575,-0.0001412860,576,-0.0063540700,577,-0.0001626940,578,0.0082936400,579,-0.0003320220,580,0.0439381000,581,-0.0101226000,582,-0.0046628600,583,0.0303425000,584,0.0168267000,585,0.0010895300,586,0.0203936000,587,0.0248076000,588,0.0293401000,589,0.0022615400,590,-0.0002622060,591,0.0228189000,592,-0.0163170000,593,0.0010220600,594,-0.0286143000,595,0.0219210000,596,0.0311769000,597,0.0028522000,598,-0.0186896000,599,0.0023882100,600,0.0302242000,601,0.0113569000,602,0.0176900000,603,0.0026044000,604,-0.0024269700 +304,0,0.0164280000,609,-1.0000000000,555,0.0153740000,556,0.0368643000,557,0.0399378000,558,-0.0056697600,559,0.0351726000,560,0.0169386000,561,-0.0154016000,562,0.0127779000,563,-0.0123769000,564,0.0597990000,565,-0.0038347600,566,-0.0188887000,567,-0.0087566000,568,-0.0110788000,569,-0.0766591000,570,0.0318574000,571,0.0354110000,572,-0.0027275600,573,0.0095188200,574,-0.0065246300,575,-0.0005453990,576,0.0011685600,577,-0.0026696500,578,-0.0000857489,579,0.0124294000,580,-0.0008151100,581,-0.0104284000,582,0.0180195000,583,0.0071293000,584,-0.0008733680,585,0.0033800300,586,0.0235192000,587,0.0188219000,588,0.0159221000,589,-0.0107305000,590,0.0170091000,591,0.0168865000,592,0.0291478000,593,0.0041288600,594,0.0220035000,595,0.0290372000,596,0.0036903000,597,-0.0324116000,598,-0.0170031000,599,-0.0218195000,600,0.0132942000,601,0.0142534000,602,0.0067202000,603,0.0307370000,604,0.0012392000 +305,2,0.0000000000,605,1.0000000000,606,-1.0000000000 +306,2,0.0000000000,605,1.0000000000,607,-1.0000000000 +307,2,0.0000000000,605,1.0000000000,608,-1.0000000000 +308,2,0.0000000000,605,1.0000000000,609,-1.0000000000 +0,absoluteValue,55,5 +1,absoluteValue,56,6 +2,absoluteValue,57,7 +3,absoluteValue,58,8 +4,absoluteValue,59,9 +5,absoluteValue,60,10 +6,absoluteValue,61,11 +7,absoluteValue,62,12 +8,absoluteValue,63,13 +9,absoluteValue,64,14 +10,absoluteValue,65,15 +11,absoluteValue,66,16 +12,absoluteValue,67,17 +13,absoluteValue,68,18 +14,absoluteValue,69,19 +15,absoluteValue,70,20 +16,absoluteValue,71,21 +17,absoluteValue,72,22 +18,absoluteValue,73,23 +19,absoluteValue,74,24 +20,absoluteValue,75,25 +21,absoluteValue,76,26 +22,absoluteValue,77,27 +23,absoluteValue,78,28 +24,absoluteValue,79,29 +25,absoluteValue,80,30 +26,absoluteValue,81,31 +27,absoluteValue,82,32 +28,absoluteValue,83,33 +29,absoluteValue,84,34 +30,absoluteValue,85,35 +31,absoluteValue,86,36 +32,absoluteValue,87,37 +33,absoluteValue,88,38 +34,absoluteValue,89,39 +35,absoluteValue,90,40 +36,absoluteValue,91,41 +37,absoluteValue,92,42 +38,absoluteValue,93,43 +39,absoluteValue,94,44 +40,absoluteValue,95,45 +41,absoluteValue,96,46 +42,absoluteValue,97,47 +43,absoluteValue,98,48 +44,absoluteValue,99,49 +45,absoluteValue,100,50 +46,absoluteValue,101,51 +47,absoluteValue,102,52 +48,absoluteValue,103,53 +49,absoluteValue,104,54 +50,absoluteValue,155,105 +51,absoluteValue,156,106 +52,absoluteValue,157,107 +53,absoluteValue,158,108 +54,absoluteValue,159,109 +55,absoluteValue,160,110 +56,absoluteValue,161,111 +57,absoluteValue,162,112 +58,absoluteValue,163,113 +59,absoluteValue,164,114 +60,absoluteValue,165,115 +61,absoluteValue,166,116 +62,absoluteValue,167,117 +63,absoluteValue,168,118 +64,absoluteValue,169,119 +65,absoluteValue,170,120 +66,absoluteValue,171,121 +67,absoluteValue,172,122 +68,absoluteValue,173,123 +69,absoluteValue,174,124 +70,absoluteValue,175,125 +71,absoluteValue,176,126 +72,absoluteValue,177,127 +73,absoluteValue,178,128 +74,absoluteValue,179,129 +75,absoluteValue,180,130 +76,absoluteValue,181,131 +77,absoluteValue,182,132 +78,absoluteValue,183,133 +79,absoluteValue,184,134 +80,absoluteValue,185,135 +81,absoluteValue,186,136 +82,absoluteValue,187,137 +83,absoluteValue,188,138 +84,absoluteValue,189,139 +85,absoluteValue,190,140 +86,absoluteValue,191,141 +87,absoluteValue,192,142 +88,absoluteValue,193,143 +89,absoluteValue,194,144 +90,absoluteValue,195,145 +91,absoluteValue,196,146 +92,absoluteValue,197,147 +93,absoluteValue,198,148 +94,absoluteValue,199,149 +95,absoluteValue,200,150 +96,absoluteValue,201,151 +97,absoluteValue,202,152 +98,absoluteValue,203,153 +99,absoluteValue,204,154 +100,absoluteValue,255,205 +101,absoluteValue,256,206 +102,absoluteValue,257,207 +103,absoluteValue,258,208 +104,absoluteValue,259,209 +105,absoluteValue,260,210 +106,absoluteValue,261,211 +107,absoluteValue,262,212 +108,absoluteValue,263,213 +109,absoluteValue,264,214 +110,absoluteValue,265,215 +111,absoluteValue,266,216 +112,absoluteValue,267,217 +113,absoluteValue,268,218 +114,absoluteValue,269,219 +115,absoluteValue,270,220 +116,absoluteValue,271,221 +117,absoluteValue,272,222 +118,absoluteValue,273,223 +119,absoluteValue,274,224 +120,absoluteValue,275,225 +121,absoluteValue,276,226 +122,absoluteValue,277,227 +123,absoluteValue,278,228 +124,absoluteValue,279,229 +125,absoluteValue,280,230 +126,absoluteValue,281,231 +127,absoluteValue,282,232 +128,absoluteValue,283,233 +129,absoluteValue,284,234 +130,absoluteValue,285,235 +131,absoluteValue,286,236 +132,absoluteValue,287,237 +133,absoluteValue,288,238 +134,absoluteValue,289,239 +135,absoluteValue,290,240 +136,absoluteValue,291,241 +137,absoluteValue,292,242 +138,absoluteValue,293,243 +139,absoluteValue,294,244 +140,absoluteValue,295,245 +141,absoluteValue,296,246 +142,absoluteValue,297,247 +143,absoluteValue,298,248 +144,absoluteValue,299,249 +145,absoluteValue,300,250 +146,absoluteValue,301,251 +147,absoluteValue,302,252 +148,absoluteValue,303,253 +149,absoluteValue,304,254 +150,absoluteValue,355,305 +151,absoluteValue,356,306 +152,absoluteValue,357,307 +153,absoluteValue,358,308 +154,absoluteValue,359,309 +155,absoluteValue,360,310 +156,absoluteValue,361,311 +157,absoluteValue,362,312 +158,absoluteValue,363,313 +159,absoluteValue,364,314 +160,absoluteValue,365,315 +161,absoluteValue,366,316 +162,absoluteValue,367,317 +163,absoluteValue,368,318 +164,absoluteValue,369,319 +165,absoluteValue,370,320 +166,absoluteValue,371,321 +167,absoluteValue,372,322 +168,absoluteValue,373,323 +169,absoluteValue,374,324 +170,absoluteValue,375,325 +171,absoluteValue,376,326 +172,absoluteValue,377,327 +173,absoluteValue,378,328 +174,absoluteValue,379,329 +175,absoluteValue,380,330 +176,absoluteValue,381,331 +177,absoluteValue,382,332 +178,absoluteValue,383,333 +179,absoluteValue,384,334 +180,absoluteValue,385,335 +181,absoluteValue,386,336 +182,absoluteValue,387,337 +183,absoluteValue,388,338 +184,absoluteValue,389,339 +185,absoluteValue,390,340 +186,absoluteValue,391,341 +187,absoluteValue,392,342 +188,absoluteValue,393,343 +189,absoluteValue,394,344 +190,absoluteValue,395,345 +191,absoluteValue,396,346 +192,absoluteValue,397,347 +193,absoluteValue,398,348 +194,absoluteValue,399,349 +195,absoluteValue,400,350 +196,absoluteValue,401,351 +197,absoluteValue,402,352 +198,absoluteValue,403,353 +199,absoluteValue,404,354 +200,absoluteValue,455,405 +201,absoluteValue,456,406 +202,absoluteValue,457,407 +203,absoluteValue,458,408 +204,absoluteValue,459,409 +205,absoluteValue,460,410 +206,absoluteValue,461,411 +207,absoluteValue,462,412 +208,absoluteValue,463,413 +209,absoluteValue,464,414 +210,absoluteValue,465,415 +211,absoluteValue,466,416 +212,absoluteValue,467,417 +213,absoluteValue,468,418 +214,absoluteValue,469,419 +215,absoluteValue,470,420 +216,absoluteValue,471,421 +217,absoluteValue,472,422 +218,absoluteValue,473,423 +219,absoluteValue,474,424 +220,absoluteValue,475,425 +221,absoluteValue,476,426 +222,absoluteValue,477,427 +223,absoluteValue,478,428 +224,absoluteValue,479,429 +225,absoluteValue,480,430 +226,absoluteValue,481,431 +227,absoluteValue,482,432 +228,absoluteValue,483,433 +229,absoluteValue,484,434 +230,absoluteValue,485,435 +231,absoluteValue,486,436 +232,absoluteValue,487,437 +233,absoluteValue,488,438 +234,absoluteValue,489,439 +235,absoluteValue,490,440 +236,absoluteValue,491,441 +237,absoluteValue,492,442 +238,absoluteValue,493,443 +239,absoluteValue,494,444 +240,absoluteValue,495,445 +241,absoluteValue,496,446 +242,absoluteValue,497,447 +243,absoluteValue,498,448 +244,absoluteValue,499,449 +245,absoluteValue,500,450 +246,absoluteValue,501,451 +247,absoluteValue,502,452 +248,absoluteValue,503,453 +249,absoluteValue,504,454 +250,absoluteValue,555,505 +251,absoluteValue,556,506 +252,absoluteValue,557,507 +253,absoluteValue,558,508 +254,absoluteValue,559,509 +255,absoluteValue,560,510 +256,absoluteValue,561,511 +257,absoluteValue,562,512 +258,absoluteValue,563,513 +259,absoluteValue,564,514 +260,absoluteValue,565,515 +261,absoluteValue,566,516 +262,absoluteValue,567,517 +263,absoluteValue,568,518 +264,absoluteValue,569,519 +265,absoluteValue,570,520 +266,absoluteValue,571,521 +267,absoluteValue,572,522 +268,absoluteValue,573,523 +269,absoluteValue,574,524 +270,absoluteValue,575,525 +271,absoluteValue,576,526 +272,absoluteValue,577,527 +273,absoluteValue,578,528 +274,absoluteValue,579,529 +275,absoluteValue,580,530 +276,absoluteValue,581,531 +277,absoluteValue,582,532 +278,absoluteValue,583,533 +279,absoluteValue,584,534 +280,absoluteValue,585,535 +281,absoluteValue,586,536 +282,absoluteValue,587,537 +283,absoluteValue,588,538 +284,absoluteValue,589,539 +285,absoluteValue,590,540 +286,absoluteValue,591,541 +287,absoluteValue,592,542 +288,absoluteValue,593,543 +289,absoluteValue,594,544 +290,absoluteValue,595,545 +291,absoluteValue,596,546 +292,absoluteValue,597,547 +293,absoluteValue,598,548 +294,absoluteValue,599,549 +295,absoluteValue,600,550 +296,absoluteValue,601,551 +297,absoluteValue,602,552 +298,absoluteValue,603,553 +299,absoluteValue,604,554 \ No newline at end of file diff --git a/regress/regress1/input_queries/ACASXU_maxtest1.ipq b/regress/regress1/input_queries/ACASXU_maxtest1.ipq new file mode 100644 index 0000000000..689939c9de --- /dev/null +++ b/regress/regress1/input_queries/ACASXU_maxtest1.ipq @@ -0,0 +1,939 @@ +612 +307 +7 +306 +302 +5 +0,0 +1,1 +2,2 +3,3 +4,4 +5 +0,605 +1,606 +2,607 +3,608 +4,609 +0,-0.3035311561 +1,-0.0095492966 +2,0.0000000000 +3,0.3181818182 +4,0.0833333333 +55,0.0000000000 +56,0.0000000000 +57,0.0000000000 +58,0.0000000000 +59,0.0000000000 +60,0.0000000000 +61,0.0000000000 +62,0.0000000000 +63,0.0000000000 +64,0.0000000000 +65,0.0000000000 +66,0.0000000000 +67,0.0000000000 +68,0.0000000000 +69,0.0000000000 +70,0.0000000000 +71,0.0000000000 +72,0.0000000000 +73,0.0000000000 +74,0.0000000000 +75,0.0000000000 +76,0.0000000000 +77,0.0000000000 +78,0.0000000000 +79,0.0000000000 +80,0.0000000000 +81,0.0000000000 +82,0.0000000000 +83,0.0000000000 +84,0.0000000000 +85,0.0000000000 +86,0.0000000000 +87,0.0000000000 +88,0.0000000000 +89,0.0000000000 +90,0.0000000000 +91,0.0000000000 +92,0.0000000000 +93,0.0000000000 +94,0.0000000000 +95,0.0000000000 +96,0.0000000000 +97,0.0000000000 +98,0.0000000000 +99,0.0000000000 +100,0.0000000000 +101,0.0000000000 +102,0.0000000000 +103,0.0000000000 +104,0.0000000000 +155,0.0000000000 +156,0.0000000000 +157,0.0000000000 +158,0.0000000000 +159,0.0000000000 +160,0.0000000000 +161,0.0000000000 +162,0.0000000000 +163,0.0000000000 +164,0.0000000000 +165,0.0000000000 +166,0.0000000000 +167,0.0000000000 +168,0.0000000000 +169,0.0000000000 +170,0.0000000000 +171,0.0000000000 +172,0.0000000000 +173,0.0000000000 +174,0.0000000000 +175,0.0000000000 +176,0.0000000000 +177,0.0000000000 +178,0.0000000000 +179,0.0000000000 +180,0.0000000000 +181,0.0000000000 +182,0.0000000000 +183,0.0000000000 +184,0.0000000000 +185,0.0000000000 +186,0.0000000000 +187,0.0000000000 +188,0.0000000000 +189,0.0000000000 +190,0.0000000000 +191,0.0000000000 +192,0.0000000000 +193,0.0000000000 +194,0.0000000000 +195,0.0000000000 +196,0.0000000000 +197,0.0000000000 +198,0.0000000000 +199,0.0000000000 +200,0.0000000000 +201,0.0000000000 +202,0.0000000000 +203,0.0000000000 +204,0.0000000000 +255,0.0000000000 +256,0.0000000000 +257,0.0000000000 +258,0.0000000000 +259,0.0000000000 +260,0.0000000000 +261,0.0000000000 +262,0.0000000000 +263,0.0000000000 +264,0.0000000000 +265,0.0000000000 +266,0.0000000000 +267,0.0000000000 +268,0.0000000000 +269,0.0000000000 +270,0.0000000000 +271,0.0000000000 +272,0.0000000000 +273,0.0000000000 +274,0.0000000000 +275,0.0000000000 +276,0.0000000000 +277,0.0000000000 +278,0.0000000000 +279,0.0000000000 +280,0.0000000000 +281,0.0000000000 +282,0.0000000000 +283,0.0000000000 +284,0.0000000000 +285,0.0000000000 +286,0.0000000000 +287,0.0000000000 +288,0.0000000000 +289,0.0000000000 +290,0.0000000000 +291,0.0000000000 +292,0.0000000000 +293,0.0000000000 +294,0.0000000000 +295,0.0000000000 +296,0.0000000000 +297,0.0000000000 +298,0.0000000000 +299,0.0000000000 +300,0.0000000000 +301,0.0000000000 +302,0.0000000000 +303,0.0000000000 +304,0.0000000000 +355,0.0000000000 +356,0.0000000000 +357,0.0000000000 +358,0.0000000000 +359,0.0000000000 +360,0.0000000000 +361,0.0000000000 +362,0.0000000000 +363,0.0000000000 +364,0.0000000000 +365,0.0000000000 +366,0.0000000000 +367,0.0000000000 +368,0.0000000000 +369,0.0000000000 +370,0.0000000000 +371,0.0000000000 +372,0.0000000000 +373,0.0000000000 +374,0.0000000000 +375,0.0000000000 +376,0.0000000000 +377,0.0000000000 +378,0.0000000000 +379,0.0000000000 +380,0.0000000000 +381,0.0000000000 +382,0.0000000000 +383,0.0000000000 +384,0.0000000000 +385,0.0000000000 +386,0.0000000000 +387,0.0000000000 +388,0.0000000000 +389,0.0000000000 +390,0.0000000000 +391,0.0000000000 +392,0.0000000000 +393,0.0000000000 +394,0.0000000000 +395,0.0000000000 +396,0.0000000000 +397,0.0000000000 +398,0.0000000000 +399,0.0000000000 +400,0.0000000000 +401,0.0000000000 +402,0.0000000000 +403,0.0000000000 +404,0.0000000000 +455,0.0000000000 +456,0.0000000000 +457,0.0000000000 +458,0.0000000000 +459,0.0000000000 +460,0.0000000000 +461,0.0000000000 +462,0.0000000000 +463,0.0000000000 +464,0.0000000000 +465,0.0000000000 +466,0.0000000000 +467,0.0000000000 +468,0.0000000000 +469,0.0000000000 +470,0.0000000000 +471,0.0000000000 +472,0.0000000000 +473,0.0000000000 +474,0.0000000000 +475,0.0000000000 +476,0.0000000000 +477,0.0000000000 +478,0.0000000000 +479,0.0000000000 +480,0.0000000000 +481,0.0000000000 +482,0.0000000000 +483,0.0000000000 +484,0.0000000000 +485,0.0000000000 +486,0.0000000000 +487,0.0000000000 +488,0.0000000000 +489,0.0000000000 +490,0.0000000000 +491,0.0000000000 +492,0.0000000000 +493,0.0000000000 +494,0.0000000000 +495,0.0000000000 +496,0.0000000000 +497,0.0000000000 +498,0.0000000000 +499,0.0000000000 +500,0.0000000000 +501,0.0000000000 +502,0.0000000000 +503,0.0000000000 +504,0.0000000000 +555,0.0000000000 +556,0.0000000000 +557,0.0000000000 +558,0.0000000000 +559,0.0000000000 +560,0.0000000000 +561,0.0000000000 +562,0.0000000000 +563,0.0000000000 +564,0.0000000000 +565,0.0000000000 +566,0.0000000000 +567,0.0000000000 +568,0.0000000000 +569,0.0000000000 +570,0.0000000000 +571,0.0000000000 +572,0.0000000000 +573,0.0000000000 +574,0.0000000000 +575,0.0000000000 +576,0.0000000000 +577,0.0000000000 +578,0.0000000000 +579,0.0000000000 +580,0.0000000000 +581,0.0000000000 +582,0.0000000000 +583,0.0000000000 +584,0.0000000000 +585,0.0000000000 +586,0.0000000000 +587,0.0000000000 +588,0.0000000000 +589,0.0000000000 +590,0.0000000000 +591,0.0000000000 +592,0.0000000000 +593,0.0000000000 +594,0.0000000000 +595,0.0000000000 +596,0.0000000000 +597,0.0000000000 +598,0.0000000000 +599,0.0000000000 +600,0.0000000000 +601,0.0000000000 +602,0.0000000000 +603,0.0000000000 +604,0.0000000000 +610,-1.0000000000 +611,-0.5000000000 +0,-0.2985528119 +1,0.0095492966 +2,0.0000000000 +3,0.5000000000 +4,0.1666666667 +610,1.0000000000 +611,1.0000000000 +0,0,-0.2054480000,5,-1.0000000000,0,-0.0791752000,1,-0.8055860000,2,-0.0231979000,3,0.6492470000,4,-0.3977650000 +1,0,0.1529320000,6,-1.0000000000,0,0.0831648000,1,-0.0053629600,2,-0.0106399000,3,0.2752830000,4,-1.1186200000 +2,0,0.2973230000,7,-1.0000000000,0,-0.0121543000,1,-0.0225282000,2,0.0030777100,3,0.1739610000,4,-0.9893810000 +3,0,0.0700899000,8,-1.0000000000,0,-0.0188319000,1,-0.5919010000,2,0.5744220000,3,0.0133294000,4,0.1571980000 +4,0,0.2304720000,9,-1.0000000000,0,0.0076183100,1,-0.6836500000,2,0.7691090000,3,0.0194096000,4,0.0625865000 +5,0,-0.0244775000,10,-1.0000000000,0,-0.0146541000,1,0.4486870000,2,-0.0093057400,3,0.0767494000,4,-0.1252530000 +6,0,0.0623234000,11,-1.0000000000,0,0.0254960000,1,-0.1224730000,2,0.2848140000,3,-0.1630650000,4,0.3784600000 +7,0,0.0104626000,12,-1.0000000000,0,-0.0175174000,1,-0.6880390000,2,-0.7520550000,3,0.1508610000,4,0.0586098000 +8,0,0.2332700000,13,-1.0000000000,0,-0.8379460000,1,0.0050885600,2,0.0025487500,3,0.0002986560,4,0.0004785150 +9,0,0.0381586000,14,-1.0000000000,0,-0.0304969000,1,0.3730200000,2,0.3238480000,3,0.2062570000,4,-0.0738219000 +10,0,0.1047680000,15,-1.0000000000,0,0.0110145000,1,0.2031390000,2,-0.0068470500,3,0.0053478900,4,-0.1776480000 +11,0,0.2408100000,16,-1.0000000000,0,0.1835780000,1,-0.1595540000,2,-0.0217952000,3,-0.0760196000,4,-0.4311610000 +12,0,-0.0008148160,17,-1.0000000000,0,-0.6010810000,1,-0.3745120000,2,0.1210800000,3,0.1110870000,4,0.0674687000 +13,0,-0.0571169000,18,-1.0000000000,0,0.4389810000,1,-0.0260015000,2,0.0048729800,3,0.0094517700,4,-0.1027970000 +14,0,0.3082840000,19,-1.0000000000,0,-0.2567360000,1,0.0414723000,2,0.0250760000,3,0.0229962000,4,-0.6246530000 +15,0,-0.1033020000,20,-1.0000000000,0,0.0429594000,1,-0.2339590000,2,0.7096910000,3,0.3906000000,4,-0.0460539000 +16,0,0.0897029000,21,-1.0000000000,0,-0.0273826000,1,0.3947650000,2,0.0318927000,3,-0.1309280000,4,0.0309174000 +17,0,0.1101810000,22,-1.0000000000,0,0.0388179000,1,0.8747810000,2,0.0088845500,3,0.1797430000,4,-0.4227310000 +18,0,-0.0149063000,23,-1.0000000000,0,0.0048401700,1,-0.2557420000,2,0.0069871900,3,0.0155484000,4,0.0028587300 +19,0,-0.0765153000,24,-1.0000000000,0,0.0531157000,1,0.5544620000,2,-1.0218200000,3,-0.0742762000,4,0.5136160000 +20,0,-0.0765613000,25,-1.0000000000,0,-0.0031590700,1,0.6095360000,2,0.0013275300,3,-0.0172786000,4,0.1178370000 +21,0,0.0004810300,26,-1.0000000000,0,-0.0082555200,1,0.0408410000,2,0.2628560000,3,-0.0570148000,4,0.0756399000 +22,0,0.2362440000,27,-1.0000000000,0,-1.7314200000,1,-0.0066520500,2,0.0032055700,3,-0.0045489500,4,0.0002897680 +23,0,-0.0177100000,28,-1.0000000000,0,-0.0025147900,1,0.0119069000,2,-0.2560870000,3,0.0175635000,4,-0.0083499100 +24,0,-0.0496335000,29,-1.0000000000,0,0.1087090000,1,0.1347450000,2,0.0235604000,3,0.3925300000,4,-0.3658400000 +25,0,-0.0515165000,30,-1.0000000000,0,-0.0040855300,1,-0.0062859000,2,-0.0264389000,3,-0.2799700000,4,0.0833438000 +26,0,-0.0934228000,31,-1.0000000000,0,-0.0067601800,1,-0.0171673000,2,-0.0100484000,3,0.2252690000,4,-0.4766770000 +27,0,0.0831395000,32,-1.0000000000,0,0.1761150000,1,-0.0155748000,2,-0.0590033000,3,-0.2481870000,4,-0.0101645000 +28,0,0.0178516000,33,-1.0000000000,0,-0.0084532000,1,0.0084347300,2,0.0050880900,3,-0.0635845000,4,-0.0696720000 +29,0,0.1648340000,34,-1.0000000000,0,0.0144315000,1,0.7180930000,2,-0.3361720000,3,0.0271960000,4,-0.0351015000 +30,0,0.2495240000,35,-1.0000000000,0,0.0517675000,1,0.0500177000,2,0.0037371000,3,-0.6547200000,4,-0.1800860000 +31,0,0.1243340000,36,-1.0000000000,0,0.4096030000,1,0.0249574000,2,0.0109672000,3,-0.0243713000,4,-0.4344060000 +32,0,0.1284580000,37,-1.0000000000,0,0.0337989000,1,0.0349239000,2,0.0666955000,3,-0.1017380000,4,-0.2172920000 +33,0,-0.0846317000,38,-1.0000000000,0,-0.0578848000,1,0.0039348500,2,-0.0026977100,3,0.1007310000,4,0.1068210000 +34,0,-0.0463441000,39,-1.0000000000,0,-0.1122710000,1,0.0036651300,2,-0.0031566900,3,-0.1475400000,4,0.2992880000 +35,0,0.0056889700,40,-1.0000000000,0,-0.0194027000,1,-0.0051500700,2,-0.7882100000,3,0.0099286400,4,0.0017351000 +36,0,0.0164534000,41,-1.0000000000,0,-0.0271006000,1,0.0004011400,2,-0.0058976400,3,0.0014549100,4,-0.0033024400 +37,0,-0.2154370000,42,-1.0000000000,0,0.0116766000,1,0.5360090000,2,-0.0275709000,3,0.1534740000,4,0.1768590000 +38,0,0.1954830000,43,-1.0000000000,0,0.0362883000,1,-0.8128280000,2,0.5142420000,3,0.0168309000,4,-0.1046500000 +39,0,-0.0681447000,44,-1.0000000000,0,-0.0285223000,1,0.0292113000,2,-0.4637190000,3,0.0711289000,4,0.0201273000 +40,0,0.2583480000,45,-1.0000000000,0,-0.0025733800,1,0.6322630000,2,-0.6442320000,3,0.0718871000,4,-0.0048032500 +41,0,0.0026015500,46,-1.0000000000,0,-0.0029935500,1,-0.0614648000,2,-0.1561560000,3,-0.0891657000,4,0.0621360000 +42,0,-0.0235460000,47,-1.0000000000,0,0.0013785500,1,-0.0527378000,2,0.0882954000,3,0.0677458000,4,-0.1289760000 +43,0,0.0087571400,48,-1.0000000000,0,0.0036954700,1,-0.5934380000,2,0.0018585100,3,0.0032748000,4,-0.0071570500 +44,0,-0.0578874000,49,-1.0000000000,0,-0.0011646800,1,-0.0768908000,2,-0.1464710000,3,0.1298230000,4,-0.0837275000 +45,0,0.1022310000,50,-1.0000000000,0,-0.0296256000,1,0.7594090000,2,-0.7770650000,3,0.0833563000,4,0.0968516000 +46,0,0.0173825000,51,-1.0000000000,0,0.5291000000,1,-0.0275017000,2,0.0058337700,3,-0.0067125200,4,0.0601098000 +47,0,0.0130097000,52,-1.0000000000,0,0.0013095100,1,0.0181797000,2,-0.0036293100,3,0.0010754900,4,-0.0008989490 +48,0,-0.1750940000,53,-1.0000000000,0,0.6483640000,1,0.0113473000,2,0.0106991000,3,0.0001565870,4,-0.0024390300 +49,0,0.0730618000,54,-1.0000000000,0,-0.7588970000,1,-0.0256498000,2,-0.0794754000,3,0.0886265000,4,0.1716210000 +50,0,-0.4182170000,105,-1.0000000000,55,-1.6624000000,56,0.6004090000,57,0.8372300000,58,-0.1870500000,59,-0.6998830000,60,-1.2747500000,61,-0.1579120000,62,-0.6729910000,63,-4.3085500000,64,-0.4881740000,65,-1.0398000000,66,-1.9741500000,67,-1.7593300000,68,-3.1740700000,69,0.8109950000,70,0.1834520000,71,-1.1939600000,72,-1.2180600000,73,-1.7700400000,74,0.2529610000,75,-1.5107600000,76,0.3082350000,77,0.4983270000,78,0.1400340000,79,-2.2019300000,80,0.5134960000,81,0.3912620000,82,-0.4004330000,83,0.4892660000,84,-2.3276300000,85,0.7123660000,86,-2.4744200000,87,0.6182650000,88,-8.6246200000,89,-2.9747800000,90,0.0508015000,91,0.0440257000,92,-1.7773300000,93,-0.9439900000,94,0.0742073000,95,0.2430550000,96,0.0355990000,97,-0.2791670000,98,-1.9136300000,99,-0.0304686000,100,-0.4192450000,101,-0.0511673000,102,0.0568435000,103,-4.1370200000,104,-2.6287400000 +51,0,-0.1081640000,106,-1.0000000000,55,0.3174950000,56,0.1995620000,57,0.4448690000,58,1.0362500000,59,0.4610630000,60,0.1051500000,61,0.5966680000,62,-0.2356500000,63,-0.9351770000,64,-0.6219230000,65,-4.3542600000,66,-0.2877850000,67,-0.0422882000,68,-0.4057120000,69,1.2653900000,70,0.0730596000,71,-3.3745800000,72,-0.7922290000,73,-1.4243700000,74,0.5185740000,75,-1.9249900000,76,-0.2728920000,77,0.5435370000,78,-0.1422880000,79,-0.1110660000,80,-0.4426040000,81,0.3129530000,82,-0.0766076000,83,0.0645864000,84,-2.6583600000,85,0.3465350000,86,-0.0254293000,87,0.1365470000,88,0.2919480000,89,-0.3019180000,90,0.0501793000,91,0.0349753000,92,-0.3148990000,93,-1.0354000000,94,-0.4611410000,95,0.8311870000,96,-0.5693990000,97,0.3454510000,98,-2.5182100000,99,-0.2955640000,100,0.4511620000,101,0.2347100000,102,0.0128539000,103,0.0554303000,104,0.0381163000 +52,0,-0.0004284710,107,-1.0000000000,55,0.0074802600,56,-0.0328552000,57,-0.0342654000,58,-0.0346346000,59,0.0125948000,60,0.0097626900,61,-0.0094603100,62,-0.0012744400,63,0.0054738200,64,0.0426337000,65,-0.0521494000,66,0.0280824000,67,-0.0480202000,68,-0.0402214000,69,-0.0078035800,70,-0.0005294390,71,0.0145430000,72,0.0446493000,73,-0.0641004000,74,-0.0392327000,75,-0.0472644000,76,0.0054104900,77,-0.0034759000,78,-0.0132844000,79,-0.0308557000,80,0.0272854000,81,0.0193407000,82,0.0014767000,83,-0.0418737000,84,-0.0083420700,85,-0.0382358000,86,0.0355996000,87,-0.0334360000,88,-0.0644004000,89,-0.0567421000,90,0.0184382000,91,0.0057656100,92,-0.0127343000,93,-0.0192676000,94,-0.0171769000,95,0.0093419100,96,0.0356295000,97,-0.0344266000,98,0.0231784000,99,-0.0183199000,100,-0.0407840000,101,-0.0113816000,102,0.0063561700,103,0.0151175000,104,0.0234867000 +53,0,0.0734899000,108,-1.0000000000,55,0.1313590000,56,0.0659280000,57,-0.1257380000,58,-0.5108100000,59,-0.0972882000,60,0.2943260000,61,-0.4491410000,62,-0.2388180000,63,0.9940520000,64,-0.0332319000,65,0.4876550000,66,-0.1016230000,67,0.1232590000,68,0.2393460000,69,-0.1420190000,70,0.2778030000,71,0.2877650000,72,-0.0226604000,73,0.2903250000,74,-0.3631710000,75,0.4222540000,76,-0.1991280000,77,-0.1528280000,78,0.7679850000,79,-0.6174030000,80,0.1464470000,81,0.0134495000,82,-0.1566590000,83,-0.1117250000,84,0.2110320000,85,-0.0774859000,86,-0.0100138000,87,0.5399600000,88,-0.3891150000,89,0.2678830000,90,0.4907810000,91,-0.0059242700,92,0.1230760000,93,0.4687570000,94,0.6674990000,95,0.6879880000,96,-0.6520940000,97,-0.0614384000,98,0.0370788000,99,0.0628399000,100,-0.6224220000,101,0.0192683000,102,-0.0053712300,103,-0.0261650000,104,-0.0919633000 +54,0,-0.0058133400,109,-1.0000000000,55,0.0428962000,56,-0.0374688000,57,0.1602030000,58,-0.6138390000,59,-1.3097100000,60,0.0645085000,61,-0.2055750000,62,0.3088590000,63,2.3230800000,64,0.6836420000,65,0.1779800000,66,0.0598207000,67,0.0980812000,68,-0.0159498000,69,-1.2018500000,70,0.0407716000,71,-0.2633440000,72,-0.0309549000,73,0.6703620000,74,-0.1129780000,75,0.7558720000,76,0.6788930000,77,0.1493120000,78,-0.1400250000,79,-0.1202210000,80,-0.0062980800,81,0.0270603000,82,0.1593440000,83,-0.2638400000,84,0.8209530000,85,-0.1439370000,86,-0.0483052000,87,0.2127200000,88,0.0515290000,89,0.5176780000,90,0.0601272000,91,0.0340761000,92,-0.1097520000,93,-0.3934340000,94,0.2243980000,95,0.2362940000,96,-0.6035430000,97,0.0772027000,98,0.4009400000,99,-0.2989940000,100,-0.3847300000,101,-0.1938540000,102,0.0180793000,103,0.3896010000,104,0.1535880000 +55,0,0.5592280000,110,-1.0000000000,55,0.2429370000,56,0.2846820000,57,0.5714830000,58,1.0635200000,59,-0.1074600000,60,-0.7460130000,61,-1.0700000000,62,0.1113780000,63,-2.7344000000,64,0.6713880000,65,-0.6248320000,66,1.1104200000,67,-0.3600250000,68,-0.4266200000,69,-0.3134830000,70,-0.5678130000,71,1.0375100000,72,-0.0117551000,73,-1.5216800000,74,0.8986640000,75,0.5930030000,76,1.5803100000,77,0.2308090000,78,0.3675670000,79,0.1339710000,80,-0.2067600000,81,-0.3484050000,82,-0.2222910000,83,-0.2533220000,84,-1.4575700000,85,-0.3432930000,86,0.6743290000,87,-1.5933000000,88,-3.3484900000,89,-0.7789380000,90,0.4322130000,91,0.0358610000,92,0.7193280000,93,-0.4130540000,94,0.3003560000,95,-0.6317340000,96,0.0318712000,97,0.1897090000,98,-2.5000500000,99,0.4059610000,100,1.1535300000,101,0.1375800000,102,-0.0212919000,103,-0.5273450000,104,0.6411540000 +56,0,0.2120990000,111,-1.0000000000,55,0.0901192000,56,-0.0277403000,57,-0.2157280000,58,-0.2566550000,59,0.0365804000,60,0.1528680000,61,-0.0344422000,62,-0.3327700000,63,3.3815600000,64,-0.6073630000,65,0.2528050000,66,0.3189960000,67,0.5933180000,68,0.0997416000,69,0.0264456000,70,0.0213670000,71,0.3381690000,72,0.6735670000,73,0.2876650000,74,-0.1634720000,75,0.4146830000,76,0.2888670000,77,0.1223830000,78,0.0309409000,79,-0.5408390000,80,-0.0459610000,81,0.1791970000,82,0.0569545000,83,0.0668000000,84,-1.4422100000,85,0.1300790000,86,0.6106830000,87,0.3456550000,88,-0.0174684000,89,0.2330800000,90,0.3208470000,91,0.0258956000,92,-0.3449140000,93,-0.1761250000,94,0.2418860000,95,-0.3840390000,96,0.1436610000,97,0.1403370000,98,0.2916450000,99,0.3257440000,100,-0.4502650000,101,-0.8144380000,102,-0.0485940000,103,0.3867980000,104,0.3986910000 +57,0,0.1549470000,112,-1.0000000000,55,-0.6172740000,56,0.0836032000,57,0.2575660000,58,0.8357690000,59,0.5580220000,60,0.1954880000,61,0.1717090000,62,-0.5986100000,63,1.8449300000,64,-0.0150866000,65,-0.2108160000,66,-0.1142350000,67,-0.0726916000,68,-0.1738790000,69,0.1319550000,70,-0.2643600000,71,0.3017990000,72,0.5512500000,73,-4.8363700000,74,-0.1738450000,75,-0.0562038000,76,0.3134510000,77,-0.2170040000,78,0.5422550000,79,0.8352400000,80,-0.1277460000,81,0.0445139000,82,0.0346317000,83,0.0545435000,84,0.0090921800,85,-0.1415160000,86,0.1877900000,87,0.6491530000,88,1.3373200000,89,-0.8187570000,90,0.3618030000,91,0.0224626000,92,-0.3119740000,93,-0.5219070000,94,0.1693560000,95,-1.0188900000,96,0.5123050000,97,0.7328110000,98,-2.7481000000,99,0.4648780000,100,0.4512590000,101,-0.0794774000,102,-0.0407900000,103,0.1107330000,104,-0.0259144000 +58,0,-0.0364135000,113,-1.0000000000,55,-0.5086890000,56,0.2070090000,57,0.2396800000,58,0.6213390000,59,0.1975710000,60,-0.5152620000,61,0.1089490000,62,-0.2425300000,63,-1.5870700000,64,-0.5693590000,65,0.2430780000,66,-0.6707620000,67,-0.0534863000,68,-1.6534500000,69,0.4987470000,70,0.6744530000,71,-0.5947900000,72,0.1610980000,73,-0.8315810000,74,0.0517297000,75,-0.1891740000,76,-0.3993460000,77,0.1574810000,78,0.0990085000,79,0.1627090000,80,-0.1995590000,81,0.0326205000,82,0.0853214000,83,0.2126000000,84,0.5391190000,85,0.2635950000,86,-1.8291200000,87,0.0826771000,88,0.3732440000,89,-0.9870380000,90,0.1462360000,91,0.0052544300,92,0.0479386000,93,-0.0824678000,94,-0.0454254000,95,-0.4899110000,96,-0.2998390000,97,0.0077668900,98,-1.7591200000,99,-0.1319680000,100,0.5829430000,101,0.0537947000,102,-0.0229962000,103,-1.2804300000,104,-0.0687526000 +59,0,-0.1409840000,114,-1.0000000000,55,-0.2371690000,56,-0.0840681000,57,0.3060710000,58,0.0086512800,59,-0.0968777000,60,-0.4511080000,61,-0.1827490000,62,0.1370130000,63,0.0662212000,64,0.4045830000,65,0.0906806000,66,-0.5947270000,67,-0.0836159000,68,-0.0193039000,69,0.4156300000,70,0.2214010000,71,-0.6798610000,72,0.6804750000,73,0.3706430000,74,-0.3029060000,75,0.3659810000,76,1.6104900000,77,-0.0251486000,78,0.2503840000,79,0.4203940000,80,-0.4983330000,81,0.0386534000,82,0.2050830000,83,-0.2248810000,84,-1.2352200000,85,-0.2316580000,86,0.0882689000,87,0.1382730000,88,0.0509715000,89,0.1052600000,90,0.6862420000,91,-0.0430110000,92,-0.1844230000,93,-0.4328490000,94,-0.2381560000,95,0.6152970000,96,-0.1054960000,97,0.1143610000,98,0.5728840000,99,-0.8233240000,100,-0.0529253000,101,0.0706324000,102,0.0198409000,103,-0.3549450000,104,0.0172577000 +60,0,0.0218594000,115,-1.0000000000,55,-0.0049506000,56,-0.0262812000,57,-0.0279284000,58,0.0269358000,59,0.0402161000,60,0.0145784000,61,0.0193529000,62,0.0030701400,63,-0.0336963000,64,0.0108218000,65,-0.0201564000,66,0.0296659000,67,0.0310158000,68,-0.0526409000,69,0.0165847000,70,0.0002375000,71,-0.0054985000,72,0.0021783200,73,-0.0525973000,74,0.0198344000,75,-0.0443976000,76,-0.0483561000,77,-0.0331141000,78,0.0045434700,79,0.0234686000,80,0.0034879400,81,-0.0141378000,82,0.0373484000,83,-0.0525376000,84,-0.0283521000,85,-0.0150559000,86,-0.0401629000,87,0.0411796000,88,-0.0540754000,89,-0.0192431000,90,0.0216726000,91,-0.0463700000,92,0.0050073100,93,-0.0402902000,94,0.0165448000,95,0.0363628000,96,0.0229712000,97,-0.0138812000,98,-0.0408620000,99,-0.0285646000,100,-0.0021425000,101,-0.0209999000,102,0.0319677000,103,-0.0222577000,104,-0.0517600000 +61,0,0.0642797000,116,-1.0000000000,55,-0.0678221000,56,0.0875314000,57,0.0116438000,58,-0.0970798000,59,0.7729360000,60,-0.5456240000,61,-0.1410510000,62,0.0744865000,63,2.7094500000,64,-0.0343198000,65,-0.7921800000,66,-1.3503000000,67,0.3684290000,68,-2.5749900000,69,0.2649450000,70,-0.0461333000,71,-0.1776400000,72,0.1218500000,73,-0.3861610000,74,0.0920428000,75,0.0856842000,76,0.1217250000,77,1.6405200000,78,-0.0974691000,79,0.4840340000,80,-0.0325745000,81,-0.1013180000,82,-0.4287940000,83,-0.3165710000,84,-0.3625920000,85,0.2239830000,86,-2.5077600000,87,-1.1564700000,88,-2.0158600000,89,-0.1928090000,90,0.1045660000,91,-0.0120101000,92,0.2687320000,93,-0.6358930000,94,-0.2886230000,95,0.6484760000,96,-0.0651778000,97,-0.1509500000,98,0.0113257000,99,-0.4959350000,100,-0.0632651000,101,-0.0446597000,102,-0.0364008000,103,-2.2486800000,104,0.7119860000 +62,0,0.0609079000,117,-1.0000000000,55,-0.2884630000,56,-0.3003550000,57,-0.2883280000,58,0.8553000000,59,-0.7334200000,60,0.2492800000,61,-0.1000620000,62,0.0401702000,63,-2.6562400000,64,-0.6102040000,65,0.6779300000,66,0.8029060000,67,0.1556100000,68,-0.0054783500,69,-0.4381590000,70,0.3410350000,71,0.3992570000,72,0.0831196000,73,-0.1336700000,74,-0.0435247000,75,0.2472760000,76,-0.0648787000,77,0.0793357000,78,0.2355450000,79,0.1862690000,80,0.1320270000,81,-0.1463950000,82,-0.1239510000,83,0.0261328000,84,-0.1119030000,85,0.4555570000,86,-0.0550636000,87,-0.3465300000,88,-1.6347900000,89,-0.2043170000,90,0.3794770000,91,0.0303098000,92,-0.0477353000,93,0.1995590000,94,0.0427920000,95,-0.2436880000,96,0.3557040000,97,0.4645470000,98,0.0852336000,99,0.2114580000,100,-0.1457590000,101,0.0592002000,102,-0.0043004900,103,-0.1547950000,104,-0.9623020000 +63,0,0.0275522000,118,-1.0000000000,55,-0.2072490000,56,-0.0967890000,57,0.2177800000,58,0.3572170000,59,-0.2268890000,60,-0.2535110000,61,0.0486459000,62,0.1130250000,63,5.2983000000,64,0.1309130000,65,-0.5069250000,66,-0.7958030000,67,-0.1354490000,68,-0.4401900000,69,0.2611290000,70,0.3604670000,71,0.0447295000,72,-0.2887690000,73,-0.2668090000,74,-0.1935460000,75,-0.1259080000,76,0.6592860000,77,1.0953300000,78,0.3258470000,79,0.2545480000,80,-0.0805392000,81,-0.1571860000,82,-0.1202990000,83,-0.2641540000,84,0.1597960000,85,-0.0945474000,86,-0.1603540000,87,-0.0684857000,88,-0.3435700000,89,-0.1732290000,90,0.5881390000,91,0.0608326000,92,0.0146147000,93,-0.1244270000,94,-0.2986330000,95,-1.0435300000,96,0.3532950000,97,0.2432430000,98,-0.5602060000,99,-0.2453260000,100,0.2276100000,101,0.3346660000,102,0.0097533800,103,0.0517962000,104,0.4270060000 +64,0,0.0192413000,119,-1.0000000000,55,-0.0649568000,56,-0.3985490000,57,0.2839980000,58,-0.5806010000,59,-0.5753390000,60,-0.0312978000,61,-0.3809500000,62,0.0782903000,63,-1.4175800000,64,0.0733965000,65,0.8484310000,66,-0.1706810000,67,0.0764858000,68,0.0468250000,69,0.2715870000,70,-0.2212870000,71,0.1000440000,72,0.0135967000,73,0.3488990000,74,-0.2125120000,75,-0.0700160000,76,0.7002280000,77,-0.1139310000,78,0.2234570000,79,-0.2995880000,80,0.2575640000,81,-0.1835830000,82,0.1152260000,83,0.3380610000,84,-0.7685980000,85,0.3094300000,86,-0.0423157000,87,0.7136610000,88,-0.4031080000,89,0.6664210000,90,-0.1876770000,91,-0.0404267000,92,0.3418930000,93,-0.2346870000,94,0.3627930000,95,1.4516900000,96,0.1562600000,97,-0.4860230000,98,0.4355630000,99,-0.0781989000,100,-0.4884560000,101,-0.1083560000,102,-0.0243637000,103,0.1534090000,104,0.0555718000 +65,0,0.0936820000,120,-1.0000000000,55,0.1196280000,56,0.1162780000,57,0.3317540000,58,0.1610420000,59,1.6466400000,60,-0.1060020000,61,0.3061200000,62,-0.3512850000,63,0.3474690000,64,-0.8458960000,65,0.5954240000,66,0.2688130000,67,0.2156390000,68,-0.0187109000,69,0.3448990000,70,-0.1226010000,71,-1.2766900000,72,0.2840550000,73,0.1293810000,74,0.2941560000,75,0.2133090000,76,-0.5483140000,77,-0.0447301000,78,0.3951030000,79,-0.2313060000,80,-0.8785300000,81,0.4317880000,82,-0.2752270000,83,-0.2557970000,84,1.2137500000,85,-0.2851200000,86,0.0971700000,87,-0.0849007000,88,-0.1377480000,89,-0.1957970000,90,0.4104690000,91,-0.0128422000,92,-0.2110680000,93,0.4452190000,94,0.3578260000,95,1.3486200000,96,-0.4862720000,97,0.3708930000,98,0.5719270000,99,0.4257480000,100,0.3736770000,101,0.0992524000,102,0.0439027000,103,-0.0570875000,104,-0.1749040000 +66,0,-0.0063351000,121,-1.0000000000,55,0.1128600000,56,-0.0293449000,57,-0.0621066000,58,-0.5154250000,59,0.0000522321,60,-0.0384339000,61,0.1187080000,62,-0.2228470000,63,0.3592260000,64,-0.2780100000,65,0.6292550000,66,0.0728469000,67,0.1132170000,68,0.0988369000,69,0.2533950000,70,-0.2736290000,71,0.3162580000,72,-0.1300290000,73,0.1568690000,74,-0.2100850000,75,-0.1058670000,76,0.1583000000,77,-0.1665340000,78,0.1276330000,79,-0.2087600000,80,0.0201812000,81,-0.0510530000,82,-0.0654119000,83,0.0835238000,84,-0.6636690000,85,0.1475770000,86,-0.0287702000,87,-0.0249459000,88,0.2670010000,89,0.1666890000,90,0.2214830000,91,-0.0483156000,92,0.1353550000,93,-0.0568225000,94,0.2168760000,95,-0.5966020000,96,0.0279521000,97,0.0062535700,98,0.1862860000,99,-0.1588720000,100,-0.1627960000,101,-0.0485343000,102,0.0232645000,103,0.3390060000,104,-0.1587690000 +67,0,0.0140007000,122,-1.0000000000,55,-0.0039056000,56,0.0028878200,57,0.0133720000,58,-0.0408285000,59,0.0065561800,60,-0.0537703000,61,0.0145830000,62,-0.0550954000,63,-0.0099984900,64,0.0240699000,65,0.0209653000,66,-0.0013950200,67,-0.0368613000,68,0.0130199000,69,0.0360120000,70,-0.0405892000,71,-0.0055849900,72,-0.0173896000,73,-0.0300710000,74,-0.0393414000,75,0.0288826000,76,-0.0043633200,77,-0.0435909000,78,0.0295683000,79,-0.0318165000,80,0.0093753400,81,0.0057735600,82,-0.0386423000,83,0.0321255000,84,0.0345780000,85,-0.0068625900,86,0.0244421000,87,-0.0185031000,88,-0.0427987000,89,0.0044361600,90,-0.0178007000,91,-0.0145995000,92,-0.0177453000,93,-0.0023174400,94,-0.0563210000,95,0.0421168000,96,0.0247125000,97,-0.0332195000,98,0.0324101000,99,0.0031308900,100,0.0404586000,101,-0.0436072000,102,0.0249205000,103,-0.0427439000,104,-0.0153902000 +68,0,-0.3207830000,123,-1.0000000000,55,-0.2761580000,56,0.5148330000,57,0.5256380000,58,0.5117420000,59,1.1740500000,60,-0.3209030000,61,0.5332500000,62,0.2308650000,63,-5.5295100000,64,-0.5655140000,65,-1.0983200000,66,1.6074900000,67,-1.0175600000,68,0.7876610000,69,0.7174830000,70,0.4698180000,71,-1.0643100000,72,-0.0284677000,73,-0.0383786000,74,0.5268440000,75,0.0855487000,76,-0.4497120000,77,-0.7843280000,78,0.2375440000,79,0.3460550000,80,-0.1135680000,81,0.6419000000,82,0.6066610000,83,0.3017330000,84,0.3346380000,85,0.8084380000,86,0.4407170000,87,1.0643000000,88,0.3071390000,89,-1.1199500000,90,0.1382730000,91,-0.0138277000,92,-0.3344680000,93,0.4400230000,94,-0.0291714000,95,1.4060200000,96,-0.3481780000,97,1.1097200000,98,-0.3115740000,99,0.2520140000,100,0.2534550000,101,-0.7536810000,102,-0.0144338000,103,0.5301890000,104,-0.2747920000 +69,0,0.1787350000,124,-1.0000000000,55,-0.0037201200,56,0.1805310000,57,0.5297400000,58,-0.0682669000,59,-0.2983440000,60,0.0235376000,61,0.0977713000,62,-0.1331700000,63,1.9081000000,64,-0.4221800000,65,0.3028640000,66,0.0368479000,67,0.1192890000,68,-0.0469983000,69,0.4052820000,70,0.0585585000,71,-0.0602050000,72,0.2550500000,73,0.4827610000,74,0.0832428000,75,0.4414060000,76,0.0935278000,77,-0.1806120000,78,-0.0160449000,79,-0.0613045000,80,-0.0231904000,81,0.0630266000,82,0.0744425000,83,0.0269271000,84,-0.2652310000,85,-0.0291742000,86,-0.0535636000,87,-0.0162938000,88,-0.5810970000,89,-0.8187590000,90,0.2099850000,91,0.0397716000,92,-0.0659838000,93,0.1140180000,94,-0.3235400000,95,-0.0078257900,96,0.2694730000,97,0.1388200000,98,0.5185400000,99,0.0758185000,100,0.0964170000,101,-0.3490740000,102,0.0061976600,103,0.2990480000,104,-0.2898510000 +70,0,0.0209368000,125,-1.0000000000,55,-0.0013272600,56,-0.0274749000,57,-0.0494290000,58,-0.0260085000,59,0.0126392000,60,-0.0507136000,61,-0.0007504870,62,0.0269326000,63,-0.0167722000,64,-0.0246316000,65,-0.0137325000,66,-0.0025292300,67,-0.0049604600,68,0.0257720000,69,0.0393321000,70,-0.0101105000,71,0.0017425400,72,0.0034314700,73,-0.0303036000,74,-0.0089938300,75,-0.0382894000,76,0.0331632000,77,-0.0081918800,78,0.0333315000,79,-0.0138525000,80,-0.0096972600,81,-0.0478274000,82,-0.0048039800,83,-0.0348900000,84,0.0136535000,85,0.0375721000,86,-0.0177501000,87,0.0407428000,88,-0.0092398800,89,-0.0434969000,90,-0.0225774000,91,-0.0056313800,92,-0.0490947000,93,-0.0479704000,94,0.0128160000,95,0.0283796000,96,-0.0005717740,97,-0.0345308000,98,-0.0077959600,99,-0.0543503000,100,-0.0421590000,101,0.0028681100,102,0.0137756000,103,0.0292642000,104,0.0110485000 +71,0,0.0282835000,126,-1.0000000000,55,-0.0214051000,56,0.0711848000,57,0.0441676000,58,0.4239840000,59,0.5245440000,60,0.1596030000,61,0.0480203000,62,-0.3002360000,63,1.7489300000,64,0.0111433000,65,0.1970140000,66,0.9235430000,67,-0.0608398000,68,0.0638251000,69,0.7211730000,70,-0.0727212000,71,-0.0312495000,72,0.0558343000,73,-0.0980138000,74,0.2869640000,75,-0.3090310000,76,0.2867040000,77,0.8052760000,78,0.0455501000,79,0.1338720000,80,0.1535730000,81,0.0170853000,82,-0.1956010000,83,0.2013140000,84,-0.2432110000,85,0.1020090000,86,-0.4500340000,87,-0.4303910000,88,0.1909810000,89,-0.1716470000,90,0.1373760000,91,-0.0145371000,92,0.1977690000,93,0.0880365000,94,0.0180877000,95,-0.0034428000,96,0.1714490000,97,0.3101890000,98,-0.3375860000,99,0.1787200000,100,-0.0614445000,101,-0.1453230000,102,0.0028007400,103,-0.3720210000,104,0.0531983000 +72,0,-1.0435300000,127,-1.0000000000,55,0.2215240000,56,0.7063780000,57,0.8395210000,58,0.2158120000,59,0.5316570000,60,-0.0433689000,61,-0.1989450000,62,0.9658420000,63,2.2392400000,64,0.7400400000,65,1.0899900000,66,1.7708500000,67,-0.1560530000,68,0.0574351000,69,1.1104400000,70,0.3982940000,71,-0.0358516000,72,0.4834720000,73,0.7636190000,74,-0.2672620000,75,-0.0624070000,76,0.1633060000,77,1.1785900000,78,0.0095730000,79,-0.4113880000,80,0.2652550000,81,0.9092790000,82,-0.4008670000,83,0.3084050000,84,-0.0783983000,85,0.2506220000,86,0.1493660000,87,0.9001770000,88,3.2323400000,89,0.0027075100,90,-0.4779910000,91,0.0286257000,92,0.2074490000,93,0.0626681000,94,0.2906690000,95,1.3781400000,96,0.7881730000,97,0.7069770000,98,-0.0862723000,99,0.5524980000,100,-0.1445320000,101,0.1891130000,102,0.0149021000,103,0.2589810000,104,0.8320260000 +73,0,0.0642598000,128,-1.0000000000,55,-0.2249470000,56,-0.0330178000,57,0.8056070000,58,0.2760980000,59,0.4338550000,60,-0.5983740000,61,0.3390540000,62,0.0357108000,63,-1.7436300000,64,0.2375120000,65,0.4269610000,66,0.2166540000,67,0.0984003000,68,0.1311580000,69,0.0522431000,70,-0.0841855000,71,1.5012200000,72,-0.5513170000,73,-0.2937800000,74,-0.4072170000,75,0.6982100000,76,0.2894510000,77,-0.1098010000,78,-0.5254580000,79,0.3268850000,80,0.1596370000,81,-0.1291830000,82,0.4728680000,83,0.1729980000,84,0.5350800000,85,0.0120634000,86,0.1795810000,87,-0.5485740000,88,-0.4654440000,89,-0.2137670000,90,0.1370410000,91,0.0066005000,92,0.0332073000,93,0.3231610000,94,-0.4066610000,95,-2.0249500000,96,-0.0892030000,97,0.3588810000,98,0.1339030000,99,0.7520730000,100,-0.5684330000,101,-0.3382080000,102,-0.0103280000,103,-0.0401752000,104,-0.4410220000 +74,0,0.0253698000,129,-1.0000000000,55,-0.1626570000,56,0.0269416000,57,-0.0059207100,58,0.0404090000,59,-0.0632487000,60,0.2110120000,61,-0.0057055100,62,0.0617079000,63,-0.1480620000,64,0.0003216320,65,-0.0567887000,66,-0.2139110000,67,-0.1192000000,68,0.1716150000,69,0.1886560000,70,0.1691720000,71,-0.4100030000,72,0.2381740000,73,-0.1443070000,74,-0.2856250000,75,0.3899130000,76,-0.0768084000,77,-0.0071431000,78,0.0297661000,79,-0.0146486000,80,0.1065590000,81,0.0922650000,82,0.1813220000,83,-0.0479720000,84,-0.2560240000,85,0.1401120000,86,-0.0879543000,87,-0.6586600000,88,0.0709482000,89,0.1965390000,90,-0.0698451000,91,0.0214678000,92,0.3444190000,93,0.3917660000,94,-0.1659100000,95,-0.6882830000,96,-0.0964599000,97,-0.4390580000,98,-0.0567010000,99,0.2565410000,100,-0.4482550000,101,-0.0898670000,102,-0.0101746000,103,0.0046866700,104,0.0481961000 +75,0,-0.0216662000,130,-1.0000000000,55,-0.5620690000,56,-0.6525620000,57,-0.9064470000,58,0.6416710000,59,0.2890120000,60,0.1441930000,61,-0.5497950000,62,-0.1032560000,63,-1.7492700000,64,-0.6863390000,65,0.0104203000,66,0.0334146000,67,-0.2485680000,68,-0.5207040000,69,-0.4370440000,70,0.4406480000,71,-0.2672140000,72,-0.2974460000,73,0.2542470000,74,-0.1274700000,75,0.3002720000,76,0.5889620000,77,0.5617200000,78,0.3897540000,79,0.8494130000,80,0.4421660000,81,-0.8672540000,82,0.0073172000,83,-0.2895820000,84,0.6230720000,85,0.2992940000,86,-0.6163310000,87,0.5840850000,88,-0.7426540000,89,-0.1775690000,90,0.1805010000,91,0.0016313100,92,0.1032650000,93,0.0791120000,94,0.2490870000,95,-1.6870500000,96,0.3896850000,97,-0.5584220000,98,0.6928710000,99,0.1653500000,100,0.8049910000,101,0.3315740000,102,0.0306042000,103,-0.6387990000,104,0.0824105000 +76,0,0.0044630500,131,-1.0000000000,55,-0.0522923000,56,0.0018486100,57,-0.0155445000,58,-0.0088821100,59,-0.0423245000,60,-0.0354298000,61,-0.0361790000,62,-0.0333245000,63,-0.0243396000,64,-0.0140070000,65,-0.0060567700,66,-0.0324102000,67,-0.0302088000,68,-0.0153718000,69,0.0338280000,70,0.0235742000,71,0.0400973000,72,-0.0543651000,73,-0.0332964000,74,-0.0213359000,75,0.0433305000,76,-0.0103490000,77,-0.0192177000,78,0.0177799000,79,0.0127845000,80,-0.0027673600,81,0.0207512000,82,-0.0448035000,83,-0.0098291800,84,0.0042210300,85,-0.0358527000,86,-0.0063471900,87,0.0161987000,88,0.0059542800,89,-0.0459544000,90,0.0026470200,91,-0.0254746000,92,0.0025761500,93,-0.0015573300,94,-0.0104020000,95,0.0331584000,96,-0.0266543000,97,0.0267417000,98,-0.0496300000,99,-0.0069703400,100,0.0029863000,101,0.0006068070,102,-0.0027747200,103,-0.0149881000,104,-0.0018220900 +77,0,0.0617820000,132,-1.0000000000,55,0.1830280000,56,0.1187540000,57,-0.1383050000,58,-0.1410580000,59,1.8268400000,60,0.2361450000,61,0.2495380000,62,-0.4378000000,63,1.8188300000,64,-0.9718540000,65,0.3943830000,66,0.6234490000,67,0.1420750000,68,-0.1884150000,69,-1.3114100000,70,0.2748240000,71,-0.1365060000,72,-0.0660491000,73,-0.6028900000,74,0.0616666000,75,-0.2190020000,76,-0.0020748100,77,-0.3121950000,78,0.7036880000,79,-0.0521945000,80,-0.3371820000,81,0.0802589000,82,0.6521710000,83,-0.6160870000,84,0.7645520000,85,-0.0012192500,86,-0.0141650000,87,-0.2804180000,88,-0.6858320000,89,0.2109720000,90,0.3944190000,91,0.0413575000,92,0.2602050000,93,0.8098880000,94,0.1474900000,95,2.7771500000,96,-0.0356566000,97,0.3169250000,98,-0.4436120000,99,0.1933950000,100,-0.5101130000,101,0.3587130000,102,0.0434483000,103,-0.3624000000,104,-0.0275692000 +78,0,0.0083206600,133,-1.0000000000,55,0.0326766000,56,0.0981174000,57,0.0100184000,58,-0.2151240000,59,0.2087810000,60,-0.9296850000,61,0.3762570000,62,0.0089034700,63,-0.1019160000,64,0.1818420000,65,-1.5819100000,66,-0.1451490000,67,-0.1847350000,68,0.2308200000,69,0.0898909000,70,-0.1401250000,71,-0.1018090000,72,-0.6970090000,73,0.4070420000,74,0.1094760000,75,-0.3174210000,76,0.0420133000,77,-0.0878543000,78,0.0604008000,79,-0.0201643000,80,-0.0769754000,81,0.2255620000,82,-0.0324858000,83,-0.0582055000,84,-1.6577300000,85,0.0408354000,86,0.0289451000,87,0.1622100000,88,0.7842220000,89,-0.2700990000,90,-0.0798351000,91,-0.0114031000,92,-0.1617520000,93,0.3554700000,94,0.2413910000,95,-1.0989400000,96,-0.2451160000,97,0.0749781000,98,0.2185630000,99,0.4836900000,100,-0.1517120000,101,-0.2138520000,102,0.0320677000,103,0.1143530000,104,0.0021620100 +79,0,0.1621730000,134,-1.0000000000,55,0.3205160000,56,-0.1402740000,57,-0.6146560000,58,1.4034900000,59,-1.0818700000,60,0.5327510000,61,-0.3385170000,62,0.2410940000,63,-0.2151550000,64,0.2489390000,65,0.6822280000,66,-0.0728491000,67,0.1969750000,68,0.1833760000,69,-0.9053550000,70,-0.4331160000,71,0.3806160000,72,-0.1226990000,73,0.0458576000,74,-0.1362720000,75,0.2853720000,76,0.4737900000,77,-0.0049656300,78,0.1330580000,79,-0.2065850000,80,0.5847050000,81,-0.2530920000,82,0.0388551000,83,0.4895110000,84,-1.3845200000,85,0.0767565000,86,-0.1612100000,87,0.6526010000,88,-0.7503510000,89,0.2158610000,90,-0.3964800000,91,0.0237346000,92,0.1050020000,93,0.1056780000,94,-0.0254853000,95,-1.9376100000,96,0.2003350000,97,-0.0818364000,98,0.0646253000,99,0.3181210000,100,1.3537300000,101,0.1413690000,102,-0.0347680000,103,-0.0347533000,104,-0.1435950000 +80,0,0.1410390000,135,-1.0000000000,55,0.2113990000,56,0.0690854000,57,0.2377970000,58,0.2614590000,59,0.4974640000,60,-0.5748700000,61,0.0519737000,62,0.0012127200,63,3.6924900000,64,-0.4418980000,65,2.7850500000,66,0.3833360000,67,-0.0530825000,68,0.0050994700,69,0.4959980000,70,-0.0416300000,71,-0.3233040000,72,-0.4174290000,73,-0.1093990000,74,0.1445840000,75,-0.0492550000,76,-0.2221240000,77,0.0285879000,78,0.2899970000,79,-0.1727940000,80,0.0722204000,81,0.2066340000,82,-0.2079470000,83,-0.0054722600,84,1.0220600000,85,0.0087770400,86,0.0084892200,87,0.5016140000,88,1.0305800000,89,-0.1527770000,90,0.3801290000,91,0.0397173000,92,-0.4966180000,93,0.6555090000,94,0.0083890400,95,-1.6683400000,96,-0.2086650000,97,0.3552900000,98,-0.3131770000,99,0.2873790000,100,-0.2217930000,101,-0.0526910000,102,0.0197572000,103,0.1160740000,104,-0.0757014000 +81,0,0.0164645000,136,-1.0000000000,55,-0.0202978000,56,-0.0454639000,57,0.0201889000,58,0.0309532000,59,-0.0312355000,60,-0.0203498000,61,-0.0037927000,62,-0.0448247000,63,-0.0402365000,64,-0.0445042000,65,0.0186899000,66,0.0039142200,67,-0.0313823000,68,0.0326569000,69,0.0353074000,70,-0.0155120000,71,-0.0011952000,72,0.0183358000,73,-0.0405123000,74,-0.0115252000,75,-0.0138372000,76,0.0301999000,77,-0.0045505200,78,0.0428189000,79,-0.0505259000,80,0.0054155300,81,-0.0119807000,82,0.0362480000,83,-0.0012918300,84,-0.0381496000,85,-0.0456021000,86,-0.0129904000,87,-0.0296187000,88,0.0365160000,89,-0.0172417000,90,0.0148345000,91,-0.0320484000,92,-0.0346021000,93,0.0179681000,94,-0.0092314800,95,-0.0190496000,96,-0.0440467000,97,-0.0284443000,98,-0.0302567000,99,0.0005996130,100,0.0121688000,101,-0.0239802000,102,-0.0032537500,103,-0.0044083100,104,-0.0099274800 +82,0,-0.0053231000,137,-1.0000000000,55,-0.0491417000,56,0.0372621000,57,0.0295431000,58,0.0242808000,59,-0.0353743000,60,-0.0520351000,61,-0.0080341800,62,0.0223633000,63,-0.0378554000,64,-0.0248534000,65,0.0197947000,66,-0.0097810300,67,0.0046335400,68,-0.0289331000,69,-0.0151073000,70,0.0062162700,71,-0.0595264000,72,0.0284874000,73,0.0014649800,74,-0.0151124000,75,0.0215691000,76,-0.0262976000,77,-0.0513857000,78,0.0514284000,79,-0.0510876000,80,-0.0687426000,81,-0.0159464000,82,-0.0413595000,83,-0.0806595000,84,-0.0458655000,85,0.0244551000,86,0.0269717000,87,-0.0637320000,88,-0.1144450000,89,-0.0413687000,90,0.0273868000,91,0.0293830000,92,0.0027376500,93,-0.0286849000,94,-0.0395066000,95,0.0288952000,96,-0.0656248000,97,-0.0131013000,98,0.0260297000,99,0.0021620500,100,-0.0049810100,101,0.0028932500,102,-0.0182480000,103,-0.0381718000,104,-0.0391231000 +83,0,0.0840590000,138,-1.0000000000,55,-0.1214960000,56,-0.7045670000,57,-0.7849940000,58,0.6830790000,59,0.9833590000,60,0.3468850000,61,0.0609240000,62,0.1800590000,63,-2.2808800000,64,0.2136890000,65,0.0073296100,66,-0.5915220000,67,0.0417499000,68,0.1745340000,69,-0.9396320000,70,-0.0166417000,71,-1.4128000000,72,1.1861600000,73,0.3865440000,74,-0.4539590000,75,-0.6817280000,76,-0.4067660000,77,0.4124170000,78,-3.4550600000,79,0.8772220000,80,-0.0511218000,81,-0.7294850000,82,0.0615302000,83,0.0805479000,84,-0.1573780000,85,0.5554810000,86,-0.4047760000,87,-0.3362740000,88,-1.8338100000,89,0.4628790000,90,-2.4184800000,91,-0.0030398500,92,0.3524230000,93,0.9044890000,94,-0.5025130000,95,-0.0213078000,96,-0.4631840000,97,0.1874720000,98,0.4085600000,99,-0.2430050000,100,-0.0376614000,101,-0.2520420000,102,0.0136387000,103,0.0008761360,104,0.0753425000 +84,0,-0.0265669000,139,-1.0000000000,55,0.1317180000,56,-0.0627861000,57,0.0886234000,58,-0.2156810000,59,0.2407930000,60,-0.2981920000,61,-0.7282300000,62,0.3223540000,63,0.1152710000,64,0.4036770000,65,0.7833590000,66,0.0727290000,67,-0.1116100000,68,0.1272280000,69,-0.7118700000,70,-0.3025780000,71,0.7279030000,72,0.1044560000,73,-0.2306830000,74,-0.0907753000,75,-0.3214830000,76,0.9512220000,77,-0.0147601000,78,0.1012560000,79,0.4471400000,80,1.2856800000,81,-0.8519740000,82,-0.2011140000,83,0.2091450000,84,-0.4233550000,85,-0.0242058000,86,0.1187380000,87,0.3817670000,88,0.9940360000,89,0.2008130000,90,0.6921400000,91,-0.0161488000,92,0.1838750000,93,0.1953360000,94,-0.4872980000,95,0.8840760000,96,0.4952840000,97,-1.0729300000,98,-0.4825130000,99,-0.0826290000,100,-0.6268330000,101,0.0488731000,102,0.0038662800,103,-0.0852957000,104,0.0160101000 +85,0,-0.0786691000,140,-1.0000000000,55,0.1187260000,56,0.0557777000,57,-0.0465031000,58,0.5209220000,59,0.5042080000,60,-0.0121123000,61,0.5100610000,62,-0.3046610000,63,-0.0788149000,64,-0.3220810000,65,-0.0627695000,66,-0.0547663000,67,-0.0318706000,68,-0.0928886000,69,0.2797860000,70,-0.1916490000,71,0.2237830000,72,-0.0109191000,73,-0.3673800000,74,0.1384250000,75,0.0838745000,76,-0.5778390000,77,-0.0451322000,78,0.5042460000,79,-0.3492970000,80,-1.1316200000,81,0.7183980000,82,-0.0976719000,83,-0.5717690000,84,0.1604790000,85,-0.6826470000,86,-0.0752519000,87,-0.3281950000,88,0.1825410000,89,-0.3906380000,90,0.4613330000,91,0.0153698000,92,-0.0869300000,93,0.0907199000,94,0.1057620000,95,-0.1373840000,96,-0.1150300000,97,0.9637760000,98,-0.4191620000,99,0.0295742000,100,-0.0841584000,101,0.0621019000,102,0.0213939000,103,0.0487238000,104,0.0173752000 +86,0,0.4908500000,141,-1.0000000000,55,-0.0742649000,56,-0.5275620000,57,0.9292240000,58,0.8845140000,59,0.5797430000,60,0.3651850000,61,0.0970159000,62,-0.2285100000,63,-0.6420140000,64,0.0095086300,65,-0.3406410000,66,-0.7865250000,67,0.2162720000,68,0.1296390000,69,0.9209450000,70,-0.4288470000,71,0.1293820000,72,0.1398040000,73,1.2571900000,74,-0.6922860000,75,0.1272170000,76,-0.2645130000,77,-0.0942851000,78,-1.4994500000,79,-0.5103470000,80,-0.0746417000,81,-0.1764500000,82,0.0159840000,83,-0.0157018000,84,-0.9321620000,85,0.4481810000,86,-0.1827680000,87,0.0400141000,88,0.4489870000,89,-0.0978104000,90,-1.1490500000,91,-0.0286098000,92,1.6750000000,93,0.3069630000,94,-0.2566960000,95,-2.3441300000,96,0.0337146000,97,0.2614940000,98,0.3344130000,99,-0.3372730000,100,0.1417710000,101,-0.0016594400,102,-0.0153040000,103,-0.0020060100,104,0.0113477000 +87,0,0.0289568000,142,-1.0000000000,55,-0.2023570000,56,0.0527575000,57,0.4608870000,58,0.1542720000,59,-0.4488860000,60,-0.1512260000,61,-0.1621820000,62,0.0329984000,63,0.2011920000,64,-0.0553344000,65,0.6779370000,66,-0.6056720000,67,0.0439346000,68,0.2286440000,69,0.2857180000,70,0.1127150000,71,0.1848760000,72,0.0129289000,73,0.0017167100,74,-0.0073297300,75,0.0899820000,76,0.1108730000,77,0.0055261300,78,0.1125550000,79,-1.2602000000,80,0.1214570000,81,-0.0938216000,82,-0.0138127000,83,-0.0548336000,84,0.0778855000,85,0.7259230000,86,-0.3350750000,87,-0.1529170000,88,-0.7677270000,89,-0.5339020000,90,0.0666613000,91,0.0046765900,92,-0.1189810000,93,0.3164730000,94,-0.1233640000,95,-0.8830340000,96,-0.0934581000,97,0.0547123000,98,0.0739057000,99,-0.1327540000,100,0.2518550000,101,-0.0807286000,102,-0.0098584500,103,0.0042193000,104,0.4240920000 +88,0,0.0150531000,143,-1.0000000000,55,-0.0233831000,56,0.0266105000,57,0.0265018000,58,0.0100612000,59,0.0223637000,60,-0.0074847600,61,-0.0157573000,62,-0.0179220000,63,-0.0127971000,64,0.0425681000,65,-0.0422378000,66,-0.0084378600,67,-0.0275693000,68,-0.0396180000,69,0.0350924000,70,-0.0171464000,71,-0.0376275000,72,-0.0317645000,73,-0.0432646000,74,-0.0091133800,75,-0.0359589000,76,-0.0252534000,77,0.0110859000,78,0.0413248000,79,-0.0518821000,80,0.0271890000,81,0.0055203400,82,0.0387946000,83,-0.0238713000,84,0.0361370000,85,0.0123311000,86,-0.0386112000,87,-0.0308397000,88,-0.0152322000,89,-0.0090848700,90,-0.0300280000,91,0.0275658000,92,-0.0353255000,93,0.0122659000,94,-0.0108852000,95,0.0262770000,96,0.0231654000,97,-0.0019174500,98,-0.0301709000,99,-0.0291726000,100,-0.0090879000,101,0.0368843000,102,-0.0037814500,103,-0.0184604000,104,-0.0338699000 +89,0,0.0074496600,144,-1.0000000000,55,-0.0921919000,56,-0.1479700000,57,0.1758650000,58,-0.2134150000,59,-0.2480860000,60,0.4945360000,61,0.1556780000,62,0.1769720000,63,0.1541890000,64,-0.0370300000,65,0.1646320000,66,-0.5897710000,67,-0.1918350000,68,0.3409160000,69,0.1053490000,70,-0.0557027000,71,-0.2143080000,72,-0.3365760000,73,-0.9399200000,74,-0.1797850000,75,0.0951914000,76,0.4072410000,77,-0.0467055000,78,-0.4075370000,79,-0.1247110000,80,-0.0229503000,81,0.1976480000,82,-0.2779510000,83,0.0350711000,84,0.4159630000,85,0.2044600000,86,-0.0941932000,87,0.3115630000,88,1.0762500000,89,-0.2187590000,90,-1.1317600000,91,0.0124263000,92,-0.1605230000,93,-0.2568120000,94,-0.6355740000,95,-0.3087390000,96,0.1322730000,97,0.3081200000,98,-1.8254600000,99,-0.0155223000,100,0.1449550000,101,0.1714970000,102,-0.0019720200,103,-0.0663148000,104,0.0484112000 +90,0,0.0059552100,145,-1.0000000000,55,0.0079635000,56,-0.0308895000,57,-0.0459753000,58,-0.0286251000,59,0.0265320000,60,0.0151648000,61,0.0323985000,62,-0.0331053000,63,0.0317018000,64,-0.0470702000,65,-0.0364772000,66,0.0183170000,67,-0.0303275000,68,-0.0481791000,69,-0.0330014000,70,-0.0526128000,71,0.0405709000,72,-0.0558165000,73,-0.0049279300,74,-0.0001122450,75,-0.0245305000,76,-0.0211412000,77,-0.0139768000,78,-0.0359785000,79,-0.0116347000,80,-0.0047160700,81,0.0027392000,82,0.0156032000,83,-0.0407740000,84,-0.0370695000,85,-0.0262075000,86,-0.0385525000,87,-0.0465704000,88,-0.0292345000,89,0.0184076000,90,-0.0453868000,91,0.0107846000,92,0.0112894000,93,0.0231499000,94,-0.0386149000,95,0.0338632000,96,0.0165135000,97,-0.0397115000,98,0.0269940000,99,0.0391351000,100,-0.0515499000,101,-0.0248172000,102,0.0416515000,103,-0.0154765000,104,0.0059711900 +91,0,-0.0944564000,146,-1.0000000000,55,-0.0172232000,56,-0.0698065000,57,-0.5264050000,58,-0.5395180000,59,0.5786800000,60,0.0785490000,61,0.0669394000,62,0.1229710000,63,-0.1980430000,64,0.3910940000,65,-0.2059120000,66,0.1081250000,67,-0.0379269000,68,-0.0195867000,69,-0.0497366000,70,-0.1001510000,71,-0.0138612000,72,0.1474120000,73,-0.4257430000,74,-0.0436501000,75,-0.0115980000,76,-0.1243860000,77,0.0129832000,78,-1.9736000000,79,0.1026230000,80,-0.1276220000,81,0.1153930000,82,-0.0508944000,83,-0.0469314000,84,0.1509500000,85,-0.2487140000,86,0.0098657100,87,0.0999423000,88,1.2017100000,89,-0.1252120000,90,-0.3990590000,91,0.0401261000,92,0.0650811000,93,-0.1804430000,94,0.1103040000,95,0.2823020000,96,1.0765000000,97,0.2299650000,98,-0.3904050000,99,-0.8415580000,100,-0.5826030000,101,0.0512247000,102,-0.0216785000,103,0.0123177000,104,0.1187680000 +92,0,-0.0443348000,147,-1.0000000000,55,0.1631150000,56,0.3407280000,57,-0.0105622000,58,0.0026325100,59,-0.1857620000,60,-0.0930189000,61,-0.2169820000,62,-0.0384340000,63,-0.1797280000,64,-0.0036085700,65,-0.1146090000,66,-0.5090870000,67,0.0678658000,68,0.0401867000,69,-0.4673110000,70,0.1893300000,71,0.2315260000,72,0.1017160000,73,0.0215964000,74,-0.1998660000,75,-0.0821424000,76,0.2394910000,77,0.1407730000,78,-1.4244600000,79,-0.2630010000,80,-0.0281122000,81,0.1538040000,82,-0.1126140000,83,-0.1395010000,84,-0.0395304000,85,-0.3493840000,86,-0.1273220000,87,0.2612290000,88,0.5778990000,89,0.1786550000,90,-0.1575200000,91,-0.0287357000,92,0.1237200000,93,-0.0530046000,94,-1.0293200000,95,-1.0164500000,96,-0.8688090000,97,0.1392520000,98,-0.2930720000,99,-0.0999208000,100,0.2352180000,101,0.0910177000,102,0.0144014000,103,0.0232313000,104,-0.1447440000 +93,0,0.0031892100,148,-1.0000000000,55,-0.0190028000,56,-0.0201269000,57,0.0436591000,58,0.0200741000,59,-0.0224424000,60,0.0065891900,61,-0.0408961000,62,-0.0290105000,63,-0.0350561000,64,0.0058636600,65,0.0297205000,66,-0.0397887000,67,-0.0342188000,68,-0.0514203000,69,-0.0454355000,70,0.0458263000,71,-0.0379616000,72,0.0021443300,73,0.0005500250,74,0.0123461000,75,-0.0083552900,76,-0.0020789000,77,-0.0336117000,78,-0.0136546000,79,-0.0325466000,80,-0.0428492000,81,-0.0425204000,82,0.0011439500,83,-0.0340992000,84,0.0302936000,85,-0.0517288000,86,0.0090713900,87,0.0374807000,88,-0.0522613000,89,-0.0447654000,90,0.0274122000,91,-0.0213943000,92,-0.0275108000,93,0.0251790000,94,-0.0410131000,95,-0.0166919000,96,-0.0019868000,97,-0.0520336000,98,0.0035131600,99,-0.0340331000,100,0.0153714000,101,0.0433568000,102,0.0384234000,103,-0.0072809400,104,0.0109747000 +94,0,0.0763256000,149,-1.0000000000,55,0.8506790000,56,0.4020010000,57,1.0994300000,58,-0.2476190000,59,0.2657820000,60,0.1517480000,61,-1.3701300000,62,0.1401740000,63,-1.3511300000,64,0.3918530000,65,-0.5532600000,66,-0.3031080000,67,-0.0504397000,68,0.4303490000,69,0.2680730000,70,0.0030027600,71,-0.1922020000,72,0.4082680000,73,-1.7647000000,74,-0.0972029000,75,-0.3242170000,76,0.3829400000,77,-0.3907750000,78,0.0377556000,79,-2.4551800000,80,0.1082630000,81,0.2945770000,82,-0.1632700000,83,-0.1723420000,84,0.5783410000,85,0.5526140000,86,0.3505450000,87,-0.0741933000,88,-0.3154320000,89,-0.4540220000,90,0.0322751000,91,0.0153834000,92,-0.3924870000,93,-0.2900870000,94,0.2078860000,95,0.1254500000,96,-0.9978490000,97,-0.4703530000,98,-4.6107900000,99,-0.3012060000,100,-0.1766140000,101,-0.3449750000,102,-0.0194357000,103,0.3033440000,104,0.2511400000 +95,0,-0.0485370000,150,-1.0000000000,55,-0.0872491000,56,0.0080176600,57,-0.1257140000,58,-0.1599700000,59,-0.3678150000,60,-0.1427640000,61,-0.1009030000,62,0.1020220000,63,0.2951830000,64,-0.0839929000,65,0.1885440000,66,0.2838730000,67,-0.0472360000,68,0.0080604900,69,-0.0955454000,70,-0.0705182000,71,0.0930758000,72,-0.0403115000,73,0.0200050000,74,-0.1330840000,75,-0.0346169000,76,-0.0157022000,77,-0.0424768000,78,-0.0487894000,79,0.0157557000,80,0.1785400000,81,-0.0779860000,82,-0.0822448000,83,0.0483291000,84,0.0624417000,85,0.1621300000,86,0.0695881000,87,0.2165060000,88,0.3497530000,89,0.1054290000,90,-0.0052322800,91,-0.0122715000,92,0.0293489000,93,-0.1796530000,94,-0.2797870000,95,-0.8724100000,96,0.4082430000,97,0.0674201000,98,-0.1538220000,99,-0.1108200000,100,-0.1293180000,101,-0.0702345000,102,0.0002262850,103,0.0968054000,104,0.0225748000 +96,0,0.3161750000,151,-1.0000000000,55,-0.1904390000,56,0.1508200000,57,0.3867330000,58,0.5319580000,59,0.3149020000,60,-0.0784747000,61,0.8797350000,62,-0.8839660000,63,0.9724080000,64,0.0057448100,65,0.2259210000,66,-0.3753140000,67,-0.6379050000,68,0.2368540000,69,0.6451610000,70,0.5928020000,71,0.1008540000,72,0.1317320000,73,-4.0208200000,74,-0.0181742000,75,-0.1625460000,76,0.5755600000,77,0.2676520000,78,0.5616730000,79,-0.3935790000,80,-0.2125300000,81,0.0425627000,82,-0.5053970000,83,-0.0926365000,84,0.5801200000,85,0.2031360000,86,-0.5658260000,87,1.0572300000,88,-1.5552800000,89,-0.3915130000,90,0.4097730000,91,-0.0335211000,92,-0.2704690000,93,-1.4938500000,94,0.5707170000,95,-0.3658320000,96,-0.0543463000,97,0.8708780000,98,-1.1903700000,99,0.8894490000,100,0.4385300000,101,-1.0969300000,102,-0.0108596000,103,0.0058302400,104,0.0488181000 +97,0,0.3659570000,152,-1.0000000000,55,-0.1704950000,56,-0.2950500000,57,-0.7123240000,58,0.0025222800,59,0.0287553000,60,0.3485610000,61,-0.0425441000,62,-0.2589610000,63,0.2891630000,64,-0.0693566000,65,-0.0591285000,66,1.4361700000,67,0.4570840000,68,-0.1123240000,69,0.2148040000,70,-0.8560080000,71,-0.3887320000,72,-0.0169601000,73,-0.9314330000,74,0.3981950000,75,0.2561000000,76,0.1262630000,77,0.0376745000,78,0.2022810000,79,0.8006890000,80,0.6104930000,81,-0.7159690000,82,0.8606610000,83,-0.0898541000,84,0.4610600000,85,0.2010460000,86,-0.2007220000,87,-0.1507790000,88,-1.7780600000,89,-0.7100330000,90,0.5282550000,91,-0.0362940000,92,0.2462300000,93,-0.0823783000,94,-0.1650190000,95,0.5081650000,96,0.5376410000,97,-0.2217360000,98,0.1905400000,99,-0.1143070000,100,1.2209400000,101,-0.2790020000,102,0.0081999600,103,-0.0637884000,104,-0.1428480000 +98,0,-0.3458800000,153,-1.0000000000,55,0.0395729000,56,-0.0178856000,57,-1.2444000000,58,0.0120912000,59,0.1323690000,60,0.1510440000,61,-0.1186060000,62,0.0446959000,63,-1.2177700000,64,0.4120880000,65,-0.2652310000,66,0.0866573000,67,-0.1705220000,68,-0.2325160000,69,-1.2238800000,70,0.3599270000,71,-0.1582760000,72,-0.2412600000,73,0.0329468000,74,0.0672447000,75,-0.0305954000,76,0.1431390000,77,-0.6973940000,78,0.1470670000,79,0.2026040000,80,0.5924320000,81,-0.2402980000,82,0.2635070000,83,-0.0215858000,84,0.3227960000,85,-0.2855730000,86,-0.2758180000,87,-1.1273000000,88,1.3029400000,89,-0.0257434000,90,0.3294440000,91,0.0012372000,92,0.2379210000,93,0.1806920000,94,0.2074210000,95,0.8146650000,96,0.1701210000,97,-0.3799030000,98,-0.5693100000,99,-0.2629110000,100,-0.6840160000,101,-0.1874780000,102,0.0482392000,103,0.4403050000,104,-0.0132303000 +99,0,-0.0576997000,154,-1.0000000000,55,0.0212341000,56,-0.0800508000,57,-0.2575300000,58,0.1170460000,59,-0.0130130000,60,-0.1752590000,61,-0.0581474000,62,-0.0579808000,63,-1.5335000000,64,-0.1430320000,65,0.2484190000,66,0.0773075000,67,-0.0124135000,68,-0.1204210000,69,0.0145677000,70,-0.0047658600,71,-0.3455440000,72,-0.1348760000,73,0.0228510000,74,-0.0259735000,75,-0.0341165000,76,0.3556600000,77,0.1742450000,78,0.3381980000,79,0.1751890000,80,0.0969881000,81,-0.1624250000,82,0.2603340000,83,-0.1143480000,84,-0.4595040000,85,-0.0773729000,86,-0.0368554000,87,-0.4396120000,88,-0.6592270000,89,0.1134250000,90,0.3950010000,91,0.0191525000,92,0.2448510000,93,-0.0598632000,94,0.1223560000,95,-0.6438880000,96,0.0870369000,97,0.2477180000,98,-0.3289210000,99,0.2914060000,100,-0.1332860000,101,-0.0155520000,102,-0.0313212000,103,-0.0108520000,104,-0.1485710000 +100,0,-0.5793040000,205,-1.0000000000,155,-0.1872780000,156,0.1162810000,157,0.0435397000,158,0.1207100000,159,0.1932710000,160,0.1110920000,161,0.3612310000,162,-0.3026720000,163,-0.3497360000,164,0.3377600000,165,-0.0198538000,166,0.2657060000,167,-0.1523980000,168,-0.3568940000,169,-0.3059860000,170,-0.0309373000,171,0.5008180000,172,0.0435676000,173,-0.0819309000,174,-0.0574944000,175,-0.0197085000,176,-0.0637003000,177,-0.2743640000,178,-0.3822960000,179,0.3134360000,180,0.2249300000,181,-0.0382664000,182,0.2024940000,183,0.1890430000,184,-0.2819280000,185,-0.2721100000,186,0.0047469000,187,-0.0200122000,188,-0.0301503000,189,0.0978749000,190,0.1429370000,191,-0.0577790000,192,0.0811247000,193,0.0211237000,194,-1.3400300000,195,-0.0332875000,196,-0.6899600000,197,0.0760800000,198,-0.0370310000,199,-0.2184080000,200,0.4915430000,201,0.0590963000,202,-0.4132250000,203,-0.0461527000,204,0.0816437000 +101,0,-0.1281030000,206,-1.0000000000,155,0.8721420000,156,-1.1826400000,157,-0.0011216200,158,-0.2314800000,159,0.5990500000,160,-0.3299210000,161,0.2313450000,162,-0.0107674000,163,-0.2906470000,164,-0.3315220000,165,-0.0242436000,166,-0.1785080000,167,-0.0758613000,168,0.2782570000,169,-0.2427960000,170,-0.2178810000,171,-0.0929817000,172,-0.0145605000,173,0.1672210000,174,-0.6166310000,175,-0.0311897000,176,-0.2245350000,177,-0.1254330000,178,-1.1366000000,179,0.0502205000,180,-0.0898015000,181,-0.0408841000,182,-0.4028840000,183,0.2380540000,184,0.3829980000,185,-0.2008390000,186,-0.0084704900,187,-0.0096560000,188,-0.2886500000,189,-0.0234121000,190,-0.8464780000,191,-0.4131530000,192,0.2818260000,193,0.0437489000,194,-0.1357770000,195,0.0014293300,196,0.6300520000,197,-1.8378300000,198,0.0123506000,199,0.1395560000,200,0.2508470000,201,1.3507400000,202,-0.0105606000,203,0.0330151000,204,0.2974000000 +102,0,0.1748010000,207,-1.0000000000,155,0.4236100000,156,1.0495800000,157,0.0272702000,158,-0.2035790000,159,0.0580000000,160,0.0931815000,161,0.1766530000,162,1.3021400000,163,-0.2704950000,164,0.3517180000,165,0.0412841000,166,-0.4390990000,167,-0.2773670000,168,0.0910960000,169,0.1127000000,170,0.5498640000,171,-0.1735780000,172,-0.0188293000,173,0.1762140000,174,0.1163340000,175,-0.0389889000,176,0.2652450000,177,0.0348982000,178,-0.4313500000,179,0.7168920000,180,-0.4054650000,181,-0.0179023000,182,-0.0240304000,183,-1.2152600000,184,0.0115171000,185,0.3987750000,186,0.0314417000,187,0.0031535500,188,-0.1784600000,189,0.0800510000,190,0.4193390000,191,0.2572840000,192,-0.4567300000,193,-0.0494879000,194,0.0626787000,195,0.0035087500,196,-0.1163550000,197,-0.1627870000,198,-0.0161994000,199,0.5914070000,200,-0.8749130000,201,-0.4788500000,202,-0.2692440000,203,-0.2883690000,204,0.5966880000 +103,0,0.0029703200,208,-1.0000000000,155,-0.0475976000,156,0.0045679000,157,0.0415457000,158,0.0295863000,159,-0.0312530000,160,-0.0034549600,161,-0.0213249000,162,-0.0159068000,163,-0.0231246000,164,-0.0523629000,165,0.0016874800,166,-0.0249123000,167,-0.0113336000,168,0.0247321000,169,0.0029744000,170,-0.0197627000,171,-0.0354912000,172,0.0427155000,173,0.0119854000,174,-0.0382820000,175,0.0301031000,176,-0.0018583400,177,-0.0244445000,178,-0.0165744000,179,-0.0455389000,180,-0.0488853000,181,-0.0387636000,182,-0.0167957000,183,-0.0530933000,184,-0.0450497000,185,0.0525395000,186,-0.0017577700,187,-0.0436929000,188,0.0383113000,189,-0.0004578090,190,-0.0042779200,191,0.0335721000,192,0.0200247000,193,0.0506677000,194,0.0252355000,195,0.0352990000,196,0.0050412500,197,-0.0442170000,198,0.0456574000,199,-0.0523055000,200,-0.0328147000,201,-0.0153036000,202,0.0268258000,203,-0.0355581000,204,-0.0316396000 +104,0,0.0572326000,209,-1.0000000000,155,-0.8399190000,156,0.3805300000,157,-0.0179004000,158,-0.1325300000,159,-0.4642740000,160,0.4256880000,161,-0.5939360000,162,0.2245060000,163,0.1318940000,164,0.5430180000,165,-0.0190999000,166,-0.2608280000,167,-0.5778440000,168,-0.0218456000,169,-1.1771900000,170,0.1038070000,171,0.7015570000,172,0.0215199000,173,0.1928660000,174,2.5032700000,175,0.0370804000,176,-0.1262600000,177,0.0012213700,178,-0.8866520000,179,-0.5141840000,180,0.0821039000,181,0.0298320000,182,0.2276450000,183,0.0186612000,184,-0.4599590000,185,-0.0361565000,186,-0.0372000000,187,0.0010783100,188,0.5317200000,189,0.5545690000,190,0.4268500000,191,-1.0872100000,192,-1.7888500000,193,0.0505983000,194,-0.0220182000,195,-0.0274596000,196,0.4591570000,197,-0.4165230000,198,0.0161188000,199,-0.2014630000,200,-1.0836600000,201,-1.8217300000,202,-0.0417472000,203,-0.4292160000,204,0.1252730000 +105,0,0.2571360000,210,-1.0000000000,155,0.1469950000,156,-0.2267350000,157,-0.0251284000,158,-0.6761020000,159,-1.0027600000,160,0.6041840000,161,-0.2192570000,162,-0.5985090000,163,0.2921550000,164,-0.1223140000,165,-0.0299037000,166,0.3851160000,167,-0.4379730000,168,1.4430600000,169,-0.3327020000,170,1.1530600000,171,0.6997110000,172,-0.0013999500,173,0.2744370000,174,0.8100890000,175,-0.0437945000,176,-0.3446570000,177,0.3361770000,178,0.3223180000,179,-1.3190200000,180,-0.2951570000,181,0.0206091000,182,0.0592629000,183,0.3729630000,184,-0.5494890000,185,-0.4725640000,186,-0.0361557000,187,0.0167464000,188,0.2245470000,189,0.3219360000,190,0.9697080000,191,1.0032100000,192,0.2839630000,193,0.0138261000,194,0.5449940000,195,0.0330130000,196,1.7917200000,197,0.0859777000,198,0.0206275000,199,0.5370850000,200,0.4649580000,201,0.0776339000,202,0.3132470000,203,-0.8995830000,204,0.4513970000 +106,0,0.0175343000,211,-1.0000000000,155,0.1153890000,156,0.1012880000,157,0.0185854000,158,0.0056592000,159,-0.0228994000,160,-0.0554867000,161,-0.2292940000,162,-0.0821029000,163,-0.4262600000,164,-0.1389980000,165,0.0334644000,166,0.0153484000,167,0.2645110000,168,0.0216226000,169,-0.2707050000,170,-0.0794414000,171,0.2195140000,172,0.0098936300,173,-0.0538873000,174,0.1688780000,175,-0.0345883000,176,-0.0629073000,177,-0.0348974000,178,0.2549200000,179,-0.1495770000,180,-0.0932560000,181,0.0250150000,182,-0.4390270000,183,-0.1624160000,184,-0.4086590000,185,0.4532040000,186,0.0364088000,187,0.0081935800,188,-0.1836860000,189,0.2071170000,190,0.0057103400,191,0.0337163000,192,0.0863599000,193,-0.0380073000,194,0.2855000000,195,0.0019392800,196,0.0936781000,197,0.0402413000,198,-0.0118564000,199,0.1143500000,200,0.3573220000,201,0.1624550000,202,-0.1109190000,203,0.1474100000,204,0.5099740000 +107,0,-0.2345440000,212,-1.0000000000,155,0.3616050000,156,-0.1000550000,157,0.0421374000,158,0.4897880000,159,0.1989180000,160,0.1235530000,161,-0.4174290000,162,-0.5057780000,163,0.5698420000,164,0.2960500000,165,-0.0324188000,166,-0.1473780000,167,0.5581080000,168,-0.3748960000,169,0.2431820000,170,-0.1337210000,171,0.0542120000,172,-0.0343943000,173,0.0872621000,174,-0.4929700000,175,-0.0188046000,176,0.0733824000,177,-0.2510170000,178,-0.2118680000,179,0.5213040000,180,-0.1062930000,181,-0.0012239900,182,0.6322240000,183,0.0211504000,184,0.1100150000,185,-0.1349680000,186,0.0157455000,187,0.0404483000,188,-0.5117820000,189,0.0876954000,190,-0.2257390000,191,-0.9232180000,192,0.2834590000,193,-0.0119796000,194,-1.0295200000,195,-0.0163548000,196,0.4893630000,197,0.0412197000,198,-0.0033959500,199,-0.0911907000,200,0.8719940000,201,0.4208250000,202,-0.4378840000,203,-0.2163820000,204,0.2271170000 +108,0,0.0007817010,213,-1.0000000000,155,0.0821645000,156,0.0056582000,157,0.0067670100,158,0.1084130000,159,0.0510379000,160,-0.0283643000,161,0.2587380000,162,0.2793150000,163,0.0992325000,164,-0.0713252000,165,-0.0408049000,166,0.0121488000,167,-0.0911685000,168,-0.1649320000,169,-0.0819697000,170,-0.2099020000,171,0.4205460000,172,0.0460938000,173,-0.0142405000,174,0.0062497300,175,0.0408017000,176,-0.3565820000,177,0.0579642000,178,-0.0493197000,179,0.0252293000,180,-0.1378820000,181,0.0032844300,182,-0.2062240000,183,0.3697220000,184,0.0547509000,185,-0.0042789900,186,0.0334428000,187,-0.0010894800,188,0.0157740000,189,-0.0613266000,190,-0.3846140000,191,-0.0325183000,192,-0.1940090000,193,-0.0029987600,194,0.4037590000,195,0.0119912000,196,0.0533675000,197,-0.3362590000,198,-0.0487538000,199,0.0078010300,200,0.5459240000,201,-0.4049570000,202,-0.1188320000,203,-0.0291155000,204,0.4231230000 +109,0,0.0054745500,214,-1.0000000000,155,0.1291100000,156,0.2715810000,157,0.0241069000,158,0.0708031000,159,-0.8033990000,160,-0.4969370000,161,0.3455830000,162,0.2826150000,163,0.1114760000,164,0.8413130000,165,0.0079280400,166,0.1794720000,167,0.5964580000,168,-0.5362820000,169,0.4192350000,170,0.2827370000,171,1.0650800000,172,0.0269355000,173,-0.0627576000,174,1.1554200000,175,0.0095854100,176,0.6783080000,177,-0.2763850000,178,-2.3907400000,179,1.2334600000,180,0.3282730000,181,0.0170455000,182,-0.1999030000,183,0.1304550000,184,-0.1064840000,185,0.2303450000,186,-0.0194832000,187,0.0076089400,188,-2.3542400000,189,-0.3079850000,190,-0.4669710000,191,-0.0931608000,192,0.2312290000,193,-0.0367593000,194,-0.2605360000,195,-0.0202617000,196,0.0087190200,197,-1.2167900000,198,0.0260140000,199,0.3930740000,200,-0.2110910000,201,0.0016603100,202,-0.2165460000,203,0.7947610000,204,0.3595450000 +110,0,0.0452027000,215,-1.0000000000,155,0.1863600000,156,0.5095010000,157,0.0056851900,158,0.0053097000,159,0.0594627000,160,-0.4484840000,161,-0.0948074000,162,-1.2665200000,163,-1.1589700000,164,-0.9305370000,165,0.0144163000,166,0.1528300000,167,0.1668870000,168,0.0086495800,169,0.2575720000,170,0.2709350000,171,-0.6488340000,172,-0.0274679000,173,0.0167700000,174,-0.2974460000,175,0.0360814000,176,-0.3545010000,177,0.0664459000,178,0.4227200000,179,-0.1243970000,180,0.7156590000,181,-0.0134638000,182,-0.9912470000,183,-0.0769266000,184,0.7239200000,185,-0.2991430000,186,-0.0189472000,187,0.0292376000,188,-0.0768553000,189,0.5983940000,190,-0.8067400000,191,-0.5806690000,192,-0.0628254000,193,-0.0275209000,194,0.2160660000,195,-0.0475687000,196,0.1072630000,197,-0.8634600000,198,0.0493195000,199,-0.3942870000,200,-0.1061830000,201,0.0856533000,202,0.5953660000,203,-0.5279030000,204,-1.1958400000 +111,0,0.2583700000,216,-1.0000000000,155,1.1513800000,156,-0.0030062200,157,0.0001909610,158,-0.4163450000,159,0.2650830000,160,0.2445960000,161,0.0071282800,162,0.4490130000,163,-0.0808320000,164,-0.0137551000,165,-0.0085695800,166,0.5596700000,167,-0.0389246000,168,0.4191630000,169,-0.4807150000,170,0.2207970000,171,-0.0025177700,172,-0.0343081000,173,0.0829918000,174,-1.6174400000,175,-0.0364641000,176,0.4016270000,177,0.1448680000,178,-0.3859120000,179,2.1741400000,180,-0.1891100000,181,-0.0285889000,182,0.0077376700,183,-1.1954400000,184,-0.1781280000,185,0.1168310000,186,0.0203347000,187,-0.0304023000,188,-0.4906650000,189,-0.4360290000,190,0.2400490000,191,-0.0886297000,192,-0.0163721000,193,-0.0073908300,194,-0.3219980000,195,-0.0389199000,196,0.0407838000,197,0.2985400000,198,-0.0371369000,199,0.3365380000,200,0.5394460000,201,0.2634840000,202,-0.1874870000,203,0.1685520000,204,0.1847760000 +112,0,0.0831357000,217,-1.0000000000,155,1.0665800000,156,-0.8367420000,157,0.0483793000,158,0.1610660000,159,0.0309366000,160,0.2172030000,161,-0.0648541000,162,0.9486460000,163,-0.2540910000,164,0.3191420000,165,0.0474072000,166,-0.3123460000,167,0.0953567000,168,-0.4839800000,169,0.9041160000,170,-0.1077670000,171,-0.5042500000,172,-0.0062047300,173,0.0664635000,174,0.0034597500,175,0.0242363000,176,0.2427900000,177,-0.2708430000,178,-0.0670451000,179,1.2570900000,180,-0.2826710000,181,0.0394466000,182,0.8475680000,183,0.7042540000,184,0.1219340000,185,0.6372760000,186,0.0476530000,187,-0.0238629000,188,0.3517960000,189,-0.5842210000,190,0.1623280000,191,0.0051318100,192,0.4123650000,193,0.0016827000,194,0.2933810000,195,0.0132136000,196,-0.2371860000,197,1.0621600000,198,-0.0408976000,199,0.4327090000,200,1.0298700000,201,0.0815980000,202,0.2858790000,203,0.0843774000,204,0.1242730000 +113,0,-0.0699296000,218,-1.0000000000,155,0.3552450000,156,-0.4781930000,157,-0.0465542000,158,-0.0807457000,159,-0.9097920000,160,0.4985450000,161,0.4514910000,162,-0.2975110000,163,0.2182380000,164,0.7386290000,165,0.0079038300,166,0.2004770000,167,-0.7393060000,168,0.3264090000,169,1.6319800000,170,0.1096010000,171,-0.3331990000,172,-0.0247690000,173,-0.2339540000,174,0.6353710000,175,0.0187581000,176,0.6897550000,177,-0.1380780000,178,0.1219590000,179,-0.1392130000,180,0.9483850000,181,-0.0287527000,182,-0.0551585000,183,-0.2305240000,184,0.3346950000,185,0.0225226000,186,0.0079402500,187,0.0099433600,188,0.0763662000,189,0.5015180000,190,-0.0526175000,191,-0.6349400000,192,0.0569564000,193,0.0058898800,194,0.3081260000,195,0.0485151000,196,-1.3969500000,197,0.4335460000,198,-0.0099922300,199,-0.5396580000,200,-1.4652500000,201,0.2372610000,202,0.3478960000,203,0.6754780000,204,0.4593040000 +114,0,0.0458862000,219,-1.0000000000,155,0.3781110000,156,0.6110970000,157,0.0425015000,158,1.0401400000,159,0.1433550000,160,-0.2380330000,161,0.8240710000,162,1.0087000000,163,0.2258870000,164,0.2448870000,165,-0.0423307000,166,0.3455680000,167,0.5881180000,168,0.0300617000,169,0.5317540000,170,-0.2528860000,171,0.2736870000,172,0.0197149000,173,-0.2438090000,174,0.8919780000,175,0.0341416000,176,-0.0059726200,177,-0.1498480000,178,0.2560250000,179,-0.0478358000,180,0.1134260000,181,0.0123159000,182,0.1878190000,183,0.9379880000,184,-0.1205070000,185,-0.3840040000,186,-0.0375556000,187,0.0036234100,188,0.4415010000,189,-0.7689230000,190,-0.3594490000,191,-1.0103000000,192,0.5800020000,193,0.0069344400,194,-2.7528900000,195,-0.0036340900,196,-0.4407420000,197,-0.6687200000,198,0.0143354000,199,-0.1895800000,200,-0.6730560000,201,0.7922230000,202,0.2869370000,203,0.4190780000,204,0.2808630000 +115,0,0.1622630000,220,-1.0000000000,155,0.3960850000,156,-0.6599030000,157,0.0435722000,158,1.5284300000,159,1.3026700000,160,-0.5254180000,161,0.8007990000,162,-0.0223106000,163,0.2893280000,164,0.3074760000,165,-0.0235911000,166,-2.2165400000,167,0.7941170000,168,-0.3855880000,169,1.7977700000,170,1.6110500000,171,-0.1661720000,172,0.0024759400,173,-0.2087630000,174,-0.7858750000,175,-0.0189387000,176,-0.0879302000,177,-0.4715690000,178,0.4226300000,179,-0.6114800000,180,0.2237610000,181,-0.0415590000,182,0.4614280000,183,0.8182070000,184,-0.9062310000,185,1.3602900000,186,0.0096464000,187,-0.0138225000,188,0.5102760000,189,0.8021700000,190,-0.0899359000,191,0.0894771000,192,0.7685660000,193,0.0287612000,194,0.9083440000,195,0.0420804000,196,0.7847940000,197,1.4805100000,198,-0.0362697000,199,0.2701150000,200,5.1195600000,201,2.9930000000,202,-0.8226440000,203,0.9269240000,204,0.4727300000 +116,0,-0.0003536940,221,-1.0000000000,155,0.0881128000,156,0.2582820000,157,0.0282406000,158,0.2148550000,159,-0.0325943000,160,0.3952740000,161,-0.5216580000,162,0.5831270000,163,-0.1250940000,164,0.6590030000,165,-0.0131989000,166,-0.1880160000,167,-0.2708340000,168,0.6988260000,169,0.6225740000,170,0.4490550000,171,-0.0383804000,172,0.0274118000,173,0.0592544000,174,0.2023760000,175,0.0292874000,176,0.2171030000,177,-0.2777570000,178,-0.0754331000,179,0.7866620000,180,-0.0483726000,181,0.0298980000,182,0.1420220000,183,0.2775380000,184,-0.1748910000,185,0.9949620000,186,0.0230357000,187,-0.0115255000,188,0.2866980000,189,0.1875210000,190,-0.1329570000,191,0.1092720000,192,0.0812752000,193,0.0180847000,194,-0.2934620000,195,0.0178076000,196,0.4184330000,197,1.3033500000,198,0.0111612000,199,-0.4148820000,200,-0.1523250000,201,0.2956490000,202,0.2019610000,203,0.0582516000,204,-0.1942400000 +117,0,-0.2176040000,222,-1.0000000000,155,-2.8023200000,156,-0.8760960000,157,0.0260735000,158,-0.5983610000,159,-0.6593050000,160,0.1126020000,161,-0.7842110000,162,-1.5257200000,163,0.8245790000,164,-0.8908800000,165,0.0061807200,166,-0.8557950000,167,-0.3461650000,168,0.0484303000,169,-2.3483300000,170,-0.7385280000,171,-0.9668970000,172,0.0279607000,173,-0.0393198000,174,-0.7640360000,175,0.0066973100,176,-0.1986690000,177,0.1821870000,178,0.7088680000,179,-0.8878950000,180,0.5214620000,181,-0.0068333900,182,0.0046353800,183,0.4814630000,184,-0.7349500000,185,-0.7438830000,186,0.0411280000,187,0.0397822000,188,0.0672432000,189,-1.3055700000,190,-1.1659400000,191,0.2608380000,192,-0.2807560000,193,0.0054619800,194,-1.7766600000,195,0.0230684000,196,-0.1446210000,197,0.4361920000,198,-0.0325381000,199,-0.6873530000,200,-1.6881000000,201,-0.1077970000,202,-0.5630510000,203,0.2861010000,204,-0.0138666000 +118,0,-0.1180550000,223,-1.0000000000,155,-0.1620110000,156,0.1193560000,157,-0.0285967000,158,0.0057586800,159,0.2161070000,160,-0.0441959000,161,0.3331620000,162,0.5402740000,163,0.4695110000,164,-0.2794300000,165,0.0426678000,166,0.0242958000,167,0.1016100000,168,-0.1312910000,169,0.5473850000,170,-0.0850752000,171,0.2703010000,172,0.0295432000,173,-0.1510470000,174,0.8651250000,175,-0.0294251000,176,0.0139604000,177,-0.0445099000,178,-0.6472470000,179,-0.2046160000,180,-0.0625121000,181,0.0476330000,182,0.2389150000,183,0.5651890000,184,-0.2390510000,185,-0.2535240000,186,-0.0514086000,187,-0.0123500000,188,-0.0583558000,189,0.4599290000,190,-0.1320060000,191,-0.2313700000,192,0.1361300000,193,-0.0471757000,194,0.2308570000,195,-0.0295796000,196,-0.1720210000,197,-0.3150550000,198,-0.0483507000,199,0.1809850000,200,1.3036000000,201,0.3010490000,202,-0.4009720000,203,0.0324417000,204,0.2268660000 +119,0,-0.0448578000,224,-1.0000000000,155,-0.0600769000,156,0.2411200000,157,0.0206289000,158,-0.0710446000,159,-0.1006230000,160,-0.0922252000,161,0.0251999000,162,0.5218990000,163,0.1955140000,164,0.2211450000,165,-0.0068567200,166,-0.2780070000,167,0.1904030000,168,-0.4300330000,169,1.7402300000,170,-0.0320453000,171,0.4425930000,172,0.0340836000,173,-0.1669290000,174,0.3197430000,175,0.0327128000,176,0.3434320000,177,-0.0175982000,178,-0.2580670000,179,0.8254090000,180,0.0997513000,181,0.0551600000,182,0.0933540000,183,0.5476400000,184,-0.2524890000,185,0.0357380000,186,-0.0299856000,187,0.0239137000,188,-0.1428210000,189,0.0941802000,190,0.6735930000,191,-0.3377550000,192,-0.8740560000,193,-0.0100055000,194,0.5833890000,195,0.0457668000,196,-0.1705840000,197,-0.0372486000,198,-0.0174075000,199,-0.1740940000,200,0.9788550000,201,0.5348000000,202,0.1817530000,203,0.0224429000,204,-0.0910740000 +120,0,0.6526010000,225,-1.0000000000,155,-0.2902280000,156,1.0729400000,157,0.0182315000,158,0.6848390000,159,0.9114460000,160,0.2764430000,161,0.0106527000,162,0.0411482000,163,0.0734863000,164,-0.1389360000,165,0.0130948000,166,-0.0199744000,167,0.3233990000,168,0.1378610000,169,-0.2628400000,170,-0.2490260000,171,-1.1410600000,172,0.0469822000,173,0.2260810000,174,-0.5381660000,175,-0.0360651000,176,-0.5690990000,177,-0.1071180000,178,0.2495800000,179,0.0778009000,180,0.2246450000,181,0.0510857000,182,0.4812120000,183,-0.4173870000,184,-0.2357420000,185,0.6513750000,186,0.0298977000,187,-0.0415421000,188,1.1312600000,189,0.1516790000,190,0.2132830000,191,0.2228380000,192,-0.4917500000,193,0.0160725000,194,0.1894710000,195,-0.0272858000,196,-1.2550200000,197,-0.5065150000,198,0.0422895000,199,0.5290760000,200,2.3344900000,201,0.1200300000,202,0.4799180000,203,0.5903930000,204,0.7557330000 +121,0,-0.4370630000,226,-1.0000000000,155,0.4218140000,156,-0.5215960000,157,-0.0571335000,158,-0.1765310000,159,1.1058600000,160,-0.4266400000,161,-0.4141590000,162,0.8565870000,163,0.2299440000,164,0.3165160000,165,0.0120647000,166,-1.0772700000,167,-0.3443720000,168,-0.3969470000,169,1.5564000000,170,0.4821140000,171,-0.1256310000,172,0.0198699000,173,0.6501400000,174,0.1767550000,175,-0.0444977000,176,-0.5973670000,177,-0.0116637000,178,-0.0349558000,179,1.6462800000,180,-0.3723080000,181,-0.0056820800,182,-0.3030830000,183,0.7360440000,184,-1.1561800000,185,0.9668290000,186,0.0109700000,187,0.0085905600,188,-0.2607970000,189,0.3677510000,190,-0.5668450000,191,0.3224990000,192,0.5470240000,193,0.0121523000,194,1.0956300000,195,0.0424950000,196,-0.4262010000,197,-0.8000730000,198,0.0076953800,199,0.2248450000,200,0.9662140000,201,1.7230700000,202,-0.5013990000,203,0.2539170000,204,-0.6735650000 +122,0,-0.0694955000,227,-1.0000000000,155,-0.0478984000,156,-0.3333190000,157,0.0403069000,158,0.0237512000,159,-0.7589920000,160,-0.2536540000,161,0.2827050000,162,-0.5733970000,163,0.6363710000,164,-0.1612070000,165,-0.0358279000,166,0.1922090000,167,0.3120040000,168,-0.3886570000,169,-1.3571600000,170,-1.0874100000,171,0.2166710000,172,0.0012240100,173,-0.2580900000,174,-0.0193508000,175,-0.0398746000,176,-0.2083610000,177,0.1012810000,178,0.8390580000,179,-0.4409090000,180,-0.1807560000,181,0.0458214000,182,-0.3642570000,183,0.5437330000,184,0.2025150000,185,0.6138910000,186,-0.0474021000,187,-0.0398690000,188,0.5638430000,189,-0.8543360000,190,-1.7382400000,191,0.1844830000,192,-0.2421880000,193,0.0116560000,194,1.0765400000,195,0.0385796000,196,-0.3370080000,197,0.8454170000,198,-0.0312475000,199,-0.3117320000,200,-0.2163170000,201,0.1160250000,202,0.4127390000,203,0.4487840000,204,-0.4783870000 +123,0,0.0563135000,228,-1.0000000000,155,0.1013270000,156,0.0317163000,157,-0.0082823500,158,-0.0400897000,159,-0.0495965000,160,0.1581230000,161,-0.1919650000,162,0.0122641000,163,-0.5901070000,164,-0.0931195000,165,0.0460470000,166,0.6717170000,167,0.5827090000,168,-0.7979130000,169,0.5115740000,170,-0.6104610000,171,-0.2557830000,172,0.0197705000,173,-0.2922300000,174,0.7801650000,175,0.0113823000,176,0.0113945000,177,0.0073078900,178,0.1054130000,179,0.8243710000,180,0.1032930000,181,-0.0063509200,182,-0.1031150000,183,-0.0015777300,184,0.2664720000,185,0.4099740000,186,0.0277954000,187,-0.0099571300,188,0.0040357200,189,-0.0114910000,190,-0.0803955000,191,-1.1957200000,192,0.1493410000,193,-0.0425295000,194,0.6901590000,195,0.0087873900,196,-0.2306430000,197,0.6811920000,198,-0.0084478300,199,0.0488062000,200,1.1219800000,201,0.6492680000,202,0.1248350000,203,-0.1303020000,204,-0.3728090000 +124,0,0.2005690000,229,-1.0000000000,155,1.3116000000,156,0.3936160000,157,0.0185886000,158,0.0319767000,159,0.6268070000,160,-1.1174100000,161,0.7811940000,162,0.6418320000,163,-0.4155040000,164,0.6302410000,165,-0.0311980000,166,-2.9098600000,167,-0.7919150000,168,0.7222340000,169,1.9734900000,170,0.4012970000,171,2.9271300000,172,0.0424519000,173,-0.0918648000,174,1.6880000000,175,-0.0192926000,176,0.3583310000,177,-0.3655950000,178,0.3847300000,179,1.6272800000,180,0.1452770000,181,0.0210562000,182,0.3654440000,183,1.3089300000,184,1.6423100000,185,1.2664500000,186,0.0218619000,187,0.0207591000,188,-0.3747730000,189,0.3745210000,190,0.1733860000,191,-1.8282900000,192,1.0484500000,193,-0.0284587000,194,2.0653000000,195,-0.0026060400,196,1.1189400000,197,0.8724000000,198,0.0040331000,199,-0.6706650000,200,2.2476800000,201,1.5941200000,202,0.9249370000,203,-1.2178400000,204,1.0522800000 +125,0,0.6190080000,230,-1.0000000000,155,-0.4900250000,156,-0.0753959000,157,-0.0098349000,158,-0.1877330000,159,-0.1467300000,160,-0.2965070000,161,0.1994110000,162,0.3951090000,163,-0.1565480000,164,0.0770613000,165,-0.0068111100,166,-0.1319260000,167,0.0840797000,168,0.0040875000,169,1.0387000000,170,0.1559560000,171,0.1765830000,172,0.0555136000,173,0.0476182000,174,1.3034800000,175,-0.0314599000,176,-0.3220770000,177,0.2694820000,178,0.0264708000,179,0.4644630000,180,0.0774557000,181,-0.0388121000,182,0.1924530000,183,0.1739890000,184,0.3673720000,185,0.6389820000,186,0.0203869000,187,-0.0266969000,188,-0.5043450000,189,0.1859250000,190,-0.2612470000,191,0.1234870000,192,-0.2664630000,193,-0.0428927000,194,-0.3739810000,195,-0.0075687800,196,0.2449100000,197,-0.2812210000,198,-0.0427338000,199,-0.1028440000,200,1.1548900000,201,0.1750110000,202,0.3005980000,203,0.2378070000,204,-0.1022720000 +126,0,-0.0757925000,231,-1.0000000000,155,-0.0263316000,156,0.0889921000,157,-0.0021869700,158,0.0555978000,159,0.0073445000,160,0.0415682000,161,0.1063360000,162,0.1749420000,163,0.1236850000,164,-0.5125020000,165,-0.0224647000,166,0.1407550000,167,-0.3222290000,168,-0.3223170000,169,-0.1595320000,170,0.1004150000,171,0.0021129600,172,-0.0480635000,173,-0.0994302000,174,0.5161510000,175,0.0429486000,176,-0.0964809000,177,0.0305357000,178,-0.3604890000,179,0.2909420000,180,-0.0744655000,181,0.0338040000,182,-0.4438250000,183,0.0865395000,184,0.1122010000,185,0.1748960000,186,-0.0135936000,187,0.0305274000,188,0.1818590000,189,-0.4994700000,190,-0.8153410000,191,-0.3416420000,192,-0.0957148000,193,0.0018169000,194,0.0525679000,195,0.0215749000,196,0.2489590000,197,-0.1268380000,198,-0.0475731000,199,-0.1725250000,200,-0.1777050000,201,-0.3096220000,202,0.0135128000,203,0.1357390000,204,0.2223550000 +127,0,-0.1646180000,232,-1.0000000000,155,0.4246230000,156,-0.3200110000,157,0.0223435000,158,-0.3017170000,159,-0.3014660000,160,-0.1967230000,161,0.5363580000,162,0.3612900000,163,-0.0761559000,164,0.0816841000,165,-0.0491842000,166,-0.2594420000,167,-0.1985840000,168,-0.1149400000,169,0.3297770000,170,0.9347120000,171,-0.4930870000,172,-0.0225445000,173,0.1329680000,174,-0.0141839000,175,-0.0373448000,176,0.2367230000,177,-0.2013960000,178,-0.0506223000,179,0.7382470000,180,-0.1010340000,181,-0.0087432600,182,-0.6262110000,183,-0.5831820000,184,-0.0248168000,185,-0.0183653000,186,-0.0226658000,187,0.0112024000,188,0.1239050000,189,-0.3975580000,190,-0.3321450000,191,-0.1097090000,192,0.1727120000,193,0.0039567800,194,0.2080210000,195,0.0127096000,196,0.7750010000,197,0.4318600000,198,-0.0274774000,199,0.3226410000,200,2.0518800000,201,-0.0489196000,202,0.2960310000,203,0.1909060000,204,-0.4591450000 +128,0,0.6353270000,233,-1.0000000000,155,0.5742840000,156,-0.0232163000,157,-0.0239160000,158,-0.2816450000,159,-0.4077290000,160,0.2916020000,161,-0.2732180000,162,-1.8979600000,163,0.4647230000,164,0.7405280000,165,0.0076830800,166,0.1414880000,167,-0.4296060000,168,0.2924550000,169,0.0570502000,170,-0.4019140000,171,-0.4974450000,172,-0.0414559000,173,0.2769760000,174,-1.1620100000,175,0.0272214000,176,-0.0922782000,177,0.3867300000,178,0.3082850000,179,-1.2695100000,180,-0.0296724000,181,0.0268768000,182,0.2174970000,183,0.0238028000,184,-0.4183850000,185,0.0661433000,186,0.0405394000,187,-0.0349376000,188,-0.1886850000,189,0.1390340000,190,0.7825780000,191,1.0994400000,192,-0.5128380000,193,0.0119828000,194,-0.3317180000,195,0.0410919000,196,-1.2922300000,197,0.4175520000,198,0.0222546000,199,0.2219280000,200,-0.6655600000,201,1.1138200000,202,-0.5298420000,203,-0.1387430000,204,0.0382160000 +129,0,-0.0186143000,234,-1.0000000000,155,0.0397921000,156,0.1205900000,157,-0.0148280000,158,0.5165460000,159,0.0785032000,160,0.0166356000,161,0.0462616000,162,-0.2993850000,163,-0.1078240000,164,0.5082380000,165,-0.0039781800,166,0.1860660000,167,0.0176483000,168,-0.2896760000,169,-0.4048120000,170,-0.0541325000,171,0.1311350000,172,-0.0328881000,173,0.0154584000,174,-0.0967672000,175,0.0090334000,176,0.2540720000,177,-0.1348340000,178,0.2091410000,179,-0.2503670000,180,-0.0219060000,181,-0.0212260000,182,0.1604700000,183,0.4254260000,184,0.0217369000,185,-0.0348048000,186,0.0048354400,187,0.0351320000,188,-0.1450740000,189,0.3594100000,190,0.1025580000,191,-0.1484490000,192,0.2312630000,193,-0.0237708000,194,-0.2284710000,195,-0.0251725000,196,0.2999910000,197,0.1437900000,198,-0.0117118000,199,-0.2286570000,200,0.4788650000,201,-0.0704381000,202,0.0395739000,203,-0.1598110000,204,0.5081100000 +130,0,-0.1813110000,235,-1.0000000000,155,-0.2744090000,156,0.4633510000,157,-0.0470806000,158,0.1289110000,159,-0.1449160000,160,-0.0856557000,161,0.5151780000,162,-0.6999710000,163,0.0746368000,164,0.8681810000,165,0.0159366000,166,0.1644800000,167,0.2382660000,168,-0.0574540000,169,0.0305020000,170,0.3241290000,171,-0.2401600000,172,-0.0333003000,173,-0.0530387000,174,-0.7496610000,175,-0.0231247000,176,0.5532660000,177,-0.1374010000,178,-1.2339900000,179,0.9643660000,180,0.6168080000,181,0.0216528000,182,-0.5137210000,183,-0.4795810000,184,0.4720310000,185,-0.2189600000,186,-0.0381193000,187,-0.0360883000,188,0.1405050000,189,-0.0560549000,190,0.2749140000,191,-0.2843180000,192,-0.2430960000,193,-0.0205258000,194,0.5370680000,195,0.0335612000,196,-0.7772890000,197,-0.3023110000,198,0.0264530000,199,0.2908760000,200,0.4713240000,201,-0.2672780000,202,-0.2527200000,203,0.1342000000,204,-0.3639810000 +131,0,-0.0472835000,236,-1.0000000000,155,0.7568560000,156,0.3655320000,157,-0.0420807000,158,0.4803190000,159,0.8445230000,160,0.7930050000,161,0.1468890000,162,-1.8046600000,163,-0.5255740000,164,0.2204740000,165,0.0043955900,166,0.2773300000,167,0.7300010000,168,-0.7633040000,169,0.3706480000,170,-0.0987596000,171,1.2439800000,172,0.0179436000,173,0.0043343900,174,2.1410800000,175,-0.0089123700,176,-0.1181280000,177,-0.2767110000,178,0.7903040000,179,-1.0854400000,180,-0.6746110000,181,-0.0219582000,182,0.4113090000,183,0.4959890000,184,0.3310750000,185,-0.1391290000,186,0.0274390000,187,0.0624776000,188,0.3414530000,189,0.7396850000,190,0.4144130000,191,0.4476500000,192,0.7508530000,193,-0.0023404700,194,-1.1931200000,195,0.0436324000,196,-1.5473300000,197,1.2187600000,198,-0.0255455000,199,0.0214509000,200,1.4672400000,201,0.0687853000,202,-0.6158730000,203,-0.5653600000,204,0.2381430000 +132,0,0.3401890000,237,-1.0000000000,155,-0.0993888000,156,-0.6906930000,157,0.0537862000,158,0.1879180000,159,-0.1701540000,160,0.0483399000,161,-0.1525970000,162,1.0123700000,163,-0.5935640000,164,0.0472392000,165,-0.0330707000,166,0.2619760000,167,-0.4753100000,168,0.2000450000,169,-0.8688240000,170,0.2813920000,171,-0.3804120000,172,0.0089921500,173,0.0747211000,174,0.1714450000,175,-0.0133330000,176,-0.1142760000,177,0.2048440000,178,0.0835992000,179,0.4248660000,180,-0.0603838000,181,-0.0294731000,182,0.2279510000,183,-0.1165300000,184,-0.0427633000,185,0.5538220000,186,0.0376816000,187,-0.0269061000,188,-0.0019885100,189,-0.0409549000,190,-0.0074473200,191,0.5484550000,192,-0.4297740000,193,0.0400415000,194,0.0376335000,195,0.0085070500,196,-0.1668830000,197,0.3053220000,198,0.0455822000,199,0.1337030000,200,-0.7802920000,201,-0.3037440000,202,0.4597520000,203,0.0060347200,204,-0.6887070000 +133,0,-0.4390720000,238,-1.0000000000,155,0.1683610000,156,0.0313327000,157,0.0223799000,158,0.6957900000,159,-0.0907125000,160,-0.1152910000,161,0.3060090000,162,0.0115371000,163,0.3930790000,164,0.1189610000,165,0.0005959800,166,0.3930670000,167,-0.2812310000,168,-0.0318313000,169,0.2762170000,170,0.1310210000,171,-0.5067060000,172,0.0068455700,173,0.1009300000,174,1.2193900000,175,0.0106005000,176,0.2521670000,177,-0.3259110000,178,-0.0201614000,179,0.0220308000,180,-0.0017086300,181,-0.0097143000,182,-0.1185100000,183,0.4522420000,184,0.2154270000,185,0.1277460000,186,0.0094947300,187,0.0243308000,188,0.1005060000,189,-0.0209121000,190,-0.1048510000,191,-0.3068010000,192,0.0027945000,193,0.0245131000,194,-0.2446390000,195,-0.0226559000,196,0.2565600000,197,0.3147690000,198,-0.0188838000,199,0.0162539000,200,0.1629860000,201,0.5558910000,202,0.0637123000,203,-0.1554550000,204,0.4998330000 +134,0,-0.2631680000,239,-1.0000000000,155,-0.3603220000,156,0.0907084000,157,-0.0255634000,158,-0.2421070000,159,0.1943470000,160,0.3045140000,161,0.2095360000,162,0.2741030000,163,0.3724560000,164,0.0714915000,165,0.0050021900,166,-0.0159489000,167,0.4479640000,168,-0.2584970000,169,0.7172390000,170,-0.2300810000,171,0.3746720000,172,-0.0382714000,173,-0.0509157000,174,0.0081519600,175,-0.0028032400,176,-0.0321215000,177,-0.1299330000,178,0.0611414000,179,0.8421240000,180,-0.0700469000,181,0.0401511000,182,-0.4233990000,183,-0.2222300000,184,0.2467030000,185,0.7661030000,186,0.0494393000,187,-0.0125331000,188,-0.4177140000,189,0.0512688000,190,0.0758133000,191,-0.3385510000,192,-0.3254540000,193,-0.0483105000,194,0.1671480000,195,0.0156196000,196,1.0577100000,197,0.3968600000,198,0.0106859000,199,0.0277442000,200,1.2864300000,201,1.8834500000,202,-0.5366960000,203,-0.2420430000,204,0.4056480000 +135,0,-0.0179799000,240,-1.0000000000,155,-0.4892350000,156,0.4921830000,157,-0.0215500000,158,0.8734840000,159,-0.1585550000,160,-0.6138900000,161,-0.0221769000,162,0.6206990000,163,-0.7769780000,164,-0.4792590000,165,-0.0179044000,166,0.6107300000,167,0.2301250000,168,-1.0741200000,169,-1.5610100000,170,-0.3918480000,171,0.7411850000,172,0.0165559000,173,-0.2366530000,174,0.1180840000,175,0.0516787000,176,0.4370770000,177,-0.0851793000,178,-0.4781030000,179,0.2828720000,180,-0.7430920000,181,0.0239955000,182,-0.5602430000,183,-0.1947350000,184,0.4265870000,185,0.2085580000,186,0.0480263000,187,0.0183432000,188,0.1391120000,189,-0.6231920000,190,0.1279990000,191,0.1286700000,192,1.1274300000,193,-0.0077614800,194,-0.2706400000,195,0.0001478750,196,-0.6701430000,197,0.6562800000,198,0.0117327000,199,0.5141710000,200,0.2635050000,201,0.4756290000,202,0.7652160000,203,0.2068090000,204,-0.0072819300 +136,0,0.0060145800,241,-1.0000000000,155,-0.0180872000,156,-0.0295853000,157,-0.0215418000,158,0.0009501550,159,-0.0433683000,160,0.0177668000,161,0.0140818000,162,0.0082245800,163,-0.0346455000,164,-0.0273581000,165,-0.0119664000,166,0.0225097000,167,0.0126145000,168,0.0211643000,169,-0.0040136500,170,0.0113090000,171,-0.0085564400,172,0.0169639000,173,-0.0483721000,174,-0.0445034000,175,-0.0132594000,176,-0.0155436000,177,-0.0382024000,178,0.0130677000,179,-0.0101736000,180,0.0123768000,181,-0.0377619000,182,-0.0345829000,183,0.0370712000,184,-0.0334433000,185,-0.0018012900,186,0.0388441000,187,0.0139155000,188,-0.0467388000,189,-0.0351706000,190,-0.0408881000,191,-0.0089416900,192,0.0438172000,193,-0.0351746000,194,0.0377768000,195,0.0404014000,196,-0.0056235700,197,0.0054072400,198,0.0461209000,199,-0.0421067000,200,0.0377881000,201,-0.0131723000,202,0.0136448000,203,0.0073275400,204,-0.0198466000 +137,0,-0.0839292000,242,-1.0000000000,155,-0.2525750000,156,0.2060830000,157,-0.0030555700,158,0.1348070000,159,0.1400950000,160,0.0863721000,161,0.0327311000,162,-0.8962460000,163,0.5845410000,164,-0.3336410000,165,-0.0384007000,166,0.5653920000,167,-0.4703950000,168,0.1547860000,169,-0.6019040000,170,-0.3666410000,171,0.7816550000,172,0.0420946000,173,-0.0564187000,174,0.0743439000,175,-0.0156896000,176,-0.3416080000,177,0.1447630000,178,-0.1699780000,179,-0.0282814000,180,0.5138180000,181,0.0138507000,182,-0.5853590000,183,-0.1835260000,184,0.1359590000,185,-0.1817630000,186,-0.0235469000,187,-0.0193666000,188,-0.3356330000,189,0.0637011000,190,0.8401410000,191,-0.2136630000,192,-0.7985160000,193,0.0069757400,194,-0.3318190000,195,-0.0412789000,196,0.4088450000,197,-0.4596480000,198,0.0031478900,199,0.5911180000,200,0.5766900000,201,0.1357280000,202,-0.5825350000,203,-0.0013496500,204,0.3705390000 +138,0,-0.5992110000,243,-1.0000000000,155,0.5198480000,156,0.0779803000,157,0.0210347000,158,-0.0423296000,159,-0.5496880000,160,0.9636200000,161,-0.3393170000,162,0.2746710000,163,-0.0329340000,164,0.5945730000,165,0.0017669200,166,-1.1475600000,167,-0.5030350000,168,-0.0724955000,169,-0.2299520000,170,0.0301438000,171,-0.3063200000,172,-0.0148421000,173,0.8346690000,174,-0.5232760000,175,-0.0500283000,176,-0.6670650000,177,0.2110210000,178,0.2232610000,179,0.2879780000,180,-0.0661280000,181,0.0240803000,182,0.1599580000,183,-1.3618900000,184,-0.4733490000,185,-0.1838310000,186,-0.0445602000,187,-0.0449348000,188,-0.1363370000,189,0.3367150000,190,0.6530840000,191,0.6969090000,192,0.3448060000,193,0.0112311000,194,0.8005740000,195,-0.0382705000,196,-0.4101340000,197,-0.0131622000,198,0.0417334000,199,0.9710070000,200,1.4616300000,201,-0.4367930000,202,-0.2101010000,203,0.2494460000,204,-0.0208806000 +139,0,-0.1022030000,244,-1.0000000000,155,0.7142230000,156,0.1766880000,157,-0.0112080000,158,0.3215200000,159,-0.0079073100,160,0.4935070000,161,0.8751060000,162,1.0748900000,163,0.3863330000,164,-0.0384985000,165,-0.0371105000,166,-0.7959780000,167,0.6827610000,168,-0.7264620000,169,0.6009990000,170,0.1485790000,171,1.1367800000,172,0.0579511000,173,-0.1543140000,174,-0.7125810000,175,-0.0350040000,176,-0.1110080000,177,-0.1946550000,178,0.1960920000,179,1.3716900000,180,-2.6799700000,181,0.0401788000,182,0.3466850000,183,1.2133200000,184,0.4228460000,185,-0.0723257000,186,-0.0227790000,187,0.0131683000,188,0.0029818800,189,-0.1084960000,190,0.3300660000,191,-1.3037600000,192,0.8020940000,193,0.0066109400,194,1.3722900000,195,-0.0095307800,196,-0.4752880000,197,1.1338800000,198,-0.0189682000,199,0.2843840000,200,-0.6089690000,201,0.7077680000,202,-0.0433879000,203,-0.2486900000,204,0.7489770000 +140,0,-0.3037650000,245,-1.0000000000,155,1.0570600000,156,0.4607840000,157,0.0127942000,158,-0.0746540000,159,-0.0118620000,160,-0.1017490000,161,-0.0953598000,162,-1.5062700000,163,0.4697790000,164,-0.4158400000,165,-0.0000266473,166,0.0463886000,167,0.6081110000,168,0.4094790000,169,0.8926140000,170,-0.3730220000,171,1.5439100000,172,-0.0065140800,173,-0.3559720000,174,0.0340063000,175,-0.0043081100,176,0.2538470000,177,-0.2666820000,178,-0.1657980000,179,0.0518734000,180,0.0258475000,181,-0.0252221000,182,0.6847850000,183,-0.2902550000,184,0.1243640000,185,0.7394290000,186,0.0138257000,187,0.0393057000,188,0.2772560000,189,0.8651750000,190,-1.1049800000,191,-0.3468650000,192,0.7381250000,193,0.0341368000,194,0.9581340000,195,-0.0222300000,196,-0.8459540000,197,-0.1560210000,198,0.0434101000,199,-0.1040620000,200,2.7099000000,201,1.9875300000,202,-0.0172641000,203,0.4866340000,204,0.1130240000 +141,0,-0.1636530000,246,-1.0000000000,155,0.0526946000,156,-0.0643734000,157,0.0217060000,158,-0.4352550000,159,0.2001910000,160,0.0300231000,161,0.0571307000,162,0.0679969000,163,0.0119361000,164,0.2769090000,165,0.0055725400,166,0.0098191900,167,-0.4410950000,168,0.1578380000,169,-0.0644525000,170,0.1330040000,171,-0.0219982000,172,-0.0071611400,173,-0.0458668000,174,0.0476956000,175,-0.0045801900,176,-0.0404005000,177,-0.0412017000,178,-0.1738890000,179,0.3411770000,180,0.0774870000,181,-0.0275130000,182,-0.0405853000,183,-0.0086029300,184,-0.0791272000,185,0.0081007800,186,0.0100865000,187,0.0449805000,188,-0.0641995000,189,0.2803490000,190,0.3068020000,191,-0.1068380000,192,-0.6824120000,193,-0.0259847000,194,-0.1990900000,195,0.0072068700,196,0.1245430000,197,0.1310740000,198,-0.0135232000,199,-0.0662234000,200,-0.4396990000,201,-0.1223440000,202,-0.0409716000,203,0.0596024000,204,-0.0419709000 +142,0,0.0298705000,247,-1.0000000000,155,0.0798785000,156,0.1591340000,157,0.0130725000,158,-0.0361349000,159,0.2109990000,160,-0.0698663000,161,0.0280301000,162,-0.5792150000,163,0.2272970000,164,0.7079480000,165,-0.0091755600,166,-0.3025660000,167,0.6285280000,168,0.1132090000,169,-0.3179570000,170,1.0139600000,171,-1.1865500000,172,0.0142584000,173,-0.3100230000,174,1.0973800000,175,-0.0297170000,176,0.4303680000,177,-0.0277291000,178,-0.2864250000,179,-0.5911370000,180,0.0115115000,181,0.0009173760,182,0.2460510000,183,0.4175610000,184,-0.2564280000,185,-0.0358712000,186,-0.0204743000,187,-0.0091448500,188,0.6800170000,189,0.9395670000,190,0.7449480000,191,0.3000350000,192,0.0288509000,193,-0.0191997000,194,0.8487320000,195,-0.0396136000,196,-0.7215950000,197,0.5748410000,198,-0.0097039400,199,0.0227253000,200,-0.3673900000,201,-0.0066848600,202,0.0375323000,203,0.3467280000,204,0.3094160000 +143,0,-0.1906400000,248,-1.0000000000,155,-0.0078087200,156,0.1423000000,157,0.0463889000,158,1.0685100000,159,-0.1362420000,160,0.3673450000,161,0.6638960000,162,1.1554900000,163,-0.4031280000,164,0.2810260000,165,0.0037311200,166,0.5651200000,167,0.4595570000,168,-0.2407490000,169,1.4095200000,170,0.0385307000,171,-0.6143600000,172,0.0043122200,173,0.0750812000,174,0.5527730000,175,0.0181074000,176,0.3714300000,177,-0.4658500000,178,0.8081240000,179,0.2139810000,180,0.4094670000,181,-0.0503183000,182,-0.7391040000,183,0.6770470000,184,-0.2418240000,185,0.7339750000,186,-0.0191107000,187,0.0179235000,188,-0.1238070000,189,-0.8719870000,190,-0.1999320000,191,0.0470095000,192,1.3032000000,193,-0.0390859000,194,-0.3159590000,195,0.0241200000,196,0.9524840000,197,0.9898110000,198,0.0045985900,199,-0.0911036000,200,1.7274900000,201,0.8097380000,202,0.8389620000,203,-0.7311130000,204,-0.1715300000 +144,0,-0.0154844000,249,-1.0000000000,155,0.0993431000,156,0.0582215000,157,0.0396544000,158,-0.0429628000,159,0.0204609000,160,0.3884680000,161,-0.6428230000,162,-0.5812390000,163,0.0315858000,164,-0.6298160000,165,-0.0077607200,166,-0.1063780000,167,-0.5545580000,168,-0.0603769000,169,0.2776430000,170,0.1400650000,171,-0.1732490000,172,0.0142509000,173,0.0454887000,174,0.0927240000,175,0.0453021000,176,-0.2419540000,177,0.2603160000,178,0.4392060000,179,-0.0562996000,180,0.3651570000,181,0.0001748720,182,0.0494753000,183,1.1020900000,184,-0.5780040000,185,1.1298300000,186,0.0437527000,187,0.0045122800,188,-0.3468060000,189,-0.7771840000,190,0.0058969900,191,0.9889320000,192,-0.2983130000,193,0.0175452000,194,-0.7944810000,195,0.0447060000,196,-1.3310700000,197,-0.2789780000,198,-0.0132536000,199,-0.2695230000,200,-0.3770680000,201,-0.7258070000,202,0.3684440000,203,-0.2359860000,204,-0.7146730000 +145,0,0.2505100000,250,-1.0000000000,155,0.6510520000,156,0.2218370000,157,-0.0300970000,158,0.1163970000,159,-0.3290700000,160,-0.0011657500,161,0.7035350000,162,-0.2439020000,163,0.3000840000,164,-0.3420250000,165,0.0021540400,166,0.2502930000,167,0.2329890000,168,0.9267520000,169,0.3044410000,170,0.2826060000,171,-0.7981140000,172,-0.0408157000,173,0.3000930000,174,-0.2107610000,175,0.0224777000,176,0.2491660000,177,-0.2126900000,178,1.1533600000,179,-0.6037670000,180,-0.1878080000,181,-0.0425930000,182,-0.2362050000,183,-1.1404100000,184,-0.0858050000,185,0.0370887000,186,-0.0350228000,187,0.0234192000,188,-0.4725370000,189,0.2583880000,190,0.1735300000,191,-0.4615610000,192,0.8377500000,193,0.0289167000,194,-0.3262100000,195,-0.0205372000,196,-0.0086287300,197,0.4932570000,198,0.0447373000,199,-0.1370780000,200,-2.0692400000,201,-0.4378400000,202,0.2574590000,203,0.3815340000,204,0.3377630000 +146,0,0.1780980000,251,-1.0000000000,155,-0.1486430000,156,-0.2917100000,157,-0.0170278000,158,-0.0597828000,159,0.9971270000,160,0.3866000000,161,-0.0586692000,162,-0.0665437000,163,0.0418971000,164,-0.1113500000,165,-0.0285629000,166,-0.2296980000,167,-0.1358590000,168,0.7874900000,169,-0.0635899000,170,-0.0751540000,171,-0.5688570000,172,0.0029060800,173,0.0931211000,174,-0.2398990000,175,0.0238067000,176,0.0139448000,177,0.1101910000,178,-0.3830540000,179,0.4262260000,180,-0.6292430000,181,-0.0179625000,182,0.4711430000,183,0.0938645000,184,-0.2610800000,185,0.6530650000,186,0.0164668000,187,0.0024995100,188,0.0089696200,189,0.7107170000,190,-0.9611360000,191,0.1639880000,192,-0.3548200000,193,0.0386114000,194,-0.0061727300,195,0.0138757000,196,-1.4247700000,197,-0.8472760000,198,0.0314280000,199,0.6146130000,200,-0.0237315000,201,-0.4252280000,202,0.1034780000,203,-0.0348023000,204,-0.4712710000 +147,0,0.2264130000,252,-1.0000000000,155,-0.5585110000,156,0.4451900000,157,0.0108959000,158,-0.1804280000,159,0.7480290000,160,-0.0523072000,161,0.2295510000,162,-0.4972320000,163,0.1050640000,164,-0.3092400000,165,-0.0134160000,166,0.6409550000,167,0.7159060000,168,0.4804620000,169,1.3924900000,170,0.1420490000,171,0.2998990000,172,-0.0186682000,173,-0.1988960000,174,0.8909310000,175,0.0292981000,176,0.3913420000,177,0.0089901600,178,-0.2361690000,179,0.0067590800,180,-0.6074040000,181,-0.0205274000,182,0.0321726000,183,0.3234050000,184,0.0975439000,185,-0.9614190000,186,0.0069134700,187,0.0204408000,188,-0.1426830000,189,0.9769740000,190,0.5235050000,191,0.0597503000,192,-0.3576210000,193,-0.0193948000,194,1.5888000000,195,-0.0283772000,196,-0.6303250000,197,-0.2898420000,198,0.0411350000,199,-0.0784309000,200,2.7680300000,201,0.7876340000,202,-0.7897820000,203,0.3695810000,204,0.1176620000 +148,0,0.0488983000,253,-1.0000000000,155,-0.5868290000,156,-0.0862449000,157,0.0041209200,158,0.2848250000,159,0.0869037000,160,0.2323040000,161,-0.0241979000,162,0.5155220000,163,-0.4260500000,164,-0.6559610000,165,-0.0256950000,166,0.3877220000,167,-0.1525950000,168,0.7267510000,169,0.7197070000,170,0.7183210000,171,0.5830800000,172,0.0383660000,173,-0.0814205000,174,2.2879100000,175,0.0216648000,176,0.0505269000,177,0.2084340000,178,0.3433130000,179,0.0588945000,180,0.0324760000,181,-0.0328480000,182,0.9392270000,183,-0.4639150000,184,-0.3032010000,185,1.0041900000,186,-0.0090512500,187,0.0182818000,188,0.4031010000,189,-0.7410510000,190,0.4722030000,191,0.1416490000,192,-0.8672380000,193,-0.0036646600,194,0.5014400000,195,0.0364143000,196,0.5040940000,197,0.9334540000,198,-0.0259492000,199,-0.7060060000,200,-0.0364290000,201,-0.9471140000,202,0.5209030000,203,-0.4405980000,204,-0.8889010000 +149,0,0.1215960000,254,-1.0000000000,155,-0.5303490000,156,0.3331620000,157,-0.0349193000,158,0.7794700000,159,0.2620240000,160,0.2862090000,161,-0.3990920000,162,0.6501280000,163,-0.7668860000,164,-0.4192330000,165,0.0123917000,166,-0.2624950000,167,0.2605640000,168,0.0373124000,169,-0.5424510000,170,-0.2751290000,171,0.1327610000,172,0.0149033000,173,0.0679920000,174,-0.2012220000,175,0.0175145000,176,0.2411190000,177,-0.0787562000,178,-0.1537130000,179,0.6099020000,180,-0.0977391000,181,0.0271771000,182,-1.5168800000,183,0.6085280000,184,0.2982150000,185,0.3030140000,186,0.0002483800,187,-0.0156917000,188,0.1276500000,189,0.5716500000,190,-0.7995350000,191,0.0042864600,192,0.1828390000,193,0.0298731000,194,1.0073900000,195,-0.0512409000,196,0.8394950000,197,-0.5730170000,198,-0.0329235000,199,0.2408380000,200,0.5019840000,201,0.0077189100,202,0.2697830000,203,-0.1766430000,204,-0.4263370000 +150,0,-0.0095203800,305,-1.0000000000,255,-0.2493700000,256,0.0432026000,257,-0.4592670000,258,-0.0177396000,259,0.2000520000,260,-0.2027460000,261,0.4988410000,262,-0.3342770000,263,-0.4196230000,264,-0.2974260000,265,-0.4179930000,266,-0.4006700000,267,-0.2695440000,268,-0.1307160000,269,-0.6073040000,270,0.1101370000,271,0.2061620000,272,-0.5862000000,273,0.5215080000,274,0.6603910000,275,0.4635100000,276,0.3274230000,277,-0.3112840000,278,-0.0342814000,279,0.6240570000,280,-0.1132930000,281,0.0073126100,282,0.6239040000,283,-0.3453740000,284,0.0654344000,285,0.0100270000,286,0.2426400000,287,0.5527140000,288,-0.3631720000,289,0.2705130000,290,0.6841330000,291,0.0322839000,292,-0.1304490000,293,-0.0497572000,294,-0.1881750000,295,0.3851010000,296,1.1327300000,297,0.0811336000,298,0.5484830000,299,0.2959170000,300,-0.2440100000,301,-0.1798730000,302,0.1189620000,303,0.1532560000,304,-0.2847600000 +151,0,0.3439380000,306,-1.0000000000,255,0.6781960000,256,0.6626440000,257,0.1136520000,258,-0.0068694200,259,0.2293670000,260,0.0192535000,261,2.1078400000,262,1.0893600000,263,1.2668300000,264,0.4740040000,265,-0.2101350000,266,0.0517202000,267,0.9183200000,268,-0.1231760000,269,-0.1204000000,270,-0.0606030000,271,0.0436644000,272,-0.4317030000,273,0.6931100000,274,0.4219660000,275,-0.6392430000,276,-0.7074670000,277,0.6083030000,278,0.3349630000,279,-0.1700690000,280,0.0961775000,281,0.6932770000,282,0.6734410000,283,-0.7440450000,284,0.2869330000,285,0.0913550000,286,-0.2662380000,287,0.3681950000,288,0.5017630000,289,-0.3017690000,290,-0.3572880000,291,-0.0144660000,292,-0.0548268000,293,0.4345220000,294,-0.2181880000,295,-0.1584890000,296,0.6272680000,297,-0.2654840000,298,1.2892800000,299,0.1227890000,300,0.4861900000,301,-0.3065300000,302,0.1937110000,303,-0.6210460000,304,-0.2890370000 +152,0,-1.1778200000,307,-1.0000000000,255,0.5447610000,256,0.1032690000,257,1.3161900000,258,-0.0467495000,259,-1.9387900000,260,0.6160850000,261,-0.2348040000,262,0.5760780000,263,1.1839800000,264,-0.4626460000,265,-0.1193400000,266,0.6184780000,267,-0.0189167000,268,-0.2839590000,269,-0.2750420000,270,-0.0152707000,271,-0.9279340000,272,0.0279397000,273,0.5108020000,274,0.1725630000,275,-1.1467000000,276,-0.4512670000,277,0.6646810000,278,-1.1464500000,279,-0.3470370000,280,-0.7090840000,281,0.4242760000,282,1.6073500000,283,-0.2854380000,284,0.5129080000,285,0.6473040000,286,0.4099660000,287,-0.2154870000,288,1.0461900000,289,1.5751600000,290,0.7525590000,291,0.0160264000,292,0.2227700000,293,0.9968600000,294,1.0340600000,295,0.2342430000,296,-0.9919340000,297,-0.0903271000,298,-0.1013890000,299,-0.4238760000,300,0.6310110000,301,0.8051590000,302,-1.0948500000,303,-0.1424300000,304,0.9505640000 +153,0,0.2281420000,308,-1.0000000000,255,-0.1458920000,256,-0.2346070000,257,-0.0107690000,258,0.0338388000,259,0.2518570000,260,-0.1852970000,261,-0.5363140000,262,0.1851300000,263,-0.3243200000,264,0.1633130000,265,0.1213770000,266,0.0548659000,267,0.0832212000,268,-0.3058760000,269,0.1745820000,270,0.3146680000,271,-0.0457068000,272,0.1209260000,273,0.7684010000,274,0.1299400000,275,-0.0603852000,276,-0.0620030000,277,-0.2111890000,278,-0.4548640000,279,0.0490576000,280,-0.3137000000,281,0.5003690000,282,0.0032468900,283,-0.2298490000,284,-0.0694843000,285,0.2057430000,286,-0.1810730000,287,0.3151500000,288,0.1617710000,289,0.0987485000,290,0.2141220000,291,-0.0014647300,292,0.1717240000,293,0.2166120000,294,-0.1281950000,295,0.3394370000,296,0.2633140000,297,-0.2761080000,298,0.4158650000,299,0.0977774000,300,-0.4241390000,301,0.0236617000,302,0.0220994000,303,-0.0671115000,304,-0.7385170000 +154,0,0.2949880000,309,-1.0000000000,255,0.5032490000,256,-0.4142050000,257,-0.4041020000,258,-0.0038047400,259,0.4402030000,260,-0.0464649000,261,1.5570800000,262,-0.2121630000,263,0.4776380000,264,0.5510450000,265,-0.1642510000,266,0.2538780000,267,-0.6396830000,268,-0.1577280000,269,0.7187690000,270,0.0283431000,271,0.0309073000,272,0.4923100000,273,1.0617800000,274,0.8216280000,275,0.1609350000,276,-0.0546697000,277,-0.5864810000,278,0.0329562000,279,0.0677677000,280,-0.9161660000,281,0.9218490000,282,0.7872010000,283,0.0114602000,284,1.1286600000,285,0.0610111000,286,0.1394590000,287,0.4458050000,288,0.7826750000,289,-1.3769000000,290,-0.5027640000,291,0.0023704400,292,-0.0175572000,293,-0.0782381000,294,0.3809720000,295,-0.1952640000,296,0.5388710000,297,-0.1429430000,298,-1.0017900000,299,0.2794700000,300,0.2296640000,301,-0.4104210000,302,0.0651555000,303,-0.2083810000,304,-0.5653760000 +155,0,0.0357871000,310,-1.0000000000,255,-0.6864230000,256,0.1403020000,257,0.1675640000,258,0.0285923000,259,0.4673920000,260,-0.1028750000,261,0.7859520000,262,-1.4631000000,263,1.3285800000,264,0.5700020000,265,0.1877310000,266,-0.3143260000,267,-0.2961340000,268,0.0447290000,269,-0.0679479000,270,-0.7988020000,271,-0.7231080000,272,-0.4669510000,273,1.0728500000,274,0.0895213000,275,0.6816910000,276,-0.0762104000,277,-0.0049485100,278,-0.0295596000,279,0.1102230000,280,0.8233670000,281,0.2210570000,282,-0.5533260000,283,0.6430590000,284,0.2455730000,285,-0.6556750000,286,0.2667720000,287,-0.5641690000,288,-0.2265110000,289,-1.5907800000,290,0.5993640000,291,-0.0159480000,292,0.7552130000,293,-0.0906535000,294,0.4682550000,295,-0.0652577000,296,-0.6975310000,297,-0.1826220000,298,-0.1436710000,299,-0.5069590000,300,-0.1873350000,301,-0.1921070000,302,-1.1368900000,303,-0.0956293000,304,0.1506940000 +156,0,0.2575230000,311,-1.0000000000,255,-0.9298890000,256,1.0622100000,257,0.1810030000,258,0.0130958000,259,-0.4714110000,260,0.0167656000,261,1.2762600000,262,0.3786840000,263,0.5848990000,264,1.0016100000,265,-0.9144310000,266,0.3250480000,267,1.3716800000,268,-0.4530690000,269,-0.2479810000,270,0.2874390000,271,0.0816455000,272,0.8142110000,273,0.4389560000,274,1.9047900000,275,-0.1347390000,276,-0.0363998000,277,0.5392640000,278,-0.8807320000,279,0.7691020000,280,-0.2866480000,281,0.5958470000,282,0.5085590000,283,-0.7212470000,284,0.3275340000,285,0.5840220000,286,0.3301430000,287,0.5811550000,288,-0.0630916000,289,0.4363600000,290,1.2669000000,291,0.0047470700,292,0.1077060000,293,-0.2069240000,294,0.6995410000,295,-0.5999170000,296,-1.8559300000,297,0.3842110000,298,-0.4957820000,299,0.0375291000,300,0.3264420000,301,0.8862800000,302,-2.2362300000,303,-0.7014840000,304,-1.7991700000 +157,0,0.2554930000,312,-1.0000000000,255,0.2028870000,256,1.6983100000,257,-1.2659900000,258,0.0224392000,259,0.6001480000,260,-0.0349675000,261,-0.7388050000,262,-0.6961420000,263,-1.2281300000,264,0.9868600000,265,0.3122490000,266,-0.4440080000,267,0.7079010000,268,0.2371490000,269,0.4817120000,270,-0.1639750000,271,-0.3794940000,272,0.5384760000,273,0.5831800000,274,-0.2689930000,275,-0.0994465000,276,0.0116755000,277,-0.2473970000,278,0.2695850000,279,0.4245620000,280,-0.0720306000,281,-0.1946020000,282,-1.4553800000,283,0.2280420000,284,0.7394600000,285,0.3184350000,286,-0.7739890000,287,0.2736010000,288,-0.6754420000,289,0.1459940000,290,-0.4744950000,291,0.0016579400,292,0.0662915000,293,-0.2185660000,294,-0.3039530000,295,0.5372090000,296,0.7163610000,297,0.2173120000,298,0.4189060000,299,0.1281530000,300,0.9319680000,301,-0.2004880000,302,0.0170046000,303,0.1424550000,304,0.2334010000 +158,0,0.2808590000,313,-1.0000000000,255,0.2575350000,256,-0.3602790000,257,0.0415205000,258,-0.0055905100,259,-0.7111510000,260,-0.0910616000,261,1.7317600000,262,1.2108200000,263,0.2342030000,264,-0.0972706000,265,0.0036455800,266,0.0793167000,267,-0.6917460000,268,0.0870694000,269,0.6257600000,270,-0.3534770000,271,-0.5007250000,272,0.2451610000,273,0.0160634000,274,-0.5113700000,275,-0.1678250000,276,-0.1313260000,277,0.1776510000,278,-0.0937794000,279,0.0973588000,280,0.4194220000,281,0.0600658000,282,0.2753930000,283,0.2333590000,284,0.2875930000,285,-0.0767844000,286,-0.7064510000,287,-0.8683890000,288,-0.0509453000,289,0.2620690000,290,-0.1652730000,291,-0.0174326000,292,-0.5764110000,293,0.2314680000,294,-0.0127862000,295,-0.0919463000,296,1.1125700000,297,-0.2200210000,298,0.1162290000,299,-0.2648480000,300,-0.5539840000,301,-0.5741980000,302,0.2513550000,303,0.3580570000,304,0.9022200000 +159,0,0.2443720000,314,-1.0000000000,255,-0.3887740000,256,-0.4483370000,257,-0.2325420000,258,-0.0009187410,259,-0.2722720000,260,0.0556760000,261,0.5095130000,262,0.5282590000,263,-0.3433340000,264,-0.3792960000,265,-0.1480270000,266,-0.6487210000,267,0.3536630000,268,-0.0815115000,269,0.2861040000,270,0.0270031000,271,-0.0222871000,272,-0.3037200000,273,0.2149330000,274,0.2540260000,275,0.1046420000,276,0.0869798000,277,0.2858290000,278,-0.0065071700,279,0.4950310000,280,-0.1748920000,281,0.2407800000,282,0.7497360000,283,-0.2119540000,284,-0.2094890000,285,-0.2642160000,286,0.4532870000,287,0.1793550000,288,0.0122723000,289,0.1301710000,290,0.3753700000,291,0.0190259000,292,-0.0213686000,293,0.1735580000,294,-0.0567835000,295,0.1210480000,296,1.6627600000,297,-0.2279240000,298,0.3292430000,299,0.2554140000,300,-0.2424910000,301,-0.1199410000,302,0.1191030000,303,0.1539250000,304,-0.4438280000 +160,0,0.1862540000,315,-1.0000000000,255,-0.3683220000,256,-0.5607720000,257,-0.6336070000,258,0.0373617000,259,0.0653804000,260,-0.3801190000,261,2.0002900000,262,0.9090890000,263,-0.3866490000,264,-0.5820880000,265,-0.6146060000,266,-0.6135090000,267,0.2251000000,268,-0.3542160000,269,-0.1095720000,270,0.6593130000,271,0.3281150000,272,-0.6079990000,273,0.5304760000,274,0.0296456000,275,0.8900690000,276,0.6766920000,277,-0.5217640000,278,-0.3686590000,279,0.4324480000,280,0.0344481000,281,0.5690910000,282,1.5880100000,283,-0.5207790000,284,1.2236800000,285,-0.2557030000,286,0.9388590000,287,0.9220040000,288,0.2394790000,289,1.0436700000,290,0.1305960000,291,-0.0274512000,292,-0.3161170000,293,-0.1195870000,294,0.0793007000,295,0.2540860000,296,0.6539600000,297,-0.3346910000,298,0.2859510000,299,0.8303190000,300,-0.2640240000,301,-0.3983710000,302,0.4578090000,303,0.3540600000,304,-1.0496500000 +161,0,0.0871022000,316,-1.0000000000,255,0.1255890000,256,-2.0383500000,257,-0.4627350000,258,0.0317867000,259,0.2483760000,260,0.0915840000,261,1.7780600000,262,-0.7487970000,263,-0.0237690000,264,-0.4117160000,265,0.0828703000,266,-0.5417150000,267,0.7258480000,268,0.0845695000,269,0.4822310000,270,0.0098592400,271,0.0070353200,272,-0.1732440000,273,-0.2904570000,274,0.0211795000,275,0.2092440000,276,0.1749890000,277,-0.1097250000,278,-0.0738735000,279,0.1155590000,280,-0.2262240000,281,0.1233540000,282,0.0830690000,283,0.1089870000,284,0.0384300000,285,-0.7561520000,286,0.1861700000,287,-0.0151872000,288,0.1920140000,289,-0.0836965000,290,-0.8445440000,291,-0.0342026000,292,-0.4516180000,293,-0.3612190000,294,0.0998418000,295,0.4033560000,296,0.9578020000,297,0.0304119000,298,-0.4324520000,299,0.6722780000,300,-0.2748550000,301,-0.4503760000,302,0.6048840000,303,0.1044440000,304,0.6562780000 +162,0,0.0505961000,317,-1.0000000000,255,0.0089597300,256,0.2230520000,257,-0.1575340000,258,-0.0031184900,259,-0.3892110000,260,0.0478222000,261,-0.1790540000,262,-0.3316090000,263,1.3516900000,264,-0.0751479000,265,-0.3808210000,266,0.0579327000,267,0.2868860000,268,0.0590241000,269,0.4980170000,270,-0.0496560000,271,0.0153266000,272,0.1145010000,273,-0.4322800000,274,0.4160210000,275,-0.1707230000,276,0.1337940000,277,-0.6829190000,278,-0.3668700000,279,0.0353668000,280,0.0602006000,281,0.7945750000,282,0.1042300000,283,0.2283720000,284,0.0870897000,285,-0.3667200000,286,0.1699580000,287,-0.0309874000,288,-1.1661300000,289,-0.1234410000,290,0.0676957000,291,-0.0373874000,292,0.6410770000,293,0.0368144000,294,0.0360730000,295,-0.4458900000,296,0.5109830000,297,0.2884310000,298,1.0341000000,299,-0.1083060000,300,-0.4328130000,301,0.3932320000,302,0.0215891000,303,0.3827700000,304,-0.6932480000 +163,0,0.0454913000,318,-1.0000000000,255,0.2795150000,256,-0.0998238000,257,-0.3318690000,258,-0.0474027000,259,-0.2923610000,260,0.2233670000,261,0.2823710000,262,-0.9919510000,263,0.1943300000,264,1.3195700000,265,0.5616840000,266,0.3308690000,267,-0.3179770000,268,0.2722640000,269,0.1210660000,270,-0.0389529000,271,-0.4291590000,272,0.6447950000,273,1.0087300000,274,0.7780500000,275,-0.1662810000,276,-0.2694370000,277,0.4835320000,278,0.5530050000,279,0.3340270000,280,0.2072860000,281,0.8750680000,282,0.6338710000,283,0.1930380000,284,-0.5213910000,285,0.0401837000,286,0.6437420000,287,0.2549020000,288,-0.7906810000,289,0.3731920000,290,0.7130810000,291,-0.0317037000,292,-0.0633741000,293,-0.3202750000,294,-0.3995280000,295,0.0369965000,296,0.0544196000,297,0.3034570000,298,0.9937470000,299,-0.0854972000,300,-0.9394040000,301,0.3935010000,302,0.3173590000,303,0.4611160000,304,0.2562820000 +164,0,0.1145900000,319,-1.0000000000,255,-0.0114511000,256,0.6592460000,257,-0.3732610000,258,-0.0443628000,259,-0.3416470000,260,0.1337560000,261,-0.3665100000,262,-0.5332510000,263,0.4995700000,264,0.6967100000,265,0.4623310000,266,-0.1932910000,267,-0.5343760000,268,0.2688310000,269,0.2672650000,270,0.0126894000,271,-1.6552100000,272,0.2821810000,273,0.6191380000,274,-0.0491527000,275,-0.0367344000,276,-0.0365807000,277,0.1599290000,278,-0.4023870000,279,0.1145820000,280,0.0343963000,281,0.9563470000,282,-0.3912980000,283,0.8129530000,284,0.1027020000,285,-0.5796060000,286,0.4580010000,287,-1.0974500000,288,-0.1688230000,289,0.3716350000,290,0.4124500000,291,-0.0465844000,292,-0.6990710000,293,-0.0752359000,294,0.3661590000,295,0.1505180000,296,0.1775580000,297,-0.4046270000,298,-2.1505300000,299,-0.0272493000,300,0.3539900000,301,-0.3369100000,302,0.2532050000,303,0.1792500000,304,-0.6206280000 +165,0,0.1090150000,320,-1.0000000000,255,-0.1418560000,256,-0.2482660000,257,-0.1206160000,258,0.0464978000,259,0.0567705000,260,-0.0539897000,261,1.4878100000,262,-0.2006890000,263,-0.2654770000,264,0.1166050000,265,-0.3356630000,266,0.1074580000,267,-0.1622530000,268,-0.2579670000,269,-0.7430140000,270,0.1979180000,271,-0.0402847000,272,-0.0613337000,273,0.4395270000,274,0.1462840000,275,0.0266629000,276,0.3766040000,277,-0.0401599000,278,-0.6866370000,279,-0.1323980000,280,-0.7397270000,281,-0.4799520000,282,1.1122800000,283,-0.4165540000,284,0.3916070000,285,0.3510440000,286,0.6707380000,287,0.7474350000,288,0.1713510000,289,0.2807810000,290,0.6791870000,291,0.0454586000,292,0.0529518000,293,-0.3305570000,294,-0.6542360000,295,0.5192180000,296,1.1134200000,297,-0.2362930000,298,0.3818530000,299,0.0877145000,300,0.7924790000,301,0.0220966000,302,0.2779170000,303,0.3284930000,304,-0.4096820000 +166,0,0.8182040000,321,-1.0000000000,255,-0.4275410000,256,-0.0469516000,257,-0.3598730000,258,-0.0189472000,259,-0.0379152000,260,-0.2380030000,261,-1.5548200000,262,-0.9219550000,263,-0.0674426000,264,-0.0752268000,265,0.4332690000,266,0.4402880000,267,-0.2387480000,268,0.0661338000,269,-0.1658790000,270,0.1283980000,271,-0.2437740000,272,-0.9455200000,273,1.3360300000,274,-0.2739730000,275,0.5170540000,276,0.3497650000,277,-0.2834290000,278,-0.4766520000,279,0.2312810000,280,1.1770800000,281,1.6662200000,282,-0.0552129000,283,-0.2548560000,284,-1.2348100000,285,0.0360153000,286,0.2341080000,287,-0.0738123000,288,-2.7560000000,289,-0.5096220000,290,1.3250600000,291,0.0128291000,292,-0.0569401000,293,0.0924194000,294,0.2167810000,295,-0.3403210000,296,0.1159930000,297,0.5320890000,298,0.9288660000,299,-0.1358430000,300,-0.7415060000,301,-0.3041160000,302,0.0348185000,303,0.1664600000,304,-0.7041880000 +167,0,0.2521410000,322,-1.0000000000,255,-0.0454586000,256,0.4377830000,257,0.3919830000,258,-0.0114398000,259,-0.0217449000,260,-0.3222500000,261,-0.2618300000,262,0.9358330000,263,0.0394197000,264,0.7661770000,265,0.5140200000,266,-0.0655424000,267,-0.8706230000,268,0.2548240000,269,0.3711510000,270,-0.3048440000,271,0.0078603400,272,0.0520904000,273,-1.6081500000,274,0.1704100000,275,-0.3689500000,276,-0.1909660000,277,0.1312680000,278,0.2318220000,279,0.0478439000,280,0.3736480000,281,0.1213370000,282,-0.1660520000,283,0.0738397000,284,0.1355830000,285,-0.1285000000,286,0.5664920000,287,-0.9590220000,288,-0.0541073000,289,-0.4241060000,290,-0.1526570000,291,0.0442873000,292,0.2774660000,293,0.2328150000,294,-0.4482730000,295,0.2197920000,296,-0.1323990000,297,0.5545920000,298,0.6229480000,299,-0.1514490000,300,0.3740450000,301,-0.4084830000,302,0.0305587000,303,0.0943859000,304,0.3092810000 +168,0,-0.4371210000,323,-1.0000000000,255,-0.1074500000,256,-0.0727049000,257,0.5957080000,258,0.0004885320,259,-0.2144300000,260,0.1997110000,261,-0.0176220000,262,-1.0543000000,263,-0.1738290000,264,0.5073560000,265,-0.4733080000,266,0.1606840000,267,-0.7829840000,268,-0.3149350000,269,-0.5461540000,270,0.0085973600,271,0.4034630000,272,-0.0128508000,273,-0.3587400000,274,0.2450860000,275,-0.1902120000,276,0.2078940000,277,0.2746540000,278,-0.7025670000,279,-0.0181741000,280,-0.4831160000,281,0.5321440000,282,-0.4515380000,283,-0.0661667000,284,0.7053280000,285,-0.6631220000,286,0.6965740000,287,-0.6393470000,288,-0.1698990000,289,-0.7848560000,290,0.2093270000,291,-0.0380039000,292,-0.5246680000,293,-0.1231510000,294,-0.1171770000,295,-0.0117169000,296,-0.8977200000,297,-0.3563770000,298,-0.7502730000,299,-0.0622016000,300,0.5394010000,301,0.3067030000,302,0.2532350000,303,-0.5264090000,304,0.4618010000 +169,0,0.0166663000,324,-1.0000000000,255,0.0016913100,256,-0.0248215000,257,0.0003050260,258,-0.0033014000,259,0.0064934900,260,0.0165239000,261,0.0114530000,262,0.0469550000,263,-0.0090958500,264,0.0027137300,265,0.0002313630,266,0.0089088300,267,0.0242375000,268,-0.0280662000,269,0.0155524000,270,0.0420030000,271,0.0236561000,272,-0.0488389000,273,-0.0217026000,274,-0.0491790000,275,0.0180479000,276,-0.0095642100,277,-0.0134408000,278,-0.0129553000,279,-0.0483949000,280,-0.0175948000,281,0.0137551000,282,-0.0176949000,283,0.0085760600,284,-0.0471592000,285,-0.0111024000,286,0.0117570000,287,0.0160892000,288,-0.0533253000,289,-0.0380681000,290,0.0282616000,291,-0.0389104000,292,-0.0482671000,293,-0.0016428500,294,-0.0173514000,295,0.0294489000,296,-0.0518655000,297,-0.0219534000,298,0.0171589000,299,-0.0283476000,300,-0.0174449000,301,-0.0395546000,302,-0.0443206000,303,-0.0378410000,304,0.0395147000 +170,0,0.3175740000,325,-1.0000000000,255,-0.4425200000,256,0.0850963000,257,-0.4257450000,258,-0.0031277100,259,0.5411790000,260,-0.1049580000,261,1.3675800000,262,-0.2143920000,263,-0.0496947000,264,-0.3295460000,265,-0.3573530000,266,-0.3110640000,267,-0.0007060210,268,-0.5018240000,269,1.3792400000,270,0.5244310000,271,-0.0573254000,272,0.4492700000,273,-0.3818330000,274,-0.6641730000,275,-0.3517980000,276,-0.1784330000,277,0.3909490000,278,0.1403090000,279,-0.0558925000,280,0.0046120100,281,0.4922450000,282,-0.1209160000,283,0.2867830000,284,0.3124110000,285,0.1015590000,286,-0.5139130000,287,0.1840470000,288,0.1577050000,289,1.2886200000,290,-0.6000080000,291,-0.0387152000,292,-0.1819950000,293,0.2171530000,294,-0.1331800000,295,0.1202230000,296,0.2899390000,297,0.1203010000,298,0.1281210000,299,0.0023478000,300,0.5841340000,301,0.2088080000,302,0.0246956000,303,0.0421831000,304,0.0835962000 +171,0,0.0649419000,326,-1.0000000000,255,0.2362470000,256,0.3883720000,257,0.0853066000,258,0.0398838000,259,0.5730540000,260,0.3118000000,261,-0.7253360000,262,0.4219590000,263,-0.3217550000,264,0.0888571000,265,0.2475630000,266,0.0500399000,267,1.2377700000,268,-0.2087970000,269,-0.5904030000,270,-0.1331280000,271,-0.3649080000,272,0.1527610000,273,0.7730060000,274,-0.4337730000,275,-1.1392000000,276,0.0580431000,277,0.3952080000,278,0.0210274000,279,0.0696787000,280,0.4978150000,281,0.6513280000,282,-0.8176460000,283,-0.1203930000,284,-0.5975960000,285,0.0758110000,286,-0.0317713000,287,-0.5464680000,288,0.4098030000,289,0.1753140000,290,-0.0761176000,291,-0.0337364000,292,-0.1615190000,293,-0.0237192000,294,-0.1787280000,295,0.1461490000,296,1.5311300000,297,-0.3998080000,298,-0.2415910000,299,-0.8140510000,300,0.1513640000,301,0.0835807000,302,0.1269790000,303,-0.1712690000,304,-0.3269180000 +172,0,0.8847620000,327,-1.0000000000,255,-0.2607430000,256,-0.9097680000,257,-0.5808300000,258,0.0476980000,259,0.1783060000,260,-0.3595880000,261,2.8154000000,262,-0.4380740000,263,-0.4785290000,264,0.0496424000,265,-0.5150930000,266,-1.2772900000,267,0.6767110000,268,-0.6829650000,269,0.0938346000,270,0.3753660000,271,0.6436300000,272,-0.1653960000,273,0.5776590000,274,0.1478160000,275,1.0249800000,276,0.6167000000,277,-0.3423890000,278,0.1657920000,279,0.6748780000,280,-0.0754586000,281,0.8605470000,282,1.1631400000,283,-0.6097240000,284,-0.8952910000,285,0.2412530000,286,1.0872600000,287,1.4595200000,288,-0.8250670000,289,0.8982540000,290,-0.1804370000,291,0.0426407000,292,0.1960750000,293,-0.0110658000,294,-0.1003560000,295,0.3456770000,296,1.7743700000,297,-0.7823180000,298,-0.8859290000,299,0.5711250000,300,0.4325630000,301,-0.3181400000,302,0.9533400000,303,0.4180120000,304,-1.1402500000 +173,0,0.0253047000,328,-1.0000000000,255,0.0203797000,256,0.0377457000,257,-0.0426919000,258,0.0260576000,259,-0.0026999700,260,-0.0148431000,261,-0.0222991000,262,0.0358022000,263,-0.0239594000,264,-0.0181414000,265,-0.0338065000,266,0.0281941000,267,-0.0510922000,268,0.0087191300,269,-0.0446310000,270,-0.0308392000,271,-0.0247757000,272,-0.0085698600,273,0.0278910000,274,-0.0306574000,275,-0.0033211600,276,-0.0476072000,277,0.0049570000,278,0.0180256000,279,-0.0440888000,280,-0.0461514000,281,-0.0244463000,282,-0.0333755000,283,-0.0121739000,284,0.0353615000,285,-0.0457813000,286,-0.0210368000,287,-0.0101115000,288,-0.0530714000,289,-0.0108448000,290,0.0289577000,291,0.0243094000,292,-0.0577745000,293,0.0085106600,294,-0.0065324400,295,-0.0196244000,296,0.0179400000,297,0.0196290000,298,-0.0492127000,299,-0.0443216000,300,-0.0021108000,301,0.0142734000,302,0.0040385300,303,-0.0463009000,304,-0.0230474000 +174,0,-0.0796853000,329,-1.0000000000,255,-0.4975650000,256,0.6161810000,257,0.2082760000,258,0.0088070700,259,0.2373790000,260,0.1188720000,261,0.0228989000,262,0.2676450000,263,-0.5465360000,264,0.7384340000,265,0.9734660000,266,0.4472100000,267,1.1689800000,268,-0.2444060000,269,0.0452008000,270,-0.8410220000,271,-0.1260710000,272,0.1485880000,273,-0.1881010000,274,-2.2908700000,275,-0.0134668000,276,-0.1607340000,277,1.2935400000,278,-1.2087000000,279,0.5359860000,280,1.0361600000,281,1.4995000000,282,-0.5683690000,283,0.9256990000,284,-0.4861500000,285,-0.7527710000,286,1.1663900000,287,-1.9135200000,288,0.7595610000,289,-1.5014800000,290,1.4957900000,291,0.0404638000,292,0.1017210000,293,1.0308300000,294,0.5323080000,295,0.3508090000,296,-2.9982100000,297,-0.4570110000,298,-0.1101120000,299,-0.2372430000,300,0.0802689000,301,-0.2943310000,302,-0.5028560000,303,-0.7244370000,304,1.5570300000 +175,0,0.2003980000,330,-1.0000000000,255,-0.2085580000,256,0.5044150000,257,-0.0809145000,258,-0.0082433500,259,-0.1909630000,260,0.0571080000,261,-0.0057058600,262,0.0131160000,263,1.6056700000,264,1.2163200000,265,0.2834810000,266,-0.3955410000,267,0.2022010000,268,0.1464660000,269,0.8559850000,270,-0.4562290000,271,0.2140830000,272,0.1300930000,273,0.4516870000,274,0.6099690000,275,-0.1384940000,276,0.0111231000,277,-0.3143520000,278,-0.8429780000,279,-0.7356810000,280,-0.2294740000,281,-0.1393550000,282,-0.5939010000,283,0.5401700000,284,-1.3476100000,285,-0.3749130000,286,0.1751850000,287,-0.0350002000,288,-0.0673682000,289,-0.3258530000,290,-0.2827970000,291,-0.0372956000,292,0.1123060000,293,-0.1059180000,294,0.2333700000,295,0.0492078000,296,0.8400460000,297,0.2975470000,298,-0.5465560000,299,0.0300714000,300,-0.2505140000,301,-0.0344505000,302,0.2094710000,303,-0.0259306000,304,-0.0556973000 +176,0,-0.3202230000,331,-1.0000000000,255,0.2349620000,256,0.3979670000,257,0.0119761000,258,-0.0204314000,259,-0.2805550000,260,-0.0036078100,261,-0.9931810000,262,-0.9786150000,263,0.1133330000,264,-0.1242160000,265,-0.0497097000,266,-0.4065740000,267,-0.4049210000,268,-0.4117820000,269,-0.3524430000,270,-0.1414850000,271,-0.1818290000,272,-0.0518060000,273,-0.7225270000,274,-0.2221910000,275,0.1043980000,276,-0.0099768800,277,-0.0467553000,278,-0.1039330000,279,-0.0746578000,280,0.0520061000,281,-0.0506541000,282,-0.2700790000,283,-0.1475450000,284,-0.0632361000,285,0.2493830000,286,0.5461380000,287,-0.1816960000,288,0.1466680000,289,0.1839650000,290,0.4221720000,291,-0.0425273000,292,-0.7427760000,293,0.0679984000,294,0.1189990000,295,-0.1173380000,296,0.8472430000,297,-0.2735210000,298,0.0554174000,299,-0.0698943000,300,-0.0974010000,301,-0.0859578000,302,0.2255580000,303,0.0183307000,304,0.1613150000 +177,0,0.3337030000,332,-1.0000000000,255,0.0088592200,256,0.0690820000,257,-0.1764000000,258,-0.0376863000,259,0.0326470000,260,-0.0575588000,261,0.4247790000,262,0.7444200000,263,-0.6017210000,264,-0.4258300000,265,0.2193740000,266,0.3194160000,267,0.2469220000,268,0.3175670000,269,0.3311950000,270,0.4385860000,271,-0.4459920000,272,-0.1171250000,273,0.5631770000,274,-0.3722090000,275,-0.2917440000,276,0.0554533000,277,0.4674830000,278,0.6020470000,279,-0.4659540000,280,-0.0589255000,281,-0.8014160000,282,0.5514460000,283,-0.1721870000,284,0.5467080000,285,-0.0031047800,286,-0.1407110000,287,-0.0757977000,288,-0.3004600000,289,0.5173470000,290,0.0319109000,291,-0.0209331000,292,-0.0917035000,293,0.1022640000,294,0.2662030000,295,0.3136920000,296,0.7343990000,297,0.4919780000,298,-0.0250684000,299,-0.0920375000,300,-0.5196690000,301,-0.0877932000,302,-0.2339760000,303,0.0447923000,304,0.0390739000 +178,0,-0.1671620000,333,-1.0000000000,255,0.2417390000,256,-0.1238080000,257,-0.1686520000,258,0.0277807000,259,0.1552760000,260,0.0383259000,261,-0.3141100000,262,0.9170190000,263,-0.2224170000,264,0.0826831000,265,0.0688428000,266,0.2888440000,267,0.2454240000,268,0.1568020000,269,0.0894330000,270,0.0201978000,271,-0.2645690000,272,-0.0091094600,273,-0.3569420000,274,0.0699951000,275,-0.1021040000,276,-0.0099717100,277,0.0593217000,278,0.1284160000,279,0.2173560000,280,0.1566760000,281,0.5676930000,282,0.1875750000,283,0.1628920000,284,0.8749030000,285,-0.1957010000,286,-0.0767867000,287,-0.2266760000,288,0.1355080000,289,0.0593238000,290,0.0192025000,291,-0.0434133000,292,-0.1744880000,293,-0.0245925000,294,-0.1399370000,295,-0.2758900000,296,-0.6205310000,297,0.1214260000,298,0.6023910000,299,-0.1514360000,300,-0.3087100000,301,0.1411370000,302,-0.0613260000,303,-0.0525397000,304,-0.1463070000 +179,0,0.0141451000,334,-1.0000000000,255,0.0119379000,256,-0.0405108000,257,-0.0461737000,258,0.0408235000,259,0.0424984000,260,-0.0193057000,261,0.0192759000,262,-0.0598588000,263,-0.0144414000,264,0.0135301000,265,-0.0054152200,266,-0.0091357900,267,-0.0056835800,268,0.0045328400,269,-0.0194027000,270,-0.0444434000,271,-0.0212121000,272,0.0378633000,273,0.0063540000,274,-0.0188028000,275,0.0335759000,276,-0.0116581000,277,-0.0417801000,278,-0.0446457000,279,0.0148335000,280,0.0133925000,281,-0.0099906800,282,-0.0338377000,283,-0.0321067000,284,-0.0144909000,285,-0.0192288000,286,-0.0292686000,287,-0.0219077000,288,-0.0420035000,289,-0.0140561000,290,-0.0381464000,291,0.0354332000,292,0.0263848000,293,-0.0066060000,294,0.0359980000,295,0.0205651000,296,0.0045736500,297,-0.0559312000,298,-0.0053022100,299,-0.0411624000,300,0.0236690000,301,0.0377378000,302,-0.0365861000,303,0.0202161000,304,0.0440453000 +180,0,0.3753980000,335,-1.0000000000,255,-0.0341064000,256,-0.2859460000,257,0.0121492000,258,-0.0345904000,259,0.0833693000,260,-0.2265690000,261,1.0190000000,262,0.2984490000,263,0.8047030000,264,0.1198760000,265,0.1415280000,266,-0.0461669000,267,-0.0035597000,268,0.0091704000,269,1.0653000000,270,0.2039940000,271,0.4468820000,272,-0.1836940000,273,-0.6254570000,274,-0.1504110000,275,0.2093470000,276,0.0606347000,277,0.1218870000,278,0.6651880000,279,-0.0135734000,280,0.0961429000,281,-0.3507010000,282,0.4870070000,283,-0.2150690000,284,0.5441530000,285,-0.0552882000,286,0.2691170000,287,-0.0692486000,288,-0.6211680000,289,0.6131070000,290,-0.2487820000,291,-0.0057357700,292,-0.1342320000,293,0.2120440000,294,-0.0274169000,295,-0.0492615000,296,-0.0916743000,297,-0.3366140000,298,0.4785240000,299,0.5204790000,300,0.0224929000,301,0.3201590000,302,-0.0751762000,303,-0.0765507000,304,-0.2460470000 +181,0,0.9047060000,336,-1.0000000000,255,0.3411430000,256,1.1224200000,257,0.9527860000,258,-0.0206722000,259,-1.2469100000,260,-0.1263830000,261,-1.9736800000,262,2.3118900000,263,0.6742000000,264,0.3873050000,265,-0.6061110000,266,-0.3919950000,267,0.4292470000,268,0.1847430000,269,0.1022350000,270,0.2724870000,271,-0.3740200000,272,0.1050500000,273,0.7949440000,274,0.4668770000,275,0.8669440000,276,-0.1359410000,277,1.5095900000,278,0.5597660000,279,0.5917540000,280,0.7608270000,281,1.0737400000,282,0.6868740000,283,-0.4794210000,284,0.5347700000,285,0.7059340000,286,0.6001840000,287,-0.9876590000,288,-0.4397160000,289,0.3669410000,290,-0.3501010000,291,0.0428339000,292,0.0357632000,293,0.2400100000,294,0.3186450000,295,-0.7780220000,296,0.5646390000,297,-0.4945660000,298,0.4193270000,299,0.3441980000,300,-0.5445900000,301,0.7205010000,302,-0.0668448000,303,0.2799950000,304,-0.2949440000 +182,0,-0.0501437000,337,-1.0000000000,255,-0.3326120000,256,0.1313080000,257,0.0379739000,258,-0.0038507400,259,-0.4307910000,260,0.0017522300,261,0.0780426000,262,0.2868610000,263,-1.1206700000,264,0.2200320000,265,-0.3442000000,266,-0.0421346000,267,-0.0907346000,268,0.0017646800,269,-0.0157868000,270,-0.0019637500,271,-0.1670420000,272,0.1779110000,273,-0.0886931000,274,0.0313661000,275,0.1621650000,276,-0.0041107100,277,0.0889936000,278,-0.4133780000,279,0.1549990000,280,0.0645285000,281,-0.6884520000,282,-0.2891750000,283,-0.1054420000,284,0.5420290000,285,0.2179900000,286,0.1741480000,287,-0.2130100000,288,0.2785350000,289,-0.1712810000,290,-0.0437264000,291,-0.0442849000,292,-0.0084156700,293,0.0599474000,294,-0.0119518000,295,0.0373663000,296,-0.5902860000,297,-0.2060800000,298,-0.2338170000,299,-0.0730408000,300,-0.1459820000,301,-0.2505310000,302,0.0198361000,303,0.0289969000,304,0.7115980000 +183,0,0.2578120000,338,-1.0000000000,255,-0.7500420000,256,0.1351250000,257,0.1518640000,258,-0.0454445000,259,-0.3722180000,260,-0.0764027000,261,0.5145720000,262,0.9525100000,263,1.6433200000,264,0.5721470000,265,-1.0247000000,266,0.0900398000,267,0.6946250000,268,-0.2818310000,269,0.4296220000,270,-0.1311730000,271,0.1813980000,272,0.5137850000,273,1.0917500000,274,-0.2980410000,275,-0.0863215000,276,0.0961986000,277,-0.4725090000,278,0.2989230000,279,0.3959550000,280,-0.3557180000,281,-0.7078380000,282,0.2818820000,283,-0.9178450000,284,0.0597830000,285,0.5084670000,286,-0.6683340000,287,1.0168800000,288,0.2912020000,289,0.3960480000,290,-0.1408950000,291,-0.0351468000,292,-0.2437440000,293,-0.1415420000,294,0.6232420000,295,-0.0941275000,296,2.2428000000,297,-0.0797693000,298,0.8429870000,299,0.4942380000,300,0.0942439000,301,0.2207090000,302,0.0017859000,303,0.0857169000,304,-0.3411060000 +184,0,0.0060706400,339,-1.0000000000,255,-0.0210279000,256,-0.0445547000,257,-0.0469292000,258,-0.0405358000,259,0.0294662000,260,-0.0390211000,261,0.0094590900,262,-0.0033825600,263,0.0050431500,264,-0.0395551000,265,-0.0272649000,266,-0.0360474000,267,-0.0496820000,268,0.0021662800,269,0.0071121100,270,-0.0042221700,271,-0.0091223100,272,-0.0470887000,273,-0.0356051000,274,-0.0394605000,275,-0.0206584000,276,-0.0257951000,277,-0.0313470000,278,-0.0181559000,279,0.0318398000,280,0.0419911000,281,-0.0315756000,282,0.0322988000,283,-0.0456339000,284,0.0423268000,285,0.0044856900,286,-0.0452773000,287,0.0057400000,288,-0.0038017200,289,-0.0117492000,290,0.0254341000,291,0.0037804700,292,-0.0031144700,293,-0.0401544000,294,-0.0189280000,295,0.0192058000,296,0.0332924000,297,0.0102114000,298,0.0093469600,299,0.0159034000,300,-0.0325947000,301,-0.0392639000,302,-0.0513301000,303,-0.0167438000,304,-0.0070220600 +185,0,-0.3440360000,340,-1.0000000000,255,-0.1951620000,256,0.0527051000,257,0.2960530000,258,0.0429807000,259,-0.1126820000,260,-0.0218679000,261,-0.7621490000,262,0.5229170000,263,-0.5007870000,264,0.1246480000,265,0.4712580000,266,-0.0885883000,267,0.3443680000,268,0.4470900000,269,0.3646810000,270,-0.2308590000,271,-0.2802140000,272,0.0982598000,273,-0.3079240000,274,0.7165170000,275,-0.1042760000,276,-0.2174050000,277,0.2117160000,278,0.0424581000,279,0.2188430000,280,-0.2742050000,281,-1.1071800000,282,0.2967890000,283,-0.0299602000,284,0.3778720000,285,-0.0884113000,286,0.1439220000,287,0.3007970000,288,0.4761370000,289,0.2655020000,290,-0.0447619000,291,-0.0443550000,292,0.0234095000,293,-0.1247390000,294,-0.2538000000,295,-0.1269640000,296,0.6853730000,297,0.3181350000,298,0.7318190000,299,-0.0687692000,300,-0.4073590000,301,-0.3522830000,302,0.1671340000,303,-0.0299146000,304,0.3342730000 +186,0,0.0242754000,341,-1.0000000000,255,-0.3155690000,256,-0.1778490000,257,-0.0398839000,258,0.0060223300,259,0.2405830000,260,-0.0102897000,261,-0.6084870000,262,0.3644260000,263,-0.5032120000,264,0.4363150000,265,0.0388070000,266,0.2337590000,267,-0.0065769000,268,0.1844390000,269,0.4786420000,270,-0.1042090000,271,-0.0651173000,272,-0.2398550000,273,-0.5398870000,274,0.2599040000,275,-0.2009730000,276,-0.4073420000,277,0.5889450000,278,0.4804940000,279,0.0481202000,280,-0.0798484000,281,0.1226660000,282,0.1474370000,283,-0.1104200000,284,-0.4258750000,285,-0.0419479000,286,-0.7254950000,287,0.1256350000,288,-0.2760360000,289,0.2958820000,290,-0.4813920000,291,0.0002383330,292,0.1397560000,293,0.3119820000,294,-0.2322590000,295,-0.1657850000,296,-0.5514290000,297,0.0375420000,298,0.9407060000,299,0.0369976000,300,0.0545223000,301,0.2126720000,302,-0.1239190000,303,-0.2790380000,304,0.4625380000 +187,0,0.2950090000,342,-1.0000000000,255,1.0864000000,256,-0.0784054000,257,-0.2544200000,258,-0.0499840000,259,-0.3734180000,260,0.3674130000,261,-0.5914590000,262,-0.3267640000,263,1.1084900000,264,0.3050560000,265,0.4918830000,266,-0.2332890000,267,-1.4251000000,268,0.2041560000,269,0.8244110000,270,-0.0901416000,271,-0.1899950000,272,0.7738680000,273,1.2019000000,274,-0.1149760000,275,1.0874800000,276,-0.2296030000,277,-0.2658350000,278,-1.8490300000,279,0.4952860000,280,0.1661810000,281,1.0896900000,282,1.2510900000,283,0.5695050000,284,1.4722100000,285,-0.3103710000,286,-0.0398421000,287,0.2121130000,288,-0.6234890000,289,0.1685340000,290,0.4108290000,291,0.0059119700,292,-0.0899420000,293,-0.0982845000,294,0.1775990000,295,-0.1758080000,296,-0.6047200000,297,-0.2565350000,298,-0.5106160000,299,0.1195440000,300,0.3985290000,301,0.2163940000,302,-0.0095187500,303,-0.2489910000,304,-0.9406490000 +188,0,0.1626790000,343,-1.0000000000,255,0.2044490000,256,0.6487870000,257,-0.0474029000,258,-0.0031660600,259,-0.1043210000,260,-0.0113393000,261,2.2042200000,262,0.2547400000,263,0.4441430000,264,0.4004690000,265,0.3808800000,266,0.3147960000,267,-0.8206250000,268,-0.0182998000,269,-0.0848051000,270,-0.1557090000,271,-0.2699290000,272,-0.0217529000,273,0.2544740000,274,-0.3723540000,275,0.2431290000,276,-0.1768820000,277,-0.0424270000,278,1.0391200000,279,0.1561230000,280,0.7842910000,281,1.1932900000,282,-0.5126120000,283,-0.0311169000,284,-0.6122950000,285,-0.0036320600,286,0.0365334000,287,-0.2924620000,288,-0.7428680000,289,-0.1627490000,290,-0.8504260000,291,0.0217845000,292,-0.3516590000,293,-0.0620096000,294,0.1944180000,295,0.0844593000,296,0.5975010000,297,0.1706110000,298,1.2752000000,299,0.2311140000,300,-0.3384820000,301,-0.2379090000,302,0.3920760000,303,-0.4810030000,304,0.2665290000 +189,0,0.3256090000,344,-1.0000000000,255,0.2231380000,256,0.4320620000,257,0.0674931000,258,-0.0196263000,259,-0.2966470000,260,-0.3201120000,261,-0.5803940000,262,-0.4698030000,263,0.1432030000,264,-0.2307310000,265,0.1305100000,266,0.3326880000,267,0.0629946000,268,-0.3237260000,269,0.1375160000,270,-1.1287600000,271,-0.6586640000,272,0.3555920000,273,0.8413490000,274,-0.7822280000,275,-0.3014700000,276,0.2006400000,277,0.3215420000,278,-0.2623560000,279,-0.0939747000,280,-1.2285900000,281,0.2660070000,282,0.2371950000,283,0.1680860000,284,0.1598480000,285,0.6172230000,286,1.3592700000,287,-1.5547100000,288,-0.1056190000,289,-0.1453170000,290,0.1302910000,291,-0.0008569230,292,-0.0624121000,293,0.0624458000,294,0.3414600000,295,-0.1897130000,296,-0.5767550000,297,0.4124560000,298,-0.7926400000,299,-0.4807070000,300,0.2262780000,301,-0.0860806000,302,-0.0564998000,303,0.4337830000,304,-0.1419200000 +190,0,-0.4586040000,345,-1.0000000000,255,0.1153070000,256,-0.2416030000,257,-0.0451520000,258,-0.0007767470,259,-0.0330265000,260,-0.1765680000,261,-0.7432380000,262,0.6513580000,263,-1.0786200000,264,0.5237990000,265,0.2897290000,266,-0.0607406000,267,0.4289050000,268,-0.1041700000,269,0.0355129000,270,-0.1092200000,271,-0.5767060000,272,-0.1052160000,273,-0.0568547000,274,0.3544320000,275,0.3758870000,276,0.0570910000,277,-0.2164820000,278,-0.1269660000,279,0.3998690000,280,-0.0185103000,281,0.5647430000,282,-0.2300250000,283,-0.1282210000,284,-0.0081206100,285,-0.1916540000,286,-0.3345550000,287,-0.0680665000,288,-0.2287050000,289,0.0194161000,290,0.1716320000,291,-0.0445392000,292,0.1773100000,293,-0.1453010000,294,0.1199260000,295,-0.1982620000,296,-0.3459330000,297,-0.2627550000,298,-0.1752590000,299,-0.2069390000,300,0.3633140000,301,-0.1972540000,302,0.1077580000,303,0.1604800000,304,-0.5091520000 +191,0,-0.1510070000,346,-1.0000000000,255,-0.1359990000,256,-0.0795731000,257,-0.0399640000,258,0.0299377000,259,0.1338290000,260,-0.0729335000,261,0.4686210000,262,-0.5303590000,263,0.0990331000,264,0.1766880000,265,0.0491409000,266,-0.0833723000,267,0.2315720000,268,-0.0387017000,269,0.1260000000,270,-0.0083927900,271,0.1613500000,272,-0.0095404400,273,0.3277190000,274,-0.0485220000,275,0.0557172000,276,-0.0131938000,277,-0.1668190000,278,-0.2586230000,279,0.0081523100,280,-0.0509135000,281,-0.1992930000,282,-0.1739900000,283,0.0627476000,284,-0.0953022000,285,-0.0258202000,286,0.0501937000,287,0.0583939000,288,0.0139331000,289,-0.1415320000,290,0.0068136700,291,0.0451650000,292,0.0756266000,293,-0.0545398000,294,0.0785408000,295,0.0210603000,296,-0.0860305000,297,0.0250507000,298,0.2131490000,299,0.1352930000,300,0.0357069000,301,0.0155279000,302,-0.0239753000,303,-0.0257288000,304,-0.0550470000 +192,0,0.0131130000,347,-1.0000000000,255,-0.2185260000,256,-0.1616450000,257,0.0039792800,258,-0.0352265000,259,-1.0321600000,260,0.1048510000,261,2.4892300000,262,1.0441200000,263,1.1517000000,264,0.0808445000,265,-0.5377660000,266,-0.3616210000,267,1.4872500000,268,-1.0218400000,269,-1.0635600000,270,0.1797010000,271,0.2818820000,272,0.1432860000,273,-0.2691110000,274,0.5806150000,275,0.1270080000,276,-0.4886740000,277,0.4703330000,278,-1.6306600000,279,0.8303050000,280,-0.1629990000,281,0.2241260000,282,2.0741900000,283,0.1202280000,284,1.3003000000,285,-0.2407300000,286,1.3065400000,287,0.3594650000,288,0.6758290000,289,0.8707850000,290,1.3906700000,291,-0.0259255000,292,0.2797300000,293,-0.0888029000,294,-0.1319220000,295,-0.2315890000,296,-0.5953540000,297,-0.0848234000,298,-0.3329720000,299,0.0929280000,300,0.4068220000,301,0.4359920000,302,-2.0095600000,303,-0.3468920000,304,-0.6830330000 +193,0,0.3803570000,348,-1.0000000000,255,1.3358900000,256,0.5840530000,257,0.8742220000,258,-0.0395852000,259,-0.2902290000,260,-0.0843604000,261,2.9877700000,262,0.5273550000,263,0.7474060000,264,1.9913000000,265,0.7474510000,266,0.8501810000,267,1.1959600000,268,0.6302810000,269,-0.2759240000,270,-0.3300460000,271,-0.9697040000,272,1.4583800000,273,0.0620811000,274,1.1128800000,275,-0.3570250000,276,-0.3834960000,277,0.8119720000,278,0.0758305000,279,0.1677290000,280,-0.7794260000,281,0.5463790000,282,0.8353240000,283,-0.2035220000,284,0.3413660000,285,0.1555420000,286,-0.4152830000,287,-0.0550409000,288,0.0952625000,289,0.2811710000,290,0.2005090000,291,-0.0470076000,292,-0.4261990000,293,-0.2753330000,294,-0.0700723000,295,-0.8863700000,296,-2.3574600000,297,0.1021280000,298,-0.9438370000,299,0.5156790000,300,-1.3553000000,301,0.2801460000,302,0.3490790000,303,-0.9220050000,304,0.6794640000 +194,0,-0.0221107000,349,-1.0000000000,255,0.9350780000,256,0.2749210000,257,-0.8291670000,258,0.0197176000,259,-0.3089290000,260,-0.1405580000,261,-1.4074300000,262,-2.0139400000,263,0.4807730000,264,-0.6276000000,265,-0.7671560000,266,0.5232540000,267,0.5532550000,268,-0.0967071000,269,-0.6010490000,270,-0.7472580000,271,-2.1449800000,272,0.8395420000,273,0.8318870000,274,0.8902390000,275,0.4668800000,276,-0.2067850000,277,0.2683340000,278,-1.2484100000,279,-0.7495510000,280,-0.5216310000,281,0.4862500000,282,0.6496420000,283,0.4151610000,284,0.4241370000,285,0.2421680000,286,-0.0789351000,287,0.2968080000,288,0.3283300000,289,0.3951970000,290,-0.5806550000,291,-0.0161968000,292,-0.3332870000,293,-0.0416723000,294,-0.0453187000,295,-0.2541270000,296,-1.1974000000,297,-1.5906300000,298,-0.4935030000,299,-0.8680310000,300,0.8625670000,301,0.0314251000,302,0.5432250000,303,-0.1021260000,304,-0.7130250000 +195,0,0.1098260000,350,-1.0000000000,255,-0.2031110000,256,-0.2952640000,257,0.2542540000,258,0.0529871000,259,-0.4200060000,260,0.0106524000,261,-0.7372980000,262,-0.6234160000,263,-1.2327400000,264,-0.4754450000,265,-0.0790546000,266,-0.3498320000,267,0.1022920000,268,-0.1078020000,269,0.1436240000,270,0.1651190000,271,-0.3623970000,272,0.0206972000,273,-0.7570850000,274,-0.0707342000,275,0.0480367000,276,0.0779787000,277,0.4175250000,278,-0.2881930000,279,0.0876521000,280,-0.1572250000,281,-0.4811840000,282,0.7787770000,283,-0.1870080000,284,0.1659600000,285,0.1126500000,286,0.3954960000,287,0.3676420000,288,0.1592220000,289,0.4235330000,290,0.1008400000,291,-0.0108368000,292,0.1015850000,293,0.0456070000,294,-0.1146250000,295,0.1912810000,296,0.6159420000,297,-0.0837196000,298,0.0756378000,299,-0.0485391000,300,0.1901290000,301,-0.2760460000,302,0.1939930000,303,0.2003660000,304,0.4234550000 +196,0,0.1503340000,351,-1.0000000000,255,-0.0646395000,256,0.2911150000,257,0.2214020000,258,-0.0342299000,259,-1.0752600000,260,-0.0506495000,261,0.3757470000,262,-0.5368600000,263,-1.0374700000,264,1.1177700000,265,-0.5201540000,266,-0.1657440000,267,0.1172810000,268,-0.0638641000,269,0.6475350000,270,-0.2286620000,271,-0.4727030000,272,0.3133150000,273,0.0448449000,274,0.6995380000,275,-0.0400716000,276,0.0995316000,277,0.6383090000,278,0.1347320000,279,-0.4797250000,280,-0.1414170000,281,-0.0963754000,282,0.5397560000,283,0.1546040000,284,0.0025252500,285,0.5211410000,286,0.8617460000,287,-0.4622750000,288,0.0050059000,289,-0.0979518000,290,0.4978480000,291,-0.0245918000,292,-0.3858100000,293,-0.1320010000,294,0.2481880000,295,-0.2471240000,296,0.7191440000,297,-0.3399280000,298,-0.3265140000,299,0.1563960000,300,0.5437360000,301,0.0636577000,302,0.1691280000,303,0.2878810000,304,-0.5129190000 +197,0,0.0132851000,352,-1.0000000000,255,0.0209826000,256,0.0405758000,257,-0.0373101000,258,0.0121668000,259,0.0193170000,260,-0.0011185700,261,-0.0114047000,262,-0.0116900000,263,-0.0393189000,264,0.0317931000,265,-0.0373302000,266,-0.0118318000,267,0.0341842000,268,0.0199885000,269,-0.0171402000,270,-0.0476033000,271,0.0005099870,272,0.0123916000,273,-0.0136344000,274,-0.0387353000,275,-0.0280574000,276,0.0119866000,277,-0.0334767000,278,-0.0112853000,279,-0.0171320000,280,-0.0007553870,281,-0.0198035000,282,-0.0147582000,283,-0.0301202000,284,0.0195868000,285,-0.0300615000,286,-0.0152424000,287,-0.0126866000,288,-0.0038263200,289,-0.0189064000,290,0.0257291000,291,0.0003527350,292,-0.0153848000,293,-0.0232242000,294,-0.0003227620,295,0.0039523800,296,-0.0521874000,297,-0.0261391000,298,0.0312946000,299,-0.0350596000,300,-0.0241762000,301,-0.0176734000,302,0.0226490000,303,0.0287076000,304,0.0069630200 +198,0,0.0488059000,353,-1.0000000000,255,-0.5582160000,256,0.1161610000,257,-0.7773680000,258,-0.0431353000,259,-0.1588370000,260,0.1828830000,261,-0.4072280000,262,0.3969470000,263,-0.2455590000,264,0.0394510000,265,0.3592850000,266,-0.3053170000,267,-0.0101412000,268,-0.2636340000,269,0.2924620000,270,-0.9990940000,271,-0.7236600000,272,-0.1668160000,273,-1.6228900000,274,-0.8827810000,275,-0.2672330000,276,-0.0036871700,277,0.6421100000,278,2.1279300000,279,0.6574360000,280,-0.1279670000,281,1.6549100000,282,-0.1270710000,283,0.1463420000,284,-0.2546160000,285,-0.5238110000,286,0.0573537000,287,-1.3321600000,288,1.0553400000,289,-1.0455700000,290,0.3736590000,291,0.0255687000,292,-0.6856690000,293,0.2974320000,294,0.1691580000,295,0.0677184000,296,-1.0424400000,297,-0.1274810000,298,-0.1778800000,299,-0.0924755000,300,0.4722130000,301,0.0432632000,302,-0.0375094000,303,-0.8554260000,304,-0.1687930000 +199,0,0.0466392000,354,-1.0000000000,255,-0.2750150000,256,-0.0734672000,257,0.1844260000,258,0.0053625500,259,-0.2860940000,260,0.0070565400,261,0.6562800000,262,-0.1646770000,263,0.6420220000,264,0.1456680000,265,-0.1178720000,266,-0.2176590000,267,0.1553320000,268,-0.0255605000,269,0.4182900000,270,-0.0232033000,271,0.2683020000,272,0.3649080000,273,0.1566120000,274,-0.2786590000,275,0.1723540000,276,-0.0009727440,277,-0.0960905000,278,-0.4144000000,279,-0.0977780000,280,-0.1612920000,281,-0.4267120000,282,-0.1104720000,283,-0.2044600000,284,0.1683820000,285,0.3499910000,286,0.0504478000,287,0.2954000000,288,-0.1360920000,289,0.2037390000,290,0.2115520000,291,0.0244646000,292,0.2694870000,293,-0.0341465000,294,0.4603540000,295,0.1700000000,296,0.2099670000,297,-0.2612440000,298,0.5346540000,299,0.2451650000,300,0.0774151000,301,0.1674590000,302,-0.0758003000,303,0.0758050000,304,-0.1524100000 +200,0,0.2907240000,405,-1.0000000000,355,-0.2941580000,356,0.3658000000,357,-0.0595503000,358,-0.2218730000,359,0.6979460000,360,-0.8233220000,361,-0.6166550000,362,-0.2590510000,363,0.1861660000,364,0.0501556000,365,0.3077730000,366,-0.3536780000,367,0.0930832000,368,0.2663160000,369,-0.1447290000,370,0.0253151000,371,-0.3213340000,372,0.1251620000,373,0.3628370000,374,-0.0352300000,375,-0.1456930000,376,0.1521750000,377,-0.1838820000,378,-0.0319263000,379,0.0901459000,380,0.2000840000,381,0.0955784000,382,0.2913060000,383,-0.2112140000,384,0.0129865000,385,-1.3398500000,386,0.2124270000,387,0.5681490000,388,0.0149256000,389,-0.0446768000,390,-0.3203610000,391,0.2970360000,392,-0.7030880000,393,-0.0405004000,394,-0.8212310000,395,0.5491390000,396,-1.4930900000,397,-0.7803230000,398,-0.2400420000,399,-0.1644510000,400,-0.5619370000,401,-0.1269570000,402,0.0204219000,403,0.0971678000,404,0.3662640000 +201,0,-0.0272886000,406,-1.0000000000,355,0.4012780000,356,0.4927230000,357,-0.0685391000,358,0.6665520000,359,-0.1599290000,360,0.2034030000,361,0.3693610000,362,-0.0187633000,363,0.4504400000,364,0.2289390000,365,0.1156090000,366,-0.4434300000,367,-0.0412215000,368,0.0634824000,369,0.1279300000,370,-0.1061300000,371,-0.1241790000,372,-0.1009290000,373,0.3454700000,374,-0.0009094650,375,0.0574172000,376,0.3173830000,377,-0.2527230000,378,-0.0111242000,379,0.0234174000,380,0.2636530000,381,0.4366090000,382,-0.0200560000,383,0.0161878000,384,-0.0073352200,385,0.5074060000,386,-0.0766342000,387,0.2495630000,388,0.1404730000,389,-0.0206429000,390,-0.3350410000,391,-0.2381940000,392,0.0591357000,393,-0.4521620000,394,-0.2371910000,395,-0.1651500000,396,0.5850170000,397,0.1968940000,398,0.5154820000,399,0.1161650000,400,0.3537560000,401,-0.1195080000,402,-0.0400142000,403,-0.2927980000,404,-0.1414860000 +202,0,-0.1793730000,407,-1.0000000000,355,0.1370360000,356,-0.0026776100,357,-0.0388281000,358,0.1375960000,359,0.1172630000,360,-0.1601560000,361,0.2143940000,362,-0.0157751000,363,0.1499400000,364,-0.0353251000,365,0.0785493000,366,-0.1834430000,367,0.0893678000,368,-0.0135359000,369,0.1067190000,370,0.0952916000,371,-0.1636750000,372,-0.1501920000,373,-0.1380140000,374,-0.0013044200,375,0.0075335100,376,0.2014250000,377,-0.0571462000,378,0.0085700500,379,-0.0177371000,380,0.1464950000,381,-0.1620840000,382,0.0817538000,383,-0.2682990000,384,0.0012468800,385,0.1465150000,386,0.0389064000,387,-0.0424228000,388,0.0591649000,389,-0.0245997000,390,0.0608133000,391,0.0006227960,392,0.1424670000,393,0.0186987000,394,-0.1007590000,395,-0.2665700000,396,0.7138540000,397,-0.0489710000,398,0.5212040000,399,-0.1829560000,400,0.1318280000,401,-0.1269880000,402,0.0399621000,403,-0.0003295950,404,-0.1267110000 +203,0,0.0717365000,408,-1.0000000000,355,-1.1910100000,356,-0.3613670000,357,-0.0289326000,358,0.1737530000,359,0.4191300000,360,-0.6317870000,361,0.3715780000,362,-1.3822200000,363,-0.0449167000,364,-0.2765920000,365,0.4803820000,366,0.0253318000,367,0.0209835000,368,0.0437708000,369,0.4230650000,370,-0.1147350000,371,-0.9792540000,372,0.3495240000,373,0.3365240000,374,0.0316628000,375,-0.7113190000,376,-0.0443378000,377,0.0369917000,378,0.0109477000,379,-0.0151094000,380,-0.9755750000,381,-0.6994840000,382,0.1921550000,383,0.3363070000,384,0.0480887000,385,-1.2101200000,386,0.4039260000,387,1.3171800000,388,-0.3375220000,389,0.0042054000,390,-0.0904776000,391,-0.2211790000,392,-0.3915700000,393,-0.2887480000,394,-0.2644230000,395,0.2805550000,396,1.5567100000,397,-0.1278740000,398,-0.0819555000,399,0.4890520000,400,0.1084600000,401,-0.1171200000,402,-0.0224882000,403,0.2259810000,404,0.7353220000 +204,0,0.2348440000,409,-1.0000000000,355,0.5547740000,356,2.4025300000,357,-0.4107540000,358,-0.8388140000,359,2.0555700000,360,-0.1661950000,361,-1.1407700000,362,-0.4108970000,363,-0.0767037000,364,1.7676100000,365,1.3108200000,366,-1.7378100000,367,-0.3333730000,368,-0.5669090000,369,2.5842200000,370,-1.1549500000,371,-0.4566960000,372,-0.8607050000,373,1.1953200000,374,-0.0205491000,375,0.5331860000,376,-0.5719650000,377,-1.2563400000,378,-0.0344481000,379,-0.0657446000,380,2.0142800000,381,0.3449330000,382,0.1088640000,383,0.9686420000,384,0.0000510708,385,0.6275460000,386,-1.0634800000,387,0.6621630000,388,0.2393450000,389,0.0332261000,390,-0.4012490000,391,-0.2341750000,392,1.6264500000,393,1.1542900000,394,2.4496000000,395,0.1361220000,396,1.7624700000,397,1.7024700000,398,0.5712130000,399,1.1671700000,400,1.1599200000,401,1.8005500000,402,-0.0030509000,403,-0.8166770000,404,0.5806330000 +205,0,0.8578570000,410,-1.0000000000,355,-1.2490100000,356,0.4545850000,357,0.0089237200,358,0.5860390000,359,0.5916740000,360,1.3050000000,361,2.2134800000,362,-0.4409350000,363,1.2466000000,364,-0.4892350000,365,-0.1638890000,366,1.1939800000,367,-0.2991290000,368,0.5086150000,369,0.8834440000,370,0.5874470000,371,-0.8796110000,372,1.4342200000,373,1.2001500000,374,-0.0180889000,375,0.4091100000,376,0.1786260000,377,-0.8298620000,378,-0.0399247000,379,-0.3341710000,380,0.2394870000,381,-0.7154580000,382,-0.4858220000,383,0.5060930000,384,0.0173196000,385,1.3538100000,386,0.0595247000,387,-0.2949940000,388,0.6798320000,389,0.0457752000,390,-0.8303760000,391,0.8208180000,392,1.0581700000,393,0.6344390000,394,0.8900630000,395,-0.7560260000,396,3.3427900000,397,0.0366707000,398,2.3689500000,399,-0.1175470000,400,0.5797810000,401,0.4798510000,402,0.0150071000,403,-0.9094440000,404,-0.1542900000 +206,0,0.0082229200,411,-1.0000000000,355,-0.0036387200,356,-0.0420286000,357,-0.0519906000,358,-0.0063240600,359,0.0294975000,360,-0.0310583000,361,0.0159319000,362,-0.0450209000,363,0.0046173100,364,0.0247832000,365,0.0003362260,366,0.0025649800,367,-0.0007645010,368,0.0057673800,369,-0.0211355000,370,-0.0093831400,371,-0.0473173000,372,-0.0083681700,373,0.0218885000,374,0.0356063000,375,-0.0468530000,376,-0.0369004000,377,-0.0426234000,378,-0.0232573000,379,0.0235024000,380,-0.0460155000,381,-0.0439712000,382,-0.0517440000,383,-0.0501546000,384,0.0421547000,385,0.0061008000,386,0.0042050900,387,0.0046160200,388,0.0338004000,389,0.0169618000,390,-0.0537429000,391,-0.0531208000,392,-0.0342919000,393,0.0139090000,394,-0.0261800000,395,-0.0115576000,396,-0.0182435000,397,-0.0380744000,398,-0.0252096000,399,0.0319850000,400,0.0043464500,401,0.0196626000,402,-0.0416988000,403,0.0368937000,404,-0.0068565700 +207,0,-0.2656430000,412,-1.0000000000,355,0.0491174000,356,0.0475879000,357,-0.0971433000,358,-0.4473170000,359,0.2311050000,360,-0.0815981000,361,-0.1786820000,362,-0.0012572400,363,-0.0376709000,364,-0.1259510000,365,-0.0138239000,366,-0.4145400000,367,-0.0102617000,368,-0.0578479000,369,0.1054080000,370,0.1269290000,371,-0.0443694000,372,-0.0618470000,373,0.1093280000,374,0.0148385000,375,-0.1611730000,376,-0.3598890000,377,0.0257470000,378,-0.0200663000,379,0.0724335000,380,0.0835094000,381,0.0484963000,382,-0.1289710000,383,-0.1830350000,384,0.0472737000,385,0.0551159000,386,-0.0636798000,387,0.2057830000,388,-0.1910800000,389,0.0220490000,390,0.0225824000,391,0.1387520000,392,-0.2147530000,393,0.0225713000,394,-0.1268740000,395,-0.0220119000,396,-1.3091800000,397,-0.9227420000,398,-0.6557380000,399,-0.2011210000,400,0.0568005000,401,0.0282448000,402,0.0212533000,403,-0.1676810000,404,0.3138610000 +208,0,1.3297400000,413,-1.0000000000,355,-0.7982560000,356,-0.9518140000,357,0.1756370000,358,0.0498855000,359,-0.3215050000,360,-0.0950185000,361,-0.0041481900,362,0.7415800000,363,0.2266650000,364,-0.0934678000,365,0.5105450000,366,0.3206000000,367,0.0249850000,368,0.0074908500,369,0.2630740000,370,0.1887490000,371,-1.2237100000,372,-0.3403650000,373,-0.6221640000,374,-0.0508037000,375,0.3727940000,376,1.4465500000,377,0.2656100000,378,0.0174850000,379,-0.6317770000,380,0.6417140000,381,-0.3402910000,382,-0.7681300000,383,-0.5532400000,384,-0.0505504000,385,0.6112970000,386,0.8247970000,387,-0.0868975000,388,0.3481640000,389,0.0448454000,390,-0.7122090000,391,0.5499870000,392,0.6359260000,393,-0.1289870000,394,-0.0005633390,395,-0.7629190000,396,0.2786100000,397,0.7575280000,398,-0.3336780000,399,0.6564910000,400,0.9899960000,401,0.3178910000,402,0.0055884800,403,0.3042310000,404,0.0667041000 +209,0,-0.1350660000,414,-1.0000000000,355,0.0056461700,356,-0.0032898000,357,0.0072122500,358,0.2573730000,359,0.2380210000,360,-0.1336040000,361,0.1228220000,362,-0.2229960000,363,-0.1082200000,364,-0.0064262100,365,0.2926590000,366,-0.1696410000,367,-0.2293290000,368,-0.0508594000,369,-0.1449420000,370,0.1963670000,371,0.0149154000,372,-0.0594734000,373,-0.0902730000,374,0.0351511000,375,0.1334980000,376,-0.0288134000,377,-0.3697200000,378,0.0036599800,379,-0.0042039600,380,0.1056930000,381,-0.0509866000,382,-0.3161030000,383,-0.2320890000,384,-0.0260210000,385,-0.1440500000,386,-0.1502370000,387,0.1137360000,388,0.1193320000,389,0.0418202000,390,-0.0633554000,391,-0.0374437000,392,0.0271734000,393,0.2837010000,394,-0.4864170000,395,0.1314250000,396,0.6536000000,397,-0.3741740000,398,0.6445830000,399,-0.2678900000,400,-0.1448340000,401,0.0968347000,402,0.0121380000,403,0.1757220000,404,-0.0867758000 +210,0,0.1485900000,415,-1.0000000000,355,0.1757950000,356,0.8937430000,357,-0.2066490000,358,0.4121900000,359,-0.3942020000,360,-0.5108220000,361,-0.1848990000,362,-0.3325400000,363,-1.4505300000,364,1.0857100000,365,0.0112113000,366,-0.3158430000,367,0.0772562000,368,-0.5133070000,369,2.3288900000,370,0.2617310000,371,-0.0776588000,372,-0.7270340000,373,0.3896990000,374,-0.0389152000,375,0.7727950000,376,-1.0756500000,377,-0.8263750000,378,0.0429564000,379,0.0024383600,380,0.5550240000,381,0.5909450000,382,0.2953310000,383,0.5602310000,384,0.0325253000,385,0.3450450000,386,-0.3181190000,387,0.0962461000,388,-0.3411900000,389,0.0051661800,390,0.5001900000,391,-0.9444660000,392,1.9769900000,393,0.1764790000,394,1.7406400000,395,0.4419900000,396,1.1840000000,397,1.7078500000,398,-2.0105800000,399,-0.1010660000,400,0.4521180000,401,1.6290600000,402,-0.0119157000,403,-0.7771390000,404,-0.3525750000 +211,0,-0.0802448000,416,-1.0000000000,355,0.4860460000,356,1.1687900000,357,-0.3599420000,358,-0.0510128000,359,0.9760690000,360,-0.4824270000,361,0.3786480000,362,-0.1909660000,363,1.9352100000,364,0.9729490000,365,0.3050670000,366,-0.6610670000,367,0.1357450000,368,-0.5624070000,369,0.4809980000,370,-0.4200140000,371,-0.1215150000,372,0.2726350000,373,0.6495800000,374,-0.0169567000,375,-0.4543900000,376,0.2120360000,377,-1.1199700000,378,-0.0232078000,379,0.0660252000,380,0.8788870000,381,-1.6264800000,382,0.6566390000,383,0.7052980000,384,0.0426880000,385,0.6488210000,386,-0.1027060000,387,0.6720890000,388,0.2234020000,389,0.0115739000,390,-0.6402710000,391,-1.7744400000,392,1.0208800000,393,0.1357660000,394,0.8461470000,395,0.3362260000,396,2.4745600000,397,0.7031410000,398,0.3115950000,399,1.3800700000,400,-0.6936180000,401,0.0155127000,402,0.0192478000,403,-0.0826527000,404,-0.2422480000 +212,0,-0.2690920000,417,-1.0000000000,355,-1.1490400000,356,-0.2940550000,357,-0.1250220000,358,-2.7739900000,359,-2.3826200000,360,-1.7273900000,361,-1.7799700000,362,0.0100857000,363,-1.1877300000,364,-0.7046230000,365,0.0435157000,366,0.3795890000,367,-0.0413830000,368,0.1251040000,369,-1.6378100000,370,-3.0308200000,371,-0.0976734000,372,-0.5168820000,373,-0.6853380000,374,0.0429303000,375,-0.6351360000,376,-2.1074700000,377,0.0327751000,378,0.0156083000,379,0.2476110000,380,-0.8424330000,381,-0.2711710000,382,-2.0669100000,383,0.3656870000,384,-0.0385067000,385,-2.0811700000,386,-0.1437050000,387,0.3056860000,388,0.2017040000,389,-0.0359506000,390,-0.3888810000,391,0.0460784000,392,-1.3646900000,393,-0.7283240000,394,-1.5739300000,395,-0.0700426000,396,0.0497432000,397,-1.4008800000,398,-0.6562810000,399,-0.1323420000,400,-1.2442300000,401,-0.6691320000,402,-0.0033170400,403,0.3302120000,404,-0.1491270000 +213,0,0.2852600000,418,-1.0000000000,355,0.4126830000,356,0.2667350000,357,0.0910874000,358,0.1208630000,359,0.0929643000,360,0.1817260000,361,0.2046260000,362,-0.0049586600,363,0.7079370000,364,0.2301990000,365,0.0616300000,366,-0.4893630000,367,-0.2007450000,368,-0.3217230000,369,0.6826000000,370,-0.1159040000,371,0.1022540000,372,-0.3365750000,373,0.1647880000,374,0.0527658000,375,0.4230690000,376,0.2993270000,377,-0.7155460000,378,-0.0393109000,379,-0.1751850000,380,0.0382208000,381,-0.1895520000,382,0.1142500000,383,-0.0744245000,384,-0.0337129000,385,0.2170820000,386,0.2385910000,387,1.3032800000,388,0.1456720000,389,-0.0006439690,390,-0.1027160000,391,-0.1008500000,392,0.5202460000,393,0.0610990000,394,0.2636450000,395,0.2042600000,396,2.2268900000,397,0.2098130000,398,0.6544220000,399,0.0452619000,400,0.3829520000,401,0.7785550000,402,-0.0086239500,403,0.0101878000,404,-0.5319040000 +214,0,-0.1955970000,419,-1.0000000000,355,-0.1956490000,356,-0.0406459000,357,-0.0024092600,358,0.3587970000,359,-0.0918880000,360,-0.1964180000,361,0.0901040000,362,0.0015132500,363,-0.2294050000,364,0.3457950000,365,0.0076838800,366,0.1783570000,367,-0.2202250000,368,0.2612890000,369,-0.0162419000,370,-0.1168360000,371,0.2121100000,372,-0.1307630000,373,0.1092690000,374,-0.0387561000,375,-0.0539643000,376,-0.1613220000,377,-0.2388980000,378,0.0117550000,379,0.0836986000,380,-0.0847837000,381,0.3987420000,382,-0.2862660000,383,-0.1630570000,384,0.0450308000,385,-0.0447026000,386,-0.0961520000,387,1.1396600000,388,0.0759283000,389,0.0144985000,390,-0.4094440000,391,-0.0476635000,392,-0.3307340000,393,-0.2545150000,394,-0.0349253000,395,0.4932890000,396,-0.8734120000,397,-0.2752450000,398,0.0634623000,399,0.0683256000,400,-0.1698010000,401,0.0523143000,402,-0.0079801800,403,0.6262210000,404,-0.0924154000 +215,0,-0.3249020000,420,-1.0000000000,355,-0.0550053000,356,-0.1061370000,357,-0.0613765000,358,0.0966897000,359,0.1221820000,360,0.1812640000,361,-0.1422550000,362,-0.0800128000,363,0.0044027300,364,0.2352970000,365,-0.1746230000,366,0.2568040000,367,-0.2270210000,368,-0.0626522000,369,-0.7196010000,370,-0.0237982000,371,-0.0169260000,372,0.1489760000,373,0.0691800000,374,-0.0263704000,375,-0.1946340000,376,0.0199895000,377,-0.0122471000,378,0.0292886000,379,-0.0364996000,380,-0.0683549000,381,0.2319830000,382,-0.1624000000,383,0.1424270000,384,0.0342755000,385,-0.1512570000,386,-0.2958850000,387,0.5933490000,388,0.0798825000,389,-0.0245572000,390,-0.0610403000,391,0.1782240000,392,-0.5298080000,393,0.1912790000,394,0.3348560000,395,-0.0013139500,396,0.2358380000,397,-0.1883200000,398,0.6493110000,399,-0.0262245000,400,0.0098895500,401,0.3162610000,402,0.0245293000,403,-0.1699740000,404,-0.2304280000 +216,0,-0.4949250000,421,-1.0000000000,355,-0.2386050000,356,0.3105710000,357,-0.1398850000,358,-0.5835830000,359,-0.9270780000,360,-0.6466880000,361,-0.2423780000,362,-0.7087420000,363,-2.0094700000,364,-0.3623010000,365,-0.1200930000,366,-0.2702740000,367,-0.1955370000,368,0.0326319000,369,0.2358870000,370,-0.4311650000,371,-0.0174149000,372,-0.0621050000,373,0.4524270000,374,0.0350282000,375,-0.2110340000,376,-0.5585810000,377,0.1779880000,378,-0.0132199000,379,0.0459252000,380,0.0567469000,381,-0.4499880000,382,-0.8790910000,383,0.6562880000,384,-0.0308213000,385,0.0015208800,386,0.2154570000,387,-0.3898410000,388,-0.4854390000,389,-0.0120568000,390,-0.4775250000,391,-0.5434960000,392,-0.3273570000,393,-0.5403270000,394,-0.1243370000,395,-0.0659687000,396,1.5585400000,397,0.5365550000,398,-0.6713210000,399,0.0653462000,400,-1.3276200000,401,0.3946410000,402,-0.0022771400,403,-0.0114378000,404,0.5795180000 +217,0,0.0636037000,422,-1.0000000000,355,-0.0935374000,356,0.1992330000,357,0.0365551000,358,0.3692440000,359,0.3694910000,360,-0.1388450000,361,0.2074460000,362,-0.0830852000,363,0.0810962000,364,0.3769820000,365,0.1022580000,366,-0.0849648000,367,-0.0512930000,368,-0.1651140000,369,-0.2409250000,370,0.0015956400,371,-0.1148450000,372,-0.2664010000,373,-0.0408982000,374,0.0330087000,375,0.2895950000,376,-0.1218830000,377,-0.1734170000,378,-0.0379138000,379,0.0143418000,380,-0.0836422000,381,0.1769020000,382,-0.4296320000,383,-0.4428940000,384,-0.0288654000,385,-0.0227451000,386,0.0056585800,387,-0.4028880000,388,-0.2290280000,389,0.0412125000,390,-0.2425180000,391,-0.3431340000,392,-0.2872550000,393,0.0744772000,394,-0.0019919400,395,0.2645920000,396,-0.9157700000,397,-0.1738390000,398,0.3691470000,399,-0.1431760000,400,-0.0060736200,401,0.4803260000,402,0.0262478000,403,0.1081310000,404,-0.0445427000 +218,0,0.0144713000,423,-1.0000000000,355,-0.0503188000,356,-0.0165261000,357,-0.0148694000,358,0.0086204800,359,0.0136533000,360,0.0414692000,361,-0.0071053100,362,-0.0306849000,363,0.0383864000,364,-0.0458574000,365,-0.0250729000,366,0.0046949000,367,0.0122458000,368,-0.0462795000,369,0.0443678000,370,-0.0048431700,371,-0.0042454200,372,0.0416854000,373,0.0023109700,374,-0.0008168790,375,0.0061352900,376,-0.0411453000,377,0.0143996000,378,-0.0088321000,379,-0.0032863300,380,-0.0079386000,381,-0.0403912000,382,-0.0115319000,383,-0.0050251800,384,0.0233830000,385,-0.0119979000,386,0.0193436000,387,0.0043451500,388,0.0036773800,389,-0.0195499000,390,0.0333621000,391,-0.0547645000,392,-0.0255267000,393,-0.0331603000,394,0.0284509000,395,-0.0418723000,396,-0.0023813800,397,-0.0208328000,398,-0.0361785000,399,-0.0100520000,400,-0.0356933000,401,0.0247689000,402,-0.0442733000,403,-0.0325109000,404,-0.0015249600 +219,0,0.3028800000,424,-1.0000000000,355,0.2152110000,356,0.0178891000,357,-0.1101710000,358,0.5906460000,359,2.6517500000,360,-0.3288250000,361,1.6290000000,362,-1.5700100000,363,0.8258630000,364,0.1844880000,365,-0.2849180000,366,0.2398770000,367,-0.0750754000,368,0.3418880000,369,1.8816600000,370,-0.1236710000,371,-0.2401890000,372,0.5337660000,373,-0.4077490000,374,0.0077034100,375,0.4217820000,376,-0.0964989000,377,-1.6571500000,378,0.0245300000,379,0.0977045000,380,-1.2254600000,381,1.0745800000,382,-0.2859270000,383,0.0125006000,384,0.0367852000,385,0.5384340000,386,0.5284750000,387,2.6970900000,388,-0.5629630000,389,-0.0432258000,390,0.2754020000,391,0.6356900000,392,2.4241800000,393,0.5414870000,394,0.7678840000,395,1.2034400000,396,2.0876100000,397,-1.0392200000,398,1.6483300000,399,0.2462800000,400,0.5577030000,401,0.2482180000,402,0.0103114000,403,-0.0265289000,404,0.9187100000 +220,0,0.1371610000,425,-1.0000000000,355,-0.3191710000,356,-0.3085230000,357,-0.0089259600,358,0.0519462000,359,-0.8958620000,360,-1.0046400000,361,0.0648808000,362,0.0714137000,363,0.6068600000,364,0.1029410000,365,0.2358020000,366,0.2560760000,367,-0.0688200000,368,0.1939400000,369,-0.3628270000,370,-1.3829500000,371,-0.0087368300,372,-0.2648520000,373,0.1051690000,374,0.0224616000,375,-0.0920854000,376,-0.2247490000,377,-0.6983880000,378,-0.0112684000,379,-0.0007939860,380,-0.7532840000,381,0.1689700000,382,-0.4752300000,383,-0.0383934000,384,-0.0124735000,385,-0.1653180000,386,-0.3403050000,387,-0.1608070000,388,-0.8219160000,389,0.0013889200,390,-0.1598610000,391,0.3141920000,392,-1.1555600000,393,0.3321820000,394,0.0659820000,395,-0.1083200000,396,1.4095800000,397,0.1937170000,398,-0.4177480000,399,0.0922666000,400,0.4524090000,401,-1.9009000000,402,-0.0389955000,403,0.2046810000,404,-0.1534700000 +221,0,1.1310400000,426,-1.0000000000,355,0.9263350000,356,-0.0869146000,357,0.1851200000,358,0.5533530000,359,0.9022490000,360,-0.0071209100,361,-0.0806507000,362,0.4602760000,363,1.8167000000,364,0.6883940000,365,0.0476638000,366,-1.5846800000,367,-0.6171020000,368,-0.4609780000,369,0.3292850000,370,0.3476480000,371,-0.1259440000,372,-1.2367700000,373,-0.3289190000,374,0.0335640000,375,0.7260240000,376,0.7049600000,377,-1.0569600000,378,-0.0040587200,379,-0.2478390000,380,1.3153000000,381,-0.6425920000,382,0.2069050000,383,-0.0648494000,384,-0.0228386000,385,0.9992270000,386,0.3113320000,387,1.6070600000,388,0.5272270000,389,0.0005723470,390,-0.4778060000,391,-0.3878990000,392,-0.1805100000,393,-0.5621660000,394,0.3627970000,395,0.7293370000,396,4.6718400000,397,1.2579300000,398,1.2381900000,399,-0.7930780000,400,1.1157700000,401,0.1393660000,402,-0.0346502000,403,0.4342240000,404,-0.6525430000 +222,0,0.4406230000,427,-1.0000000000,355,0.5642700000,356,-0.3091970000,357,-0.0469657000,358,0.3847180000,359,0.2935110000,360,-0.1415540000,361,1.1067000000,362,-0.1438420000,363,0.3887010000,364,-0.2570880000,365,0.1816570000,366,0.0958705000,367,-0.2333420000,368,0.2938770000,369,-0.7729380000,370,-0.0787526000,371,-0.3206840000,372,0.0097633900,373,1.1459300000,374,-0.0179924000,375,-0.1850590000,376,0.6513760000,377,-0.1989370000,378,-0.0131295000,379,-0.0053225700,380,0.5022870000,381,-1.5792300000,382,-0.0656307000,383,0.3897890000,384,-0.0315037000,385,-0.3878360000,386,0.0935377000,387,-0.0011659300,388,0.6565450000,389,0.0274043000,390,-0.7255270000,391,-0.1470760000,392,0.1646290000,393,-0.2443060000,394,1.0875300000,395,0.0266583000,396,0.9128440000,397,0.8636690000,398,0.6900990000,399,-0.2026530000,400,0.2055310000,401,0.2304100000,402,0.0423820000,403,-0.4734210000,404,-0.2441010000 +223,0,-0.0364376000,428,-1.0000000000,355,-0.0897806000,356,0.1167450000,357,-0.0010086100,358,0.2577870000,359,-0.3068140000,360,0.1029160000,361,0.2125700000,362,0.0356898000,363,0.1996410000,364,0.0514214000,365,-0.0491762000,366,0.0925771000,367,0.0440812000,368,0.1015090000,369,0.5655130000,370,-0.0360488000,371,0.0577778000,372,-0.1613690000,373,-0.0098994600,374,-0.0229888000,375,-0.0584547000,376,0.1007680000,377,-0.1192660000,378,0.0280470000,379,-0.0111912000,380,-0.2905170000,381,0.2469300000,382,0.0499733000,383,-0.2427700000,384,0.0556660000,385,0.2249940000,386,-0.2882330000,387,-0.1746070000,388,-0.0980754000,389,-0.0109758000,390,-0.2248240000,391,0.2713590000,392,-0.4305350000,393,-0.2223540000,394,0.0854407000,395,-0.1469840000,396,0.4477660000,397,-0.0529052000,398,0.2445180000,399,0.1187560000,400,0.1881650000,401,0.0696707000,402,-0.0030769400,403,-0.1708380000,404,0.1647460000 +224,0,-0.1914640000,429,-1.0000000000,355,-0.3144060000,356,0.1683340000,357,-0.0248605000,358,0.2051130000,359,0.0583431000,360,0.1709220000,361,-0.3234480000,362,-0.0668978000,363,-0.3907010000,364,0.2919060000,365,0.0317087000,366,-1.2642900000,367,0.0450977000,368,-0.2230140000,369,-1.0250700000,370,0.2216740000,371,0.2251660000,372,0.0032238700,373,0.1259950000,374,0.0422110000,375,0.2448700000,376,0.0411632000,377,-0.4125320000,378,-0.0044751200,379,-0.0888974000,380,-0.4224610000,381,0.2660270000,382,-0.2689340000,383,-0.0925747000,384,-0.0404661000,385,-0.1743490000,386,0.1873340000,387,0.1475230000,388,0.0139482000,389,0.0275913000,390,-0.0311759000,391,0.1362860000,392,0.3718260000,393,-0.7035890000,394,-0.1787060000,395,0.4013020000,396,0.7590310000,397,-0.0824765000,398,0.3409610000,399,-0.3990360000,400,-0.7435710000,401,0.1101590000,402,-0.0147263000,403,0.0345227000,404,-0.0396631000 +225,0,-0.1777740000,430,-1.0000000000,355,0.0268583000,356,0.2443920000,357,-0.0370849000,358,-0.4355600000,359,0.0303812000,360,-0.0446768000,361,0.1360180000,362,-0.0994839000,363,-0.1763680000,364,0.2121570000,365,-0.1429490000,366,-0.3041060000,367,0.0643807000,368,-0.0568079000,369,0.0482607000,370,-0.0311893000,371,0.0748282000,372,-0.0638331000,373,0.0625998000,374,-0.0329518000,375,-0.1025930000,376,-0.0947032000,377,0.0920589000,378,-0.0322526000,379,0.0369063000,380,-0.0637839000,381,-0.1848070000,382,-0.0151228000,383,0.3152030000,384,0.0119604000,385,-0.1377000000,386,-0.0773357000,387,0.2810000000,388,-0.0260211000,389,0.0348897000,390,-0.2293420000,391,-0.2269350000,392,0.2075060000,393,0.0310451000,394,-0.0563612000,395,0.1893600000,396,0.6520050000,397,0.0386714000,398,0.4164520000,399,-0.1333970000,400,-0.0055239500,401,0.1932450000,402,0.0207381000,403,-0.2673770000,404,0.1458160000 +226,0,0.4494470000,431,-1.0000000000,355,0.0411772000,356,-0.5456190000,357,0.1446600000,358,-0.0840218000,359,-1.4347900000,360,0.2696100000,361,0.0189050000,362,-0.7887480000,363,-0.2818570000,364,0.1828010000,365,-0.4409830000,366,0.1624020000,367,-0.1872650000,368,0.1960670000,369,-1.9883500000,370,0.2582870000,371,-0.3915220000,372,-0.5663000000,373,-0.0410963000,374,0.0097794800,375,-0.4296520000,376,-0.3924040000,377,0.1997030000,378,0.0449306000,379,0.0396278000,380,-0.0699429000,381,0.3049180000,382,-0.4224600000,383,0.3337680000,384,-0.0196489000,385,0.1477450000,386,-0.3111570000,387,-0.1261850000,388,0.2590150000,389,-0.0068125500,390,-1.2093600000,391,-0.0284109000,392,-0.5595680000,393,0.5685130000,394,-0.0884120000,395,0.7504110000,396,-3.5189100000,397,-0.0674120000,398,0.0362858000,399,0.3625070000,400,-0.4122650000,401,0.1559240000,402,0.0434806000,403,0.1749190000,404,-0.5446350000 +227,0,0.1299330000,432,-1.0000000000,355,-1.0002500000,356,0.0711288000,357,-0.1967710000,358,-0.0868032000,359,1.1595000000,360,0.2525400000,361,-0.7110940000,362,-1.6020100000,363,-0.3051760000,364,0.0161772000,365,0.2837620000,366,0.2426120000,367,0.1109150000,368,0.0142828000,369,-0.5663180000,370,-0.3129020000,371,0.4463780000,372,0.5426460000,373,0.2688770000,374,-0.0458759000,375,0.1698640000,376,-0.6061930000,377,0.3597150000,378,0.0428258000,379,0.2551460000,380,-0.2259200000,381,0.0631250000,382,-1.2137200000,383,-0.3672620000,384,0.0363748000,385,-0.3111890000,386,0.0410432000,387,1.3555200000,388,0.9040310000,389,-0.0021663100,390,0.0907643000,391,-0.4606340000,392,-0.2745330000,393,0.3553000000,394,-0.4547690000,395,0.3305930000,396,0.0834341000,397,-0.4051680000,398,-0.0315618000,399,0.4739050000,400,-0.7809270000,401,0.2251790000,402,-0.0447831000,403,0.1942420000,404,0.1163830000 +228,0,0.0183973000,433,-1.0000000000,355,-0.0992341000,356,-0.0612063000,357,0.0025512900,358,-0.2799140000,359,-0.1249430000,360,0.0571696000,361,-0.0821332000,362,-0.0545476000,363,-0.3042040000,364,0.3757410000,365,-0.3195170000,366,0.4286390000,367,0.1625120000,368,0.1019180000,369,-0.6297120000,370,-0.2427510000,371,0.1942550000,372,0.1388090000,373,-0.1248870000,374,-0.0352030000,375,-0.0013280400,376,-0.2387640000,377,0.1279340000,378,0.0535726000,379,0.0915187000,380,-0.4458640000,381,0.0352202000,382,-0.2288990000,383,0.0523324000,384,0.0375989000,385,-0.3600050000,386,0.0079208100,387,-0.7761020000,388,-0.1088850000,389,-0.0031110200,390,-0.3337830000,391,0.0108770000,392,0.1357260000,393,-0.0577287000,394,0.0828109000,395,0.7087900000,396,-0.6846490000,397,0.0864400000,398,0.0032496000,399,0.3245520000,400,-0.1200130000,401,-0.0037170900,402,-0.0256037000,403,-0.2155830000,404,0.1191610000 +229,0,0.0193124000,434,-1.0000000000,355,0.0304587000,356,0.0135291000,357,-0.0469808000,358,0.0056059500,359,0.0266815000,360,-0.0304469000,361,-0.0358826000,362,0.0376213000,363,0.0317628000,364,-0.0157547000,365,-0.0090689700,366,0.0332249000,367,-0.0146720000,368,0.0012377400,369,-0.0270465000,370,-0.0080721100,371,-0.0185217000,372,0.0332872000,373,0.0344732000,374,0.0114024000,375,-0.0169581000,376,-0.0200791000,377,-0.0147245000,378,-0.0108084000,379,-0.0125913000,380,-0.0326060000,381,-0.0290522000,382,0.0071916200,383,-0.0233273000,384,-0.0096378900,385,-0.0192463000,386,0.0056000200,387,0.0019743600,388,0.0087177600,389,0.0176027000,390,-0.0487159000,391,0.0230798000,392,-0.0074579800,393,-0.0268634000,394,0.0287159000,395,0.0223944000,396,-0.0170356000,397,0.0094733100,398,-0.0133442000,399,0.0028306900,400,0.0181413000,401,-0.0480324000,402,0.0167160000,403,-0.0205823000,404,-0.0279246000 +230,0,-0.1074760000,435,-1.0000000000,355,-0.2149500000,356,0.0445280000,357,-0.0842802000,358,0.0962859000,359,-0.1385940000,360,-0.1785370000,361,0.0680797000,362,-0.2628820000,363,-0.1829810000,364,0.4257860000,365,0.0913017000,366,-0.0353054000,367,0.0083006600,368,0.1367690000,369,-0.0701472000,370,-0.0634402000,371,-0.2543890000,372,0.1134680000,373,0.0899004000,374,0.0298542000,375,-0.0001970340,376,0.1000890000,377,-0.1617860000,378,-0.0503133000,379,-0.0039575100,380,-0.0234042000,381,0.4028270000,382,-0.1831980000,383,0.2754400000,384,0.0414095000,385,-0.0172892000,386,-0.0043467300,387,0.0252949000,388,0.0385646000,389,-0.0254159000,390,-0.2328960000,391,0.3864540000,392,-0.0376757000,393,0.2145390000,394,0.1508020000,395,0.1706900000,396,-0.0354370000,397,-0.0477005000,398,-0.2946570000,399,0.0910079000,400,-0.2023900000,401,0.1379700000,402,0.0268218000,403,-0.4657830000,404,-0.1182770000 +231,0,-0.1691250000,436,-1.0000000000,355,-0.0428751000,356,-0.0154559000,357,0.0075158900,358,-0.2899860000,359,-0.0770349000,360,0.0992992000,361,-0.0660525000,362,0.1671740000,363,-0.2965550000,364,-0.1161010000,365,-0.2037340000,366,0.1379480000,367,0.0646115000,368,-0.0473914000,369,-0.0250432000,370,-0.1237430000,371,0.0331281000,372,-0.0693682000,373,-0.1470140000,374,-0.0426645000,375,-0.0725842000,376,0.0245622000,377,0.1923980000,378,0.0088795200,379,-0.0105072000,380,-0.1879840000,381,-0.0550893000,382,-0.1131380000,383,0.5944880000,384,0.0512102000,385,-0.0255643000,386,0.1494510000,387,-0.1208450000,388,-0.0483213000,389,0.0405806000,390,-0.0985050000,391,-0.0694172000,392,0.0049165000,393,-0.5344130000,394,0.2736530000,395,-0.0164825000,396,-0.0024172800,397,0.1042480000,398,-0.0125583000,399,0.0513421000,400,0.1248990000,401,0.3792610000,402,0.0222091000,403,-0.1215130000,404,-0.1860900000 +232,0,0.0444545000,437,-1.0000000000,355,-0.2187320000,356,-0.0924774000,357,0.0176737000,358,-0.0922951000,359,0.1053040000,360,0.1200850000,361,0.4705800000,362,0.0124933000,363,-0.2598300000,364,-0.2440010000,365,-0.0662536000,366,0.5178950000,367,0.0651424000,368,-0.0099131900,369,-0.4277040000,370,-0.1620990000,371,0.1405360000,372,0.2894650000,373,-0.1756300000,374,0.0156374000,375,0.0956245000,376,-0.2699180000,377,-0.1403030000,378,-0.0084845400,379,-0.1289410000,380,-0.2234630000,381,0.0507286000,382,-0.0209533000,383,0.1084100000,384,0.0332622000,385,-0.8263000000,386,-0.3272610000,387,0.5325500000,388,-0.0033334300,389,0.0421798000,390,0.1871140000,391,0.1400670000,392,-0.1517170000,393,0.2638480000,394,1.0046900000,395,-0.0244730000,396,-1.1182800000,397,-0.0035114200,398,-0.0411916000,399,0.3672260000,400,-0.1816030000,401,0.1635820000,402,-0.0362844000,403,-0.0652236000,404,0.0093190300 +233,0,-0.2505540000,438,-1.0000000000,355,-0.1020960000,356,0.7612200000,357,0.0026080400,358,-0.7281480000,359,0.0649532000,360,-0.2820300000,361,-0.4567030000,362,-0.0263808000,363,-0.5839080000,364,0.0555964000,365,-0.5221990000,366,0.0660963000,367,0.1167940000,368,-0.0303651000,369,1.1993400000,370,-0.3157420000,371,0.1717960000,372,0.1036790000,373,0.3159100000,374,-0.0093819700,375,-0.2256190000,376,-0.3376370000,377,0.1778790000,378,-0.0389958000,379,0.1311290000,380,-0.3596370000,381,-0.2930190000,382,-0.0073891800,383,0.2287150000,384,0.0123757000,385,-0.1018530000,386,0.3228470000,387,-0.2899190000,388,-0.1553770000,389,-0.0437111000,390,0.1025800000,391,-0.5143750000,392,-0.3934820000,393,-0.0926693000,394,0.1932560000,395,0.4759780000,396,1.7333500000,397,0.6920940000,398,0.0061827500,399,0.3874800000,400,-0.2191080000,401,0.0646272000,402,0.0645698000,403,-0.0842743000,404,0.3992580000 +234,0,0.3319330000,439,-1.0000000000,355,0.1827540000,356,-0.1732780000,357,0.1064080000,358,0.9014800000,359,0.4188830000,360,0.2339070000,361,0.5251100000,362,-0.1815400000,363,0.6392920000,364,0.6317010000,365,0.0326409000,366,0.1225130000,367,-0.6418030000,368,-0.1334300000,369,0.3169250000,370,0.1966750000,371,-0.1232970000,372,0.2372640000,373,0.3968240000,374,0.0316376000,375,0.2416000000,376,0.6529900000,377,-0.4893720000,378,0.0396913000,379,-0.2100480000,380,0.6950240000,381,0.3363920000,382,-0.1303810000,383,-0.1087810000,384,0.0040947700,385,0.6750920000,386,0.1309900000,387,1.6376600000,388,0.2591700000,389,-0.0391049000,390,-0.3907310000,391,-0.0921775000,392,0.2690110000,393,0.1951850000,394,-0.5456080000,395,-0.3567430000,396,0.3183710000,397,0.3502550000,398,0.0075227100,399,0.1295780000,400,0.2646190000,401,-0.5087730000,402,-0.0418447000,403,-0.6593080000,404,-0.3375140000 +235,0,-0.1414890000,440,-1.0000000000,355,0.1066560000,356,0.0231662000,357,-0.0133504000,358,0.0030277300,359,0.2586150000,360,0.2131810000,361,-0.1452190000,362,-0.1057810000,363,0.1089130000,364,0.3052330000,365,0.0383637000,366,-0.6195810000,367,-0.0636712000,368,0.0103416000,369,-0.5880410000,370,-0.4700870000,371,0.0476889000,372,0.2658670000,373,-0.0740843000,374,-0.0067101100,375,0.1268660000,376,-0.0340207000,377,-0.4094280000,378,0.0134829000,379,-0.0493205000,380,0.1056960000,381,-0.0011944500,382,0.0452354000,383,-0.1607080000,384,0.0439706000,385,-0.1982720000,386,-0.1102900000,387,0.0315881000,388,0.0742292000,389,0.0166336000,390,-0.2421150000,391,-0.1362160000,392,-0.3361060000,393,0.2315080000,394,0.3847110000,395,0.3399050000,396,-1.5212100000,397,1.0246900000,398,-0.0792018000,399,0.5997920000,400,-0.0345946000,401,0.0358862000,402,-0.0383255000,403,0.0425473000,404,-0.4163060000 +236,0,-0.1969250000,441,-1.0000000000,355,0.0268142000,356,-0.2304970000,357,-0.0233510000,358,-0.0343509000,359,-0.4715480000,360,-0.0274839000,361,-0.1019790000,362,0.0252094000,363,0.0353375000,364,-0.1414580000,365,-0.1458480000,366,-1.0113200000,367,-0.0825612000,368,-0.1022930000,369,-0.7257200000,370,-0.1795890000,371,-0.1008030000,372,-0.0448593000,373,-0.0478456000,374,0.0060066700,375,0.3226900000,376,-0.0363038000,377,0.0521488000,378,-0.0229390000,379,-0.0528045000,380,-0.0313225000,381,-0.1131840000,382,-0.0686580000,383,-0.0018509900,384,0.0583421000,385,-0.0701493000,386,0.0946028000,387,0.6359240000,388,-0.1153300000,389,-0.0336092000,390,0.0693073000,391,0.1279850000,392,-0.0403488000,393,0.0755154000,394,-0.4098640000,395,-0.0289129000,396,0.7022610000,397,-0.1361300000,398,-1.0806400000,399,-0.3991270000,400,0.2134490000,401,-0.4088390000,402,0.0621831000,403,0.2482900000,404,-0.1528790000 +237,0,0.7680870000,442,-1.0000000000,355,0.3836550000,356,0.9306750000,357,0.0120680000,358,-0.1139210000,359,1.3246400000,360,-0.2670160000,361,0.2722360000,362,-0.5783760000,363,0.7181840000,364,-0.5914070000,365,-0.7180300000,366,0.7421880000,367,0.1501910000,368,0.0162580000,369,0.0085604100,370,0.2234710000,371,0.5906020000,372,-0.2311000000,373,0.4511870000,374,-0.0018107200,375,-0.4531140000,376,1.1720500000,377,-0.3433790000,378,-0.0047356400,379,-0.2944180000,380,-0.9796000000,381,0.6127160000,382,0.7149580000,383,0.5680740000,384,0.0099188600,385,0.1260630000,386,-0.0969892000,387,1.7285400000,388,-0.7894430000,389,-0.0182650000,390,0.3059090000,391,0.4355600000,392,1.7361700000,393,0.2266580000,394,0.4027440000,395,-1.1410900000,396,3.6491800000,397,0.2501350000,398,1.2253400000,399,-0.1659070000,400,0.5968000000,401,0.3723770000,402,-0.0495461000,403,-0.0327404000,404,0.6158900000 +238,0,-0.0601723000,443,-1.0000000000,355,0.0180630000,356,-0.0188688000,357,0.0430521000,358,-0.1223240000,359,-0.1202720000,360,0.2002300000,361,-0.0450790000,362,-0.1773330000,363,-0.2234050000,364,0.0427114000,365,-0.1718650000,366,0.2212010000,367,-0.1954360000,368,0.0656524000,369,-0.1921750000,370,0.0498775000,371,-0.0650849000,372,-0.0635754000,373,0.0840117000,374,-0.0038585500,375,0.0543038000,376,-0.1673730000,377,0.0790159000,378,0.0198352000,379,0.0406456000,380,-0.1265730000,381,0.1669790000,382,-0.2029790000,383,0.4846480000,384,-0.0224731000,385,-0.0905053000,386,-0.1783060000,387,0.0321119000,388,0.0010528000,389,-0.0192428000,390,-0.2287470000,391,-0.0345618000,392,0.0117154000,393,0.1546460000,394,-0.0140181000,395,0.0504062000,396,-0.2172960000,397,0.0543112000,398,0.1703820000,399,0.1578110000,400,-0.1617770000,401,-0.0439961000,402,0.0152325000,403,0.0100112000,404,0.0856424000 +239,0,1.2360500000,444,-1.0000000000,355,-0.6327620000,356,0.2860130000,357,-0.2168900000,358,0.1852220000,359,0.1799300000,360,-0.0084628000,361,-0.1773210000,362,0.1594940000,363,-0.1792940000,364,-0.5513230000,365,0.1920000000,366,-0.1004060000,367,-0.1789170000,368,0.7653850000,369,0.2394170000,370,0.4299810000,371,-0.0684362000,372,0.0368117000,373,-0.0065542000,374,-0.0544179000,375,-0.2586760000,376,0.3444940000,377,-0.2094100000,378,-0.0490688000,379,-0.0223307000,380,0.1259730000,381,0.1433550000,382,-0.5847650000,383,-0.4775500000,384,0.0036409700,385,0.1035910000,386,-0.3174320000,387,0.0020968600,388,0.3809120000,389,0.0475476000,390,-0.2355710000,391,-0.4560700000,392,0.0694787000,393,-0.5079790000,394,-0.0234694000,395,-0.0467944000,396,0.1693690000,397,0.4059540000,398,0.0351513000,399,-0.0156734000,400,0.3643410000,401,-0.3708510000,402,-0.0217520000,403,0.0428222000,404,0.4037860000 +240,0,0.9361340000,445,-1.0000000000,355,-0.2120590000,356,-0.2472520000,357,0.0505143000,358,-0.8217810000,359,0.2661500000,360,0.6179850000,361,-0.2167750000,362,-2.6831700000,363,-0.1048820000,364,-0.2711010000,365,0.0896709000,366,0.7741630000,367,-0.3995630000,368,0.3089870000,369,1.1430700000,370,0.4649050000,371,-0.0539060000,372,-0.1417160000,373,0.4319040000,374,0.0298220000,375,0.1909560000,376,0.7092250000,377,-0.4746320000,378,0.0326302000,379,0.0146491000,380,-0.6406870000,381,-0.3119620000,382,0.4595850000,383,0.4526560000,384,0.0095699000,385,0.1008820000,386,0.2081020000,387,0.8496800000,388,-0.4601390000,389,-0.0196067000,390,-0.0218031000,391,0.9646600000,392,1.4425500000,393,-0.0287266000,394,0.5569930000,395,0.8461270000,396,1.8376100000,397,0.1487850000,398,0.2893030000,399,-0.1914060000,400,0.6395200000,401,0.5700860000,402,0.0053433100,403,-0.1920920000,404,-0.0712943000 +241,0,0.1641060000,446,-1.0000000000,355,-0.3622430000,356,-0.7048790000,357,0.0998316000,358,0.2510500000,359,-0.3259860000,360,0.3094540000,361,0.0172912000,362,-0.2618020000,363,-0.6905400000,364,-0.1614830000,365,-0.2253980000,366,0.0559868000,367,-0.0163456000,368,-0.4940570000,369,0.6223730000,370,-0.1154800000,371,-0.0359259000,372,-0.1817970000,373,-0.0786581000,374,-0.0383839000,375,-0.3282290000,376,-0.1412370000,377,-0.2981240000,378,-0.0070113000,379,-0.1404180000,380,-0.5548790000,381,0.8014010000,382,-0.0111989000,383,0.7963520000,384,-0.0408262000,385,0.1116750000,386,-0.7681210000,387,0.2623340000,388,-2.4545500000,389,-0.0054054000,390,-0.3142930000,391,0.3223160000,392,0.2806760000,393,0.0045866800,394,0.3298860000,395,-0.6873060000,396,0.0706676000,397,0.1458980000,398,-0.4330170000,399,-0.5201680000,400,-0.4150290000,401,0.3367820000,402,0.0015432200,403,0.0089051200,404,-0.3790970000 +242,0,0.2175860000,447,-1.0000000000,355,-0.2560070000,356,-0.1110270000,357,0.0363602000,358,0.2667960000,359,0.4412900000,360,0.3912220000,361,0.6541970000,362,-0.0410827000,363,-0.1272070000,364,0.4028170000,365,-0.2040720000,366,0.3728040000,367,0.0258697000,368,0.0774616000,369,0.4267830000,370,0.1485130000,371,-0.0290407000,372,0.3030650000,373,-0.4928900000,374,-0.0059322600,375,-0.0333911000,376,0.0203261000,377,-0.7416510000,378,-0.0366718000,379,0.0310318000,380,-0.2576580000,381,0.4843820000,382,-0.0684153000,383,-0.2439860000,384,-0.0144113000,385,-0.2653880000,386,0.1866330000,387,-0.3922490000,388,-0.1408140000,389,-0.0399592000,390,0.2149920000,391,0.2052370000,392,-0.1741990000,393,-0.1933520000,394,-0.0626482000,395,0.1216110000,396,-0.1547580000,397,-0.5403730000,398,0.1439050000,399,0.3831350000,400,-0.4774180000,401,0.2619620000,402,0.0403539000,403,0.2716310000,404,-0.0883529000 +243,0,0.0254947000,448,-1.0000000000,355,0.0266625000,356,-0.0190092000,357,-0.0652994000,358,-0.0296127000,359,0.0319519000,360,0.0065453700,361,-0.0407266000,362,0.0355720000,363,0.0375537000,364,0.0160895000,365,-0.0097561800,366,-0.0295761000,367,0.0122847000,368,-0.0127348000,369,0.0327068000,370,-0.0455852000,371,-0.0081078100,372,-0.0053936800,373,0.0226304000,374,0.0274573000,375,0.0358671000,376,-0.0444264000,377,0.0087617900,378,0.0053179900,379,-0.0145857000,380,-0.0019292500,381,0.0376677000,382,-0.0249324000,383,0.0048447500,384,-0.0034989800,385,-0.0149749000,386,0.0134947000,387,0.0135416000,388,-0.0295477000,389,-0.0319829000,390,-0.0049854600,391,0.0058019800,392,0.0231465000,393,0.0212974000,394,0.0393930000,395,-0.0477417000,396,-0.0476964000,397,0.0114306000,398,-0.0159643000,399,0.0437861000,400,-0.0386900000,401,0.0232759000,402,-0.0370740000,403,-0.0001902690,404,-0.0538177000 +244,0,0.1747920000,449,-1.0000000000,355,0.1670650000,356,0.1453990000,357,0.0814511000,358,0.0688589000,359,0.2417490000,360,0.1957430000,361,0.0206823000,362,0.2062450000,363,0.1063160000,364,0.2881570000,365,-0.4288410000,366,-0.1161700000,367,0.0010989300,368,-0.2648410000,369,-0.2801770000,370,0.2542820000,371,0.0673654000,372,-0.0905028000,373,0.0396089000,374,-0.0444984000,375,0.1302710000,376,-0.0152141000,377,0.0065958200,378,0.0215212000,379,0.0182184000,380,-0.2145900000,381,-0.2253420000,382,0.0591716000,383,0.3552620000,384,-0.0270361000,385,0.0392799000,386,0.0834429000,387,-0.0402271000,388,-0.0371691000,389,0.0440848000,390,-0.2254290000,391,-0.3312340000,392,-0.1149010000,393,0.0898619000,394,-0.1434670000,395,0.6445160000,396,-1.1120300000,397,0.2407470000,398,0.8872340000,399,-0.0977583000,400,0.0632653000,401,-0.1133680000,402,0.0015369000,403,-0.0418923000,404,0.2446570000 +245,0,0.1638570000,450,-1.0000000000,355,-0.4059730000,356,0.5976370000,357,0.0581732000,358,-0.2801690000,359,0.4117090000,360,-0.0478926000,361,0.0730388000,362,-0.0687060000,363,0.3455570000,364,0.5213520000,365,-0.4048080000,366,0.7489660000,367,-0.2658550000,368,0.4124210000,369,0.1746240000,370,0.1324610000,371,0.3197140000,372,-0.6547440000,373,-0.3008440000,374,-0.0484099000,375,0.0534532000,376,-0.7093610000,377,-0.1574760000,378,0.0370811000,379,0.1146100000,380,-0.6125030000,381,0.3828580000,382,-0.4327090000,383,-0.3189990000,384,-0.0347350000,385,-0.1634070000,386,-0.3067130000,387,0.5601150000,388,-0.5132540000,389,0.0477594000,390,-1.1654900000,391,-0.2567450000,392,-0.5762860000,393,-0.5405610000,394,-0.4130720000,395,0.8298130000,396,-1.3734700000,397,-0.0367747000,398,0.7923290000,399,-0.1441820000,400,-0.6084940000,401,-0.6545570000,402,0.0365405000,403,0.3084390000,404,-0.5569670000 +246,0,2.1445000000,451,-1.0000000000,355,-0.4026520000,356,-0.2353550000,357,-0.3783050000,358,-0.5503330000,359,-0.5794240000,360,0.0785301000,361,0.0464621000,362,0.0266118000,363,-0.0828158000,364,-0.3950300000,365,0.1407400000,366,-0.2971060000,367,0.0217634000,368,1.0433800000,369,-0.5341190000,370,0.4806790000,371,-0.5465210000,372,-0.4831730000,373,0.0362457000,374,-0.0086439500,375,-0.0694421000,376,0.3033260000,377,-0.1619840000,378,-0.0197382000,379,-0.0385746000,380,0.1856810000,381,0.0205643000,382,-0.3723960000,383,-0.9092460000,384,0.0467201000,385,-0.2124640000,386,-0.1958700000,387,0.0052321500,388,0.5595300000,389,0.0174775000,390,-0.5820720000,391,-0.5789220000,392,-0.0158919000,393,-0.1573280000,394,-0.1222220000,395,-1.0308900000,396,0.0237879000,397,-0.2151960000,398,-0.0238084000,399,0.0979879000,400,0.2450740000,401,-1.0216100000,402,-0.0316064000,403,-0.0982245000,404,0.3368360000 +247,0,0.4599070000,452,-1.0000000000,355,-0.0872495000,356,0.2176320000,357,0.0679606000,358,-0.2834500000,359,-0.7888150000,360,0.3526470000,361,-0.0157498000,362,-0.0108573000,363,-0.3190650000,364,-0.0747498000,365,-0.8104840000,366,0.6711420000,367,0.1771480000,368,0.0020961400,369,1.1331200000,370,-0.2249720000,371,0.0584030000,372,0.0962211000,373,0.1251520000,374,0.0334122000,375,0.2762030000,376,0.0092165400,377,-0.4766630000,378,-0.0283786000,379,-0.0664494000,380,-0.5631680000,381,0.0346270000,382,0.0050508400,383,0.0375114000,384,-0.0159455000,385,0.7271760000,386,0.7212330000,387,0.6008930000,388,-0.3594770000,389,-0.0408295000,390,0.4748330000,391,-0.1351230000,392,0.0408034000,393,-0.1357580000,394,0.9434340000,395,0.4595860000,396,1.6102000000,397,0.2005970000,398,-0.7825330000,399,-0.1120420000,400,-0.0756627000,401,0.3987620000,402,0.0306558000,403,-0.9827380000,404,0.2284530000 +248,0,0.0957012000,453,-1.0000000000,355,-0.6227730000,356,-0.1745820000,357,0.0587423000,358,0.2803810000,359,0.0551776000,360,-0.0295380000,361,-0.8156020000,362,-0.1779580000,363,0.0345794000,364,0.1133930000,365,-0.0338753000,366,-0.1289510000,367,-0.0398014000,368,0.1927030000,369,-0.1167370000,370,-0.4684260000,371,0.3431370000,372,-0.4178760000,373,0.0048696000,374,-0.0514056000,375,-0.1962360000,376,-1.0382000000,377,0.1534260000,378,0.0069666400,379,0.0587793000,380,-0.2964950000,381,-0.6969870000,382,-0.7751760000,383,-0.6020950000,384,-0.0108400000,385,0.0696410000,386,-0.1282920000,387,-0.4517250000,388,-0.0951998000,389,-0.0211334000,390,-0.9933200000,391,-0.0065429100,392,0.0388621000,393,0.2945300000,394,-0.8601560000,395,-0.2451990000,396,0.0405506000,397,-0.0057899600,398,0.1722820000,399,-0.1066310000,400,-0.1357120000,401,-0.0878625000,402,0.0011815400,403,0.4422670000,404,-0.7382920000 +249,0,-0.1325890000,454,-1.0000000000,355,0.2016820000,356,1.0058000000,357,-0.2367940000,358,-0.4418540000,359,0.2934920000,360,-0.6294620000,361,-0.0793124000,362,-0.5885720000,363,-0.9194750000,364,0.4510750000,365,0.0607055000,366,-1.2610600000,367,0.1343270000,368,-0.2524810000,369,0.7758880000,370,0.2977030000,371,-0.0188455000,372,-0.2124660000,373,0.2363210000,374,0.0093137100,375,-0.0180789000,376,-0.1852640000,377,-0.2562280000,378,-0.0149686000,379,0.0012171100,380,0.3343520000,381,0.0507463000,382,0.1080490000,383,0.2301800000,384,-0.0151422000,385,0.4654490000,386,-0.3198490000,387,0.4760110000,388,-0.1454540000,389,0.0029634700,390,-0.2303280000,391,-0.3931640000,392,0.2052450000,393,0.4915690000,394,0.8597380000,395,-0.1892490000,396,1.6467200000,397,-0.3300700000,398,0.3729200000,399,0.8812570000,400,0.0197256000,401,0.4550040000,402,0.0127330000,403,0.2243180000,404,0.9906790000 +250,0,-0.0541178000,505,-1.0000000000,455,0.0577040000,456,-0.0073826500,457,-0.1343340000,458,-0.1038580000,459,-0.0432697000,460,-0.0459085000,461,-0.0370416000,462,0.0277299000,463,0.0128106000,464,-0.1526130000,465,-0.0781902000,466,-0.0590907000,467,-0.5700080000,468,0.0830571000,469,0.0325387000,470,-0.0144731000,471,-0.0797519000,472,0.0170731000,473,-0.0074965200,474,0.0160110000,475,0.0385378000,476,-0.1772020000,477,-0.0393454000,478,0.0329516000,479,0.0298125000,480,0.0540447000,481,-0.0365310000,482,-0.0155163000,483,-0.1162280000,484,-0.0258216000,485,0.0453148000,486,0.0556529000,487,-0.0486794000,488,-0.0579080000,489,-0.1567760000,490,0.0204766000,491,-0.0064210200,492,-0.0193800000,493,-0.0614138000,494,0.0497325000,495,0.0381852000,496,0.0356512000,497,-0.0555967000,498,0.0100725000,499,0.1165950000,500,-0.0555249000,501,-0.0836394000,502,0.0030545700,503,-0.0190369000,504,-0.1205920000 +251,0,0.0298637000,506,-1.0000000000,455,-0.0215492000,456,-0.0434190000,457,-0.0328821000,458,-0.0447627000,459,0.0150750000,460,-0.0340600000,461,-0.0385561000,462,0.0201959000,463,-0.0394183000,464,-0.0160566000,465,-0.0166179000,466,0.0365967000,467,0.0324909000,468,0.0047159700,469,-0.0073491600,470,-0.0007623520,471,0.0001602640,472,0.0077708300,473,0.0218236000,474,-0.0425232000,475,0.0357868000,476,-0.0153539000,477,-0.0393239000,478,-0.0336032000,479,-0.0026077500,480,-0.0075075500,481,-0.0155861000,482,-0.0391034000,483,-0.0229576000,484,0.0440619000,485,-0.0502013000,486,-0.0512596000,487,0.0371178000,488,-0.0518580000,489,-0.0000283971,490,0.0425400000,491,0.0186403000,492,0.0162873000,493,0.0258766000,494,0.0395296000,495,0.0245961000,496,-0.0350494000,497,-0.0471259000,498,-0.0406750000,499,0.0039239300,500,-0.0352558000,501,-0.0504560000,502,-0.0326145000,503,-0.0516823000,504,-0.0451643000 +252,0,0.3050450000,507,-1.0000000000,455,-0.6751300000,456,0.2180950000,457,-0.5358040000,458,0.0588775000,459,-0.0330385000,460,0.0894796000,461,-0.0396137000,462,0.6108990000,463,-0.2933280000,464,0.2919730000,465,0.1772820000,466,-0.3550920000,467,0.2484780000,468,-0.0022215800,469,-0.0461047000,470,0.8275180000,471,0.1799860000,472,-0.3633380000,473,-0.0235678000,474,-0.0632730000,475,0.8385240000,476,-0.2271870000,477,-0.0940113000,478,0.0225331000,479,-0.1427470000,480,0.2410760000,481,-0.9338120000,482,-0.1276590000,483,0.1197030000,484,-0.0305801000,485,-0.2498750000,486,0.6506290000,487,-0.3882400000,488,-0.0968402000,489,0.5609110000,490,0.3092880000,491,0.2567470000,492,-0.3990080000,493,0.4474270000,494,-0.1162440000,495,0.0420344000,496,-0.3505300000,497,0.3261170000,498,0.0263226000,499,-0.1355980000,500,-0.2147340000,501,0.0104887000,502,0.0400790000,503,-0.7549300000,504,0.1659480000 +253,0,0.0456323000,508,-1.0000000000,455,0.0158093000,456,-0.0504423000,457,0.0009971510,458,0.0068991900,459,-0.0188386000,460,0.0116822000,461,-0.0462983000,462,0.0379600000,463,-0.0531216000,464,-0.0342920000,465,-0.0280527000,466,-0.0318711000,467,0.0441009000,468,0.0250568000,469,-0.0516086000,470,0.0008000400,471,-0.0095128300,472,-0.0373143000,473,0.0462133000,474,-0.0126806000,475,-0.0050192700,476,0.0098914600,477,-0.0094610100,478,-0.0459333000,479,0.0041512600,480,0.0334176000,481,-0.0152521000,482,0.0155555000,483,0.0104837000,484,-0.0398539000,485,-0.0037913800,486,-0.0486685000,487,0.0335981000,488,-0.0401521000,489,0.0201816000,490,-0.0078758600,491,0.0261169000,492,-0.0018368300,493,-0.0449791000,494,0.0273995000,495,-0.0212983000,496,-0.0228279000,497,-0.0472404000,498,0.0056784400,499,0.0205665000,500,0.0230990000,501,-0.0068370800,502,0.0283385000,503,0.0450104000,504,-0.0021975200 +254,0,0.9121240000,509,-1.0000000000,455,0.0342949000,456,0.3434420000,457,0.8356750000,458,0.2025520000,459,-0.4449270000,460,-0.2350890000,461,0.0336746000,462,0.0295101000,463,-0.1661670000,464,0.4453970000,465,-0.2601720000,466,0.1454350000,467,1.5207700000,468,-0.4389820000,469,0.1285740000,470,-0.0297217000,471,0.8215730000,472,0.0898873000,473,-0.0463093000,474,0.1114570000,475,0.8979390000,476,-0.7781270000,477,-0.5720920000,478,0.1671750000,479,0.2742270000,480,0.2963320000,481,-0.0277124000,482,0.1247510000,483,0.7071150000,484,0.0035366600,485,0.2458970000,486,0.1688930000,487,-0.0976490000,488,-0.0160598000,489,-0.2302400000,490,0.1433720000,491,0.7542030000,492,0.0441639000,493,-0.1906590000,494,-0.0214446000,495,0.4472420000,496,0.1648090000,497,0.5273850000,498,-0.0392592000,499,0.0233504000,500,0.2332510000,501,-0.0057370900,502,0.2688090000,503,0.7825630000,504,0.2532720000 +255,0,0.3836030000,510,-1.0000000000,455,-0.0499038000,456,-0.1275180000,457,0.1835330000,458,0.1116160000,459,-0.1261550000,460,-0.0813031000,461,0.0396419000,462,0.0084957600,463,-0.0377499000,464,-0.0800296000,465,0.1925690000,466,0.1994490000,467,0.3445820000,468,-0.1675430000,469,0.1454670000,470,0.1981760000,471,0.0873307000,472,-0.1105910000,473,0.0184326000,474,0.0666761000,475,0.3023950000,476,-0.4013740000,477,-0.2869410000,478,-0.2263080000,479,0.0976706000,480,-0.1381270000,481,-0.0407761000,482,-0.0443311000,483,0.1901620000,484,0.0275261000,485,0.0389396000,486,-0.1329910000,487,0.0444065000,488,-0.0310783000,489,-0.0357617000,490,0.2671800000,491,0.1726060000,492,-0.1743820000,493,-0.0888596000,494,0.0199845000,495,0.1211990000,496,0.0335067000,497,0.2606720000,498,0.0218485000,499,-0.0765420000,500,-0.0383199000,501,0.0192945000,502,0.1019170000,503,-0.0444034000,504,0.2403480000 +256,0,1.2402600000,511,-1.0000000000,455,0.5362020000,456,0.5166510000,457,-0.2454130000,458,0.4752490000,459,-0.7452600000,460,-0.4233230000,461,-0.0440459000,462,0.7162860000,463,-0.0891640000,464,0.0659656000,465,-0.0345448000,466,0.1116970000,467,2.2122200000,468,0.0406903000,469,-0.0988658000,470,0.6764440000,471,0.9449710000,472,1.1448000000,473,-0.0095339400,474,0.4639780000,475,0.5315820000,476,-0.4385950000,477,0.0538484000,478,0.1684470000,479,0.0522012000,480,-0.9298360000,481,-0.8771390000,482,-0.1186150000,483,-0.1347240000,484,-0.0541523000,485,-0.1688400000,486,-0.8575050000,487,0.0106062000,488,-0.1164930000,489,-0.1718480000,490,0.3488800000,491,0.0889550000,492,-0.0668427000,493,0.0461445000,494,-0.0718594000,495,0.0711247000,496,0.9495660000,497,-0.5713030000,498,-0.0082878600,499,-0.0986880000,500,1.1966400000,501,-0.0301504000,502,1.1845300000,503,1.5356100000,504,0.6585130000 +257,0,-0.0382174000,512,-1.0000000000,455,-0.1232190000,456,0.0074442700,457,-0.0911562000,458,-0.9564070000,459,-0.0038163700,460,-0.0035147200,461,-0.0125591000,462,-0.1624000000,463,-0.0106729000,464,0.0162049000,465,-0.0219300000,466,-0.0183598000,467,0.7343620000,468,-0.0278433000,469,-0.0414357000,470,-0.1130240000,471,-1.0879600000,472,0.0709054000,473,0.0099409700,474,0.0122167000,475,-0.4382540000,476,-0.0022302700,477,0.0030864100,478,0.0124166000,479,-0.0067777300,480,-0.1232880000,481,-0.2011450000,482,-0.0310673000,483,-0.2525810000,484,0.0283426000,485,0.0408125000,486,0.0366140000,487,-0.1316530000,488,-0.0390508000,489,0.0141469000,490,0.0297554000,491,0.0348780000,492,-0.0696614000,493,0.1776620000,494,0.0133412000,495,-0.0484351000,496,0.0236350000,497,-0.0710634000,498,0.0514860000,499,0.0135478000,500,-0.1718470000,501,-0.0143929000,502,-0.1646210000,503,-0.1118110000,504,-0.0765225000 +258,0,0.0033715500,513,-1.0000000000,455,-0.1385290000,456,0.0205275000,457,-0.1219800000,458,-0.0096599000,459,-0.1026920000,460,-0.0254839000,461,0.0014387600,462,-0.2825950000,463,0.0240113000,464,-0.0435168000,465,0.0309210000,466,-0.0703970000,467,-0.7861500000,468,0.0645795000,469,-0.0010883900,470,-0.1140210000,471,0.0101450000,472,0.0513695000,473,0.0385039000,474,-0.0178778000,475,-0.8123680000,476,-0.1563540000,477,-0.5733630000,478,-0.0251776000,479,0.0366000000,480,0.4599250000,481,-0.6490680000,482,-0.1131860000,483,-0.2613250000,484,0.0139858000,485,-0.1755490000,486,-0.0982225000,487,-0.2410380000,488,0.0154777000,489,-0.2505180000,490,-0.0143417000,491,0.1198560000,492,-0.0390677000,493,0.0001882520,494,0.1471030000,495,-0.7524480000,496,-1.8616800000,497,-0.1430750000,498,-0.0117586000,499,-0.0653783000,500,-0.2600060000,501,-0.0545656000,502,-0.2274440000,503,-0.6727610000,504,-0.1275530000 +259,0,-0.7082970000,514,-1.0000000000,455,-0.7738170000,456,-3.4105900000,457,-2.6102900000,458,-1.2059000000,459,-0.3174090000,460,-1.3011400000,461,0.0342351000,462,-1.5270500000,463,0.0477174000,464,-0.8048300000,465,-0.4697860000,466,-0.5119210000,467,-0.1648890000,468,-0.3269330000,469,0.3631850000,470,0.8291900000,471,-0.2264230000,472,-1.6049600000,473,0.0233049000,474,0.1354310000,475,-2.4337400000,476,-0.9426870000,477,-0.5841070000,478,0.5287280000,479,-1.1595700000,480,-0.8940450000,481,-2.1781500000,482,-0.0250293000,483,-1.3497900000,484,-0.0083803200,485,-2.6036800000,486,1.1947000000,487,-0.4830050000,488,-1.7939900000,489,-1.9958400000,490,-3.0441700000,491,-0.5718120000,492,-0.7734880000,493,0.2345650000,494,-0.0771600000,495,-0.1435710000,496,-2.5582800000,497,-2.2503300000,498,0.0496247000,499,-1.0401700000,500,-0.5783370000,501,-0.0103560000,502,-0.1447310000,503,0.4841230000,504,-0.0039603200 +260,0,0.0424785000,515,-1.0000000000,455,-0.0395971000,456,-0.0411398000,457,-0.0370298000,458,-0.0362776000,459,-0.0068575900,460,0.0202650000,461,-0.0110091000,462,-0.0327868000,463,0.0146893000,464,-0.0268576000,465,0.0103281000,466,-0.0395705000,467,0.0090077300,468,0.0223223000,469,-0.0090886900,470,0.0071346700,471,0.0446219000,472,0.0011804500,473,0.0237508000,474,-0.0473060000,475,-0.0022099400,476,-0.0376958000,477,-0.0114536000,478,0.0302743000,479,-0.0084563400,480,-0.0265280000,481,0.0124248000,482,-0.0226687000,483,0.0011631600,484,0.0360352000,485,0.0343039000,486,0.0126165000,487,0.0410567000,488,-0.0285903000,489,0.0285594000,490,-0.0447593000,491,0.0124610000,492,0.0182099000,493,-0.0130769000,494,-0.0113656000,495,-0.0169945000,496,-0.0447975000,497,-0.0419649000,498,0.0119111000,499,-0.0342214000,500,-0.0352668000,501,-0.0455716000,502,0.0412009000,503,0.0306167000,504,-0.0077457800 +261,0,0.4639950000,516,-1.0000000000,455,0.3453820000,456,0.1549810000,457,-0.2470890000,458,0.0599567000,459,-0.1962700000,460,0.1331650000,461,0.0417153000,462,-0.2532260000,463,-0.1279630000,464,-0.0561478000,465,0.3080290000,466,-0.0797246000,467,0.4310320000,468,-0.3333760000,469,0.1270530000,470,0.3987410000,471,0.4748840000,472,0.0922377000,473,0.0213835000,474,-0.0201384000,475,0.2089900000,476,-0.2314690000,477,-0.5601650000,478,0.4436270000,479,0.2586660000,480,-0.2980170000,481,-0.0192448000,482,-0.2326190000,483,0.0736587000,484,0.0312017000,485,0.3666060000,486,-0.0168158000,487,-0.1026170000,488,0.0800761000,489,-0.2177550000,490,0.0035390100,491,0.1295220000,492,0.2347540000,493,0.4116620000,494,-0.3212780000,495,0.2829690000,496,0.1862750000,497,0.4049000000,498,-0.0092469400,499,0.0027899700,500,0.0724721000,501,0.0098814800,502,-0.1606810000,503,-0.1344690000,504,0.2197970000 +262,0,0.0483019000,517,-1.0000000000,455,0.0025658200,456,-0.0255078000,457,-0.0188949000,458,-0.0077688500,459,-0.0130308000,460,0.0208679000,461,0.0074316200,462,0.0192896000,463,0.0191146000,464,-0.0363350000,465,-0.0029809500,466,0.0325135000,467,0.0396749000,468,-0.0361056000,469,-0.0487983000,470,0.0014404500,471,0.0349846000,472,0.0368883000,473,0.0225398000,474,-0.0469804000,475,0.0276495000,476,-0.0021065000,477,-0.0249894000,478,-0.0449258000,479,-0.0476400000,480,0.0192374000,481,-0.0327944000,482,0.0155446000,483,-0.0423606000,484,-0.0243988000,485,-0.0189038000,486,-0.0331649000,487,-0.0421398000,488,-0.0392002000,489,-0.0006950190,490,-0.0378513000,491,0.0174035000,492,-0.0119456000,493,-0.0336818000,494,-0.0283671000,495,0.0233694000,496,-0.0000221493,497,-0.0194853000,498,-0.0377087000,499,0.0073956200,500,0.0125219000,501,0.0187896000,502,-0.0472477000,503,0.0292288000,504,0.0127243000 +263,0,0.4792160000,518,-1.0000000000,455,0.4999160000,456,0.1607340000,457,0.4280870000,458,0.4058790000,459,-0.9077370000,460,-1.1030600000,461,-0.0358093000,462,0.0807007000,463,-0.0256050000,464,0.3342920000,465,0.3118940000,466,-0.0444303000,467,0.7299320000,468,-0.5041500000,469,0.1105180000,470,0.6247270000,471,0.3240540000,472,-1.9494400000,473,0.0220236000,474,-0.4099660000,475,1.1429100000,476,-0.1189920000,477,-0.9581040000,478,0.6117160000,479,0.6145540000,480,0.5899130000,481,-0.6473670000,482,-0.4384530000,483,-0.0042221100,484,0.0017267100,485,-0.2885560000,486,0.2694090000,487,-0.1265200000,488,-0.0517679000,489,-1.2802600000,490,-0.7732470000,491,0.5555670000,492,-1.4199600000,493,-0.1270700000,494,-0.0082146500,495,-0.1938580000,496,1.1854000000,497,-1.0173800000,498,0.0273810000,499,-1.9433900000,500,-0.1476940000,501,-0.0117035000,502,-0.0847268000,503,-0.1474620000,504,0.1673020000 +264,0,-0.0751053000,519,-1.0000000000,455,-0.7846380000,456,-1.8784100000,457,-2.9630300000,458,-0.0497611000,459,-2.0503900000,460,-0.6744720000,461,-0.0438481000,462,-0.4500230000,463,0.0033034000,464,-0.0695502000,465,-1.9503100000,466,-1.1185700000,467,0.6799920000,468,-1.4103500000,469,-0.2957210000,470,-1.8265200000,471,0.7433970000,472,-0.4511590000,473,0.0484305000,474,-1.9848400000,475,0.6161910000,476,-0.1918840000,477,-0.5539690000,478,-0.5338560000,479,-0.2484470000,480,0.8375690000,481,0.2930280000,482,-0.9642070000,483,-0.6076960000,484,0.0002490690,485,-0.2283090000,486,0.6835760000,487,-0.6856720000,488,0.3590940000,489,-1.4244000000,490,0.3768080000,491,0.1150270000,492,-4.4538600000,493,0.1258350000,494,-0.0323629000,495,-0.6558340000,496,-0.6789720000,497,-2.4560000000,498,0.0107741000,499,-1.1866700000,500,0.9076310000,501,-0.0292209000,502,0.0476639000,503,-0.2925410000,504,-0.6881500000 +265,0,0.0531925000,520,-1.0000000000,455,-0.0497695000,456,-0.0166771000,457,0.0138294000,458,0.0425462000,459,-0.0118771000,460,-0.0054274500,461,-0.0221189000,462,-0.0382205000,463,0.0055635700,464,-0.0188027000,465,-0.0095692300,466,0.0106746000,467,0.0202484000,468,0.0155588000,469,0.0361142000,470,-0.0420337000,471,-0.0037852100,472,-0.0149980000,473,0.0427770000,474,-0.0310050000,475,0.0102004000,476,-0.0100191000,477,-0.0286963000,478,-0.0395773000,479,-0.0164481000,480,0.0248682000,481,0.0060336700,482,0.0203410000,483,0.0095670000,484,0.0338670000,485,0.0181431000,486,0.0056141300,487,-0.0033937700,488,-0.0206935000,489,0.0317489000,490,-0.0303186000,491,0.0038069200,492,-0.0474671000,493,-0.0098476400,494,0.0089498700,495,0.0234466000,496,-0.0364419000,497,-0.0015297800,498,0.0411309000,499,-0.0300479000,500,0.0089961800,501,0.0049913800,502,0.0200481000,503,0.0398135000,504,-0.0366983000 +266,0,-0.1580640000,521,-1.0000000000,455,0.1837710000,456,-1.0811700000,457,-4.8598500000,458,-0.5421640000,459,-0.1126980000,460,-1.8844700000,461,-0.0107272000,462,0.0313103000,463,-0.0098296900,464,-0.7370770000,465,-0.2474260000,466,-0.6194750000,467,0.1911190000,468,-2.1590200000,469,0.0130990000,470,-0.5948980000,471,-0.1385600000,472,-0.3818120000,473,-0.0106306000,474,-1.4275600000,475,-1.0087700000,476,-0.0640664000,477,-0.0938432000,478,-0.1822690000,479,-0.2358030000,480,0.0384997000,481,-0.4841180000,482,-0.0060509300,483,-0.8408560000,484,-0.0464401000,485,-0.4645360000,486,0.4040990000,487,-0.2624790000,488,-0.9603640000,489,-1.1288800000,490,0.1205810000,491,-0.6920940000,492,-0.7876210000,493,0.1941780000,494,0.0045897100,495,-1.3389500000,496,-0.1860520000,497,-1.7001000000,498,-0.0151619000,499,0.1424970000,500,0.3798110000,501,-0.0156151000,502,-1.3629000000,503,-0.3228180000,504,0.1751470000 +267,0,0.0637236000,522,-1.0000000000,455,-0.0249733000,456,-0.0288294000,457,-0.0209150000,458,-0.0358355000,459,-0.0012489000,460,0.0250816000,461,-0.0490935000,462,0.0462303000,463,-0.0003292090,464,0.0064581400,465,-0.0489423000,466,-0.0102217000,467,-0.0243625000,468,-0.0281872000,469,0.0106215000,470,-0.0126671000,471,0.0221657000,472,0.0090480300,473,-0.0398161000,474,-0.0477378000,475,0.0312956000,476,0.0114817000,477,-0.0035216900,478,-0.0213973000,479,-0.0444293000,480,-0.0401198000,481,0.0220759000,482,0.0172773000,483,-0.0517863000,484,0.0440777000,485,0.0164107000,486,0.0091727400,487,0.0225815000,488,-0.0229145000,489,-0.0178026000,490,-0.0055144300,491,-0.0266206000,492,-0.0510606000,493,0.0378272000,494,-0.0426683000,495,-0.0105731000,496,0.0190314000,497,0.0325959000,498,-0.0533584000,499,0.0142581000,500,0.0174491000,501,0.0013150500,502,0.0410742000,503,0.0046883700,504,0.0403554000 +268,0,-0.0074259700,523,-1.0000000000,455,0.1150970000,456,-0.0666945000,457,-0.1059550000,458,0.2437480000,459,-1.5507300000,460,-0.0880685000,461,-0.0430428000,462,-0.1760250000,463,-0.7394350000,464,-0.0217922000,465,-0.0289257000,466,-0.0846071000,467,1.5682700000,468,0.0268447000,469,-0.1781660000,470,0.0119150000,471,0.4201850000,472,0.0852535000,473,0.0078259200,474,0.0320835000,475,-0.2062740000,476,-0.3125700000,477,0.0393124000,478,0.0517698000,479,0.1804710000,480,0.1417890000,481,-0.1425290000,482,-0.2126370000,483,-0.1831800000,484,0.0505303000,485,0.0086353400,486,0.0528098000,487,-0.0473200000,488,0.1012260000,489,0.1018330000,490,0.0440882000,491,0.0391773000,492,-0.0416891000,493,0.0757191000,494,0.0727524000,495,0.0024785300,496,0.1319130000,497,-0.0258641000,498,-0.0090084200,499,-0.1419440000,500,0.3168050000,501,-0.3648800000,502,-0.0948861000,503,0.1724810000,504,-0.2842540000 +269,0,0.2370560000,524,-1.0000000000,455,0.4810710000,456,-0.4690720000,457,-0.0211083000,458,0.1004310000,459,-0.0705937000,460,-0.2912950000,461,-0.0053235600,462,0.7255620000,463,-0.1413330000,464,0.3358790000,465,0.0568255000,466,-0.0269906000,467,0.3798930000,468,-0.1600330000,469,0.2769270000,470,0.4672040000,471,-0.9480040000,472,0.1683420000,473,-0.0052582600,474,-0.1524410000,475,-0.0232953000,476,-0.0960236000,477,-0.0514204000,478,0.2999890000,479,0.0260169000,480,0.3887200000,481,-0.5434910000,482,-0.2099800000,483,0.1207340000,484,0.0482477000,485,0.4475780000,486,0.2648470000,487,-0.0322128000,488,-0.0172175000,489,0.0882974000,490,0.4608130000,491,0.0374416000,492,0.0471373000,493,-0.1651700000,494,-0.0847862000,495,-0.0541183000,496,0.2228400000,497,-0.0868301000,498,-0.0104910000,499,-0.1115240000,500,-0.2144520000,501,-0.0472552000,502,0.0988140000,503,0.0807744000,504,0.0093450300 +270,0,0.7746970000,525,-1.0000000000,455,-0.4669490000,456,0.8293300000,457,-0.9895520000,458,0.3652020000,459,-0.2499020000,460,0.5217870000,461,-0.0426950000,462,0.0240250000,463,-0.0440122000,464,-0.2027900000,465,0.1337790000,466,0.0800613000,467,-0.0081063400,468,-0.5851420000,469,-0.0722641000,470,0.4609410000,471,-0.1229410000,472,0.4702640000,473,-0.0280492000,474,-0.2931560000,475,0.0019018200,476,-0.3900560000,477,-0.5906440000,478,-0.7746520000,479,0.0234333000,480,-0.5256170000,481,0.6314670000,482,0.0178692000,483,0.2491350000,484,0.0136536000,485,-0.0099927000,486,0.6825180000,487,-0.1424430000,488,-0.0756731000,489,0.3475770000,490,-0.2686420000,491,0.7302600000,492,0.4324150000,493,0.2401050000,494,-0.1337820000,495,0.2555910000,496,0.8135930000,497,0.7370790000,498,0.0348765000,499,0.4590590000,500,-0.2508600000,501,-0.0666974000,502,-0.6774400000,503,-0.3345990000,504,-0.1968620000 +271,0,-0.0006590870,526,-1.0000000000,455,-0.0890955000,456,-0.0454507000,457,0.0352861000,458,-0.1748750000,459,-0.0459080000,460,0.0034395000,461,-0.0009002080,462,-0.0255045000,463,-0.0446544000,464,0.0383439000,465,-0.0087747200,466,0.0197913000,467,0.0241021000,468,-0.0961144000,469,-0.0102139000,470,0.0008817840,471,-0.1285160000,472,0.0483130000,473,-0.0169405000,474,-0.0090470800,475,0.1055470000,476,-0.0031078500,477,-0.0957252000,478,0.0238191000,479,-0.0121093000,480,-0.0244003000,481,-0.1296340000,482,0.0077944300,483,0.0728414000,484,0.0145734000,485,-0.0096470500,486,-0.0172108000,487,0.0257127000,488,-0.0288898000,489,-0.0229729000,490,-0.0489433000,491,-0.0613517000,492,-0.0005605320,493,0.0619550000,494,-0.1355210000,495,-0.0328659000,496,-0.2344330000,497,-0.0074982200,498,0.0119464000,499,0.0015697500,500,0.0568110000,501,-0.0239912000,502,0.0235385000,503,0.0378846000,504,0.0556153000 +272,0,0.3573320000,527,-1.0000000000,455,-0.5002180000,456,-0.1840960000,457,-1.6530800000,458,-0.0453976000,459,0.0113972000,460,-0.1269180000,461,-0.0225243000,462,0.2807020000,463,0.0544050000,464,0.2696770000,465,0.0567237000,466,0.1558700000,467,-0.3072910000,468,-0.1235450000,469,0.1744540000,470,0.4425110000,471,-0.0785241000,472,-0.9542970000,473,-0.0037398500,474,-0.1590690000,475,-0.0412793000,476,0.1061050000,477,-0.4477890000,478,0.4670180000,479,-0.1387480000,480,-0.0870236000,481,0.1821420000,482,-0.2720520000,483,0.4033550000,484,-0.0271932000,485,0.5563650000,486,-0.0482934000,487,-0.2901690000,488,0.1614170000,489,0.1071980000,490,0.3786970000,491,0.6042420000,492,-0.3939790000,493,0.0248705000,494,0.0211480000,495,0.1902290000,496,-0.3579330000,497,0.0644342000,498,0.0036770000,499,0.0655679000,500,-0.0980906000,501,-0.0008901830,502,-0.0294862000,503,0.2108490000,504,0.2039150000 +273,0,-0.0168765000,528,-1.0000000000,455,0.0460753000,456,0.0093213200,457,-0.0322434000,458,0.0776412000,459,-0.0796209000,460,-0.0057491700,461,0.0249052000,462,0.0829379000,463,-0.0438794000,464,-0.0253922000,465,0.0141843000,466,-0.0216822000,467,0.3686560000,468,-0.0299308000,469,-0.0083525200,470,0.0197801000,471,0.1697730000,472,-0.0060547800,473,0.0114010000,474,0.0093624500,475,-0.0034265000,476,-0.0222335000,477,-0.0150787000,478,0.0010118200,479,0.0611898000,480,0.1208260000,481,0.0769453000,482,-0.0330844000,483,-0.0837426000,484,0.0040054100,485,-0.0319260000,486,0.0722298000,487,-0.0102684000,488,0.0442429000,489,-0.1226990000,490,0.0855793000,491,0.0673942000,492,0.0037398100,493,-0.0785602000,494,-0.0349720000,495,-0.0043774300,496,-0.0849967000,497,0.0127563000,498,-0.0122219000,499,-0.0324939000,500,0.0139563000,501,0.0969720000,502,-0.0250881000,503,0.0398307000,504,-0.1233750000 +274,0,0.0990453000,529,-1.0000000000,455,0.0964084000,456,-0.0668215000,457,-0.0080692500,458,-0.0220197000,459,-0.0170021000,460,0.0049015800,461,0.0252718000,462,0.0836223000,463,-0.0466334000,464,0.0393397000,465,0.0404581000,466,-0.0259011000,467,0.2476030000,468,-0.0823407000,469,0.1580190000,470,-0.0348005000,471,-0.0317427000,472,-0.0378637000,473,-0.0269698000,474,0.0066416800,475,0.1428200000,476,-0.0176799000,477,0.0213323000,478,0.1959860000,479,0.0331511000,480,0.0692503000,481,0.0202883000,482,-0.0302499000,483,0.0324805000,484,-0.0365247000,485,0.1262540000,486,0.0585629000,487,0.0681474000,488,-0.0059715600,489,0.1277350000,490,0.0571562000,491,-0.0276927000,492,-0.0063865000,493,0.1903290000,494,0.0195734000,495,-0.0073318300,496,-0.0320530000,497,-0.0186152000,498,0.0304764000,499,-0.0276722000,500,0.0068515000,501,-0.1914920000,502,0.0195912000,503,0.0399625000,504,-0.0123982000 +275,0,-0.0966739000,530,-1.0000000000,455,0.0289253000,456,-0.0917940000,457,-0.2600300000,458,-0.0061283200,459,-0.5713230000,460,-0.1001080000,461,0.0434403000,462,-0.1533530000,463,-0.0275612000,464,-0.0038438300,465,-0.0542104000,466,-0.5188840000,467,0.0262914000,468,-0.0434439000,469,-0.1507620000,470,-0.0401899000,471,0.1883580000,472,-0.0237053000,473,0.0042297600,474,0.0270683000,475,0.1094290000,476,-0.6852700000,477,-0.2658280000,478,-0.0556364000,479,0.0546212000,480,-0.0833716000,481,0.0213857000,482,0.0041389200,483,-0.0406284000,484,0.0473371000,485,-0.0004469840,486,-0.0558360000,487,-0.1081250000,488,-0.0293062000,489,-0.8374790000,490,0.0025240200,491,0.0176453000,492,-0.0302139000,493,-0.0863336000,494,-0.5948950000,495,0.0534864000,496,-0.8540270000,497,-0.0664110000,498,0.0046496700,499,-0.0116034000,500,0.0959848000,501,-0.0652293000,502,-0.0496857000,503,-0.1922210000,504,-0.1155690000 +276,0,0.0457098000,531,-1.0000000000,455,0.0179952000,456,0.0031991600,457,-0.0725679000,458,0.0088977700,459,-0.0201286000,460,0.0197504000,461,-0.0246879000,462,-0.0025616400,463,0.0198636000,464,-0.0559573000,465,-0.0491752000,466,-0.0042651000,467,-0.0402152000,468,0.0120273000,469,-0.0176744000,470,-0.0549021000,471,0.0216886000,472,-0.0333278000,473,0.0044868500,474,-0.0180474000,475,0.0115667000,476,0.0039399800,477,-0.0156080000,478,0.0090058700,479,0.0079492500,480,0.0152076000,481,-0.0119711000,482,0.0102667000,483,-0.0309312000,484,-0.0205701000,485,0.0105264000,486,0.0065497400,487,0.0033508800,488,-0.0549033000,489,-0.0126936000,490,-0.0401420000,491,-0.0048187300,492,0.0238296000,493,-0.0004791180,494,0.0160283000,495,0.0117935000,496,-0.0225291000,497,-0.0441924000,498,0.0004100280,499,0.0050023000,500,0.0055154600,501,0.0341175000,502,-0.0284731000,503,-0.0097812700,504,0.0367019000 +277,0,-0.1134050000,532,-1.0000000000,455,0.6504900000,456,-0.1484060000,457,-1.7719500000,458,-1.5136500000,459,-0.6615540000,460,-1.8565200000,461,0.0101588000,462,0.8961180000,463,-0.0437933000,464,-0.8367800000,465,-0.4652210000,466,-0.2832550000,467,-0.2474950000,468,-0.3985220000,469,-0.2298780000,470,-0.3579230000,471,-0.9202490000,472,0.4584350000,473,0.0503911000,474,0.0573907000,475,0.4035850000,476,-2.3754300000,477,-0.1607400000,478,-1.3296800000,479,-0.8821140000,480,-0.1124730000,481,-0.1121230000,482,0.1903170000,483,-0.1211110000,484,-0.0218720000,485,0.0937157000,486,1.7692900000,487,-0.2733870000,488,-0.7952630000,489,-3.2188700000,490,-0.8329290000,491,-0.0831990000,492,-2.3330100000,493,0.5679880000,494,-0.1089580000,495,-0.7009360000,496,0.1638680000,497,-1.3500100000,498,0.0445263000,499,0.6573450000,500,0.9085660000,501,-0.2945030000,502,-0.8163350000,503,0.3784340000,504,0.3007190000 +278,0,-0.1596950000,533,-1.0000000000,455,-0.1007940000,456,-0.4644000000,457,-1.1418500000,458,-0.5079540000,459,-0.6563620000,460,-3.1917600000,461,-0.0007333600,462,-0.4946790000,463,-0.0184155000,464,-1.8051300000,465,-1.0055400000,466,-1.0479000000,467,0.5895850000,468,-0.0048086000,469,0.6329310000,470,-1.2039000000,471,-0.0009838710,472,-1.6098600000,473,-0.0296737000,474,-2.2784900000,475,-2.0561300000,476,-0.4756110000,477,-0.9082840000,478,-0.2922060000,479,-0.4723240000,480,0.2089060000,481,0.0685737000,482,-0.0478944000,483,-1.2400700000,484,-0.0022834100,485,-1.3152900000,486,0.5919070000,487,-0.1306930000,488,-1.3688200000,489,-1.4008900000,490,0.1923090000,491,-0.6667010000,492,-1.4143200000,493,0.4530810000,494,-0.0306243000,495,-0.6735720000,496,-0.0991321000,497,-2.6308500000,498,-0.0103070000,499,0.4903680000,500,0.4189430000,501,-0.0064659300,502,-1.7350300000,503,-0.5504040000,504,-0.4109110000 +279,0,0.1220290000,534,-1.0000000000,455,0.0418979000,456,-0.0355323000,457,-0.0897467000,458,0.0356616000,459,0.0169971000,460,-0.0083030300,461,-0.0134592000,462,0.0648232000,463,-0.0129855000,464,-0.0028982500,465,0.0127020000,466,-0.0103916000,467,0.1553370000,468,0.0540447000,469,0.0283304000,470,0.0923530000,471,0.0533085000,472,-0.0574354000,473,0.0271539000,474,0.0041248100,475,-0.0436464000,476,-0.0587894000,477,-0.0300580000,478,0.0446297000,479,0.0264851000,480,0.0130178000,481,0.0249190000,482,-0.0616482000,483,-0.0825817000,484,-0.0250723000,485,-0.0248133000,486,-0.0408926000,487,0.0554576000,488,-0.0147737000,489,-0.0459319000,490,-0.0085944500,491,0.1815390000,492,0.0430307000,493,-0.0813668000,494,-0.0427935000,495,0.0466885000,496,0.2206750000,497,-0.0304961000,498,-0.0177331000,499,0.0243391000,500,-0.0117745000,501,0.0421738000,502,-0.0130320000,503,0.0118540000,504,-0.0541730000 +280,0,0.2903740000,535,-1.0000000000,455,0.2506440000,456,0.3085990000,457,-0.5704940000,458,0.2916230000,459,0.0003230410,460,-0.2086820000,461,0.0286046000,462,0.4659640000,463,-0.0402260000,464,-0.1981980000,465,0.0250247000,466,-0.0517554000,467,-0.0933427000,468,0.0234879000,469,0.1801840000,470,0.3340430000,471,-0.0816985000,472,-0.3253230000,473,-0.0276881000,474,-0.1901490000,475,-0.5449830000,476,-0.0745880000,477,-0.0404494000,478,0.0465972000,479,-0.2218060000,480,0.2868950000,481,-0.0759712000,482,-0.3881700000,483,0.1021530000,484,0.0355206000,485,-0.0681565000,486,0.1067740000,487,-0.2231070000,488,0.0367469000,489,0.2471960000,490,-0.3396700000,491,-0.0163274000,492,0.0514366000,493,0.0085630400,494,-0.0581186000,495,0.0009037250,496,0.3732470000,497,0.2745440000,498,0.0176485000,499,-0.0711600000,500,0.1147130000,501,-0.0508655000,502,0.1700450000,503,-0.1092870000,504,-0.0748633000 +281,0,0.0639892000,536,-1.0000000000,455,-0.0154352000,456,-0.0050074800,457,0.0014987000,458,-0.0523753000,459,-0.0080986000,460,-0.0266280000,461,0.0419205000,462,0.0121287000,463,-0.0359021000,464,-0.0366883000,465,0.0041175300,466,-0.0256505000,467,-0.0167767000,468,-0.0067721000,469,-0.0428221000,470,-0.0278170000,471,0.0256515000,472,0.0029937700,473,-0.0414931000,474,-0.0598999000,475,-0.0497089000,476,0.0129640000,477,-0.0012720700,478,-0.0536983000,479,-0.0374570000,480,-0.0024789500,481,-0.0157728000,482,-0.0034761600,483,-0.0574509000,484,-0.0362124000,485,0.0273491000,486,-0.0361100000,487,0.0031566100,488,0.0343919000,489,-0.0079606000,490,0.0042556000,491,-0.0501648000,492,-0.0155754000,493,0.0215656000,494,-0.0195473000,495,0.0100482000,496,0.0039751700,497,-0.0464251000,498,0.0089200000,499,0.0294268000,500,0.0344201000,501,0.0055136700,502,0.0157883000,503,-0.0458759000,504,-0.0028583300 +282,0,0.0760120000,537,-1.0000000000,455,0.1071650000,456,-0.0808617000,457,0.0841635000,458,-0.3249130000,459,-0.0631624000,460,-0.0023761000,461,-0.0345480000,462,0.3716290000,463,-0.1725820000,464,-0.2653880000,465,-0.1425140000,466,-0.2559880000,467,0.8998610000,468,-0.0008667820,469,0.1605670000,470,0.0902121000,471,-0.8490500000,472,0.1551640000,473,0.0330201000,474,0.0190847000,475,0.3915950000,476,-0.5197400000,477,-0.2364450000,478,0.0680616000,479,0.1274650000,480,0.0921770000,481,0.1271860000,482,-0.0689797000,483,-0.0340021000,484,0.0285824000,485,0.1227430000,486,0.1150720000,487,-0.2382290000,488,-0.0128203000,489,-0.2169380000,490,0.1957790000,491,0.0737262000,492,-0.0410208000,493,-0.0846532000,494,-0.3717900000,495,0.0405050000,496,-0.0893959000,497,0.0477430000,498,-0.0484701000,499,0.1146330000,500,-0.1830490000,501,0.8699770000,502,0.0160554000,503,-0.0293513000,504,-0.1868360000 +283,0,0.0789670000,538,-1.0000000000,455,0.0439422000,456,-0.0415518000,457,-0.0720617000,458,-0.0562811000,459,-0.0388366000,460,-0.0385276000,461,0.0446515000,462,-0.0020826800,463,0.0267038000,464,-0.0174525000,465,0.0232103000,466,-0.0386075000,467,0.1954820000,468,-0.0507402000,469,-0.0132943000,470,0.0110299000,471,0.2722870000,472,0.0052642000,473,-0.0037997300,474,-0.0861349000,475,-0.0248374000,476,-0.0651798000,477,-0.0164441000,478,-0.0522241000,479,0.0444876000,480,0.0469998000,481,-0.0353002000,482,-0.0403398000,483,0.0649313000,484,0.0009316340,485,0.0430735000,486,-0.0532844000,487,-0.0392579000,488,-0.0749010000,489,0.0343994000,490,0.0372086000,491,-0.0818835000,492,-0.0429565000,493,-0.1219640000,494,-0.0388702000,495,-0.0275668000,496,-0.0010033200,497,-0.1079720000,498,-0.0143385000,499,-0.0746500000,500,-0.0032021200,501,-0.0157707000,502,-0.0306006000,503,-0.0209018000,504,-0.0178423000 +284,0,0.3772700000,539,-1.0000000000,455,0.2933370000,456,-0.0247652000,457,0.3440810000,458,-0.1777910000,459,-0.1083120000,460,-0.1233200000,461,0.0444546000,462,0.2253320000,463,-0.3921450000,464,-0.1992060000,465,-0.3800750000,466,-0.2469080000,467,-0.0193351000,468,0.7699890000,469,-0.0007766170,470,-0.7144820000,471,-0.1651320000,472,0.1302300000,473,0.0424993000,474,0.0541992000,475,1.3973200000,476,-0.6413620000,477,-0.3171300000,478,0.6247180000,479,-0.5083900000,480,-0.9775520000,481,0.6201170000,482,-0.1876260000,483,0.0558657000,484,-0.0377753000,485,-0.0516386000,486,0.7898620000,487,-0.4991140000,488,-0.6371900000,489,-0.4899090000,490,0.3780950000,491,-0.5303080000,492,0.0807186000,493,-0.3314010000,494,-0.0909039000,495,0.4020800000,496,0.9010140000,497,0.4606590000,498,-0.0213694000,499,0.4478280000,500,0.7577440000,501,-0.0036782100,502,0.4489240000,503,1.0551900000,504,-0.1164220000 +285,0,0.0411410000,540,-1.0000000000,455,0.0421493000,456,-0.0013249500,457,-0.0109709000,458,0.0081407500,459,-0.0212576000,460,0.0086619800,461,0.0482235000,462,-0.0399671000,463,0.0032727500,464,-0.0162639000,465,-0.0193345000,466,-0.0064940800,467,-0.0424431000,468,-0.0372719000,469,-0.0441008000,470,0.0432631000,471,-0.0267090000,472,-0.0326785000,473,-0.0141915000,474,-0.0266235000,475,-0.0473062000,476,0.0198871000,477,-0.0380099000,478,0.0223863000,479,-0.0411349000,480,0.0193006000,481,-0.0097801600,482,-0.0432709000,483,0.0148288000,484,-0.0006533440,485,-0.0030172300,486,-0.0307018000,487,-0.0490232000,488,-0.0244414000,489,-0.0194843000,490,0.0311609000,491,-0.0171349000,492,-0.0355644000,493,0.0312239000,494,0.0443300000,495,-0.0273106000,496,-0.0422705000,497,-0.0223754000,498,-0.0125544000,499,-0.0315480000,500,0.0439935000,501,-0.0257749000,502,-0.0055111200,503,-0.0176906000,504,0.0151166000 +286,0,-0.0158232000,541,-1.0000000000,455,0.0655998000,456,-0.0764518000,457,-0.1044790000,458,-0.1080750000,459,-0.0567198000,460,-0.0290544000,461,0.0381746000,462,-0.0526070000,463,-0.0034852800,464,-0.0548997000,465,-0.0573096000,466,-0.1352140000,467,0.1232930000,468,0.0382742000,469,-0.0079280600,470,0.0191029000,471,-0.4392180000,472,0.1084680000,473,0.0154182000,474,0.0307025000,475,0.3953290000,476,-0.1112710000,477,0.0546013000,478,0.0943896000,479,-0.0643284000,480,-0.0913687000,481,0.1923250000,482,-0.3551630000,483,-0.1257170000,484,-0.0369628000,485,-0.0287313000,486,0.3320350000,487,-0.0469716000,488,-0.0991514000,489,-0.0544438000,490,0.0531137000,491,0.0395300000,492,-0.0396448000,493,0.1542990000,494,0.0017794400,495,0.0783404000,496,0.6178990000,497,-0.0624501000,498,-0.0024026000,499,0.0413461000,500,0.0232133000,501,-0.2274890000,502,-0.0159285000,503,0.0664076000,504,0.1195800000 +287,0,0.7603170000,542,-1.0000000000,455,-0.1049500000,456,-0.0902460000,457,-0.5692720000,458,0.0160370000,459,-0.0588113000,460,-0.2269410000,461,0.0181388000,462,0.4315860000,463,-0.1157410000,464,-0.7969950000,465,-0.5700000000,466,0.2904090000,467,-0.3346480000,468,-0.5236450000,469,0.7150910000,470,-0.1728330000,471,-1.6745600000,472,0.5945200000,473,-0.0121518000,474,0.0597256000,475,1.3609600000,476,-0.1720230000,477,0.3552080000,478,0.6727420000,479,-0.0116731000,480,-0.9469410000,481,0.4538830000,482,-0.5548070000,483,0.6750670000,484,0.0456625000,485,1.0302300000,486,0.3585230000,487,-0.4518380000,488,-0.2616020000,489,0.3171220000,490,0.4433810000,491,-0.2175420000,492,0.0461787000,493,0.0948031000,494,-0.0268505000,495,0.0601038000,496,0.7113250000,497,-0.4718030000,498,0.0200231000,499,0.5010090000,500,-0.1461760000,501,-0.0225947000,502,0.0642524000,503,0.4522870000,504,-0.2031990000 +288,0,0.2510150000,543,-1.0000000000,455,0.1670990000,456,-0.0055601300,457,-0.1466840000,458,0.0554427000,459,0.0443881000,460,0.0158187000,461,0.0425522000,462,0.1226120000,463,-0.1990070000,464,0.1594330000,465,-0.0155170000,466,0.0527065000,467,0.0305776000,468,-0.2186760000,469,0.1443290000,470,-0.2556960000,471,0.1224850000,472,-0.0510862000,473,0.0484493000,474,-0.0074578300,475,-0.0035592100,476,-0.0817727000,477,-0.0154862000,478,0.3991120000,479,0.2030750000,480,0.0291412000,481,-0.2601930000,482,0.1117850000,483,0.1064030000,484,0.0188064000,485,0.3699990000,486,0.0387554000,487,-0.0799546000,488,0.1042270000,489,0.0927823000,490,0.1776270000,491,0.1047750000,492,-0.0336509000,493,0.2226440000,494,0.0419823000,495,-0.0593560000,496,0.0031357000,497,0.0935168000,498,-0.0374434000,499,-0.0521358000,500,-0.1048480000,501,-0.0592751000,502,-0.1171590000,503,0.1001640000,504,-0.1538150000 +289,0,-0.0304803000,544,-1.0000000000,455,0.0103763000,456,-0.0027446100,457,-0.0688473000,458,0.0030374100,459,0.0001687190,460,-0.0007316900,461,-0.0111930000,462,0.0648330000,463,-0.0037977900,464,0.0146032000,465,-0.0075617000,466,-0.0096218800,467,-0.1228790000,468,-0.0265014000,469,0.1716920000,470,0.0846450000,471,-0.0610857000,472,0.0828555000,473,0.0457059000,474,0.0019447300,475,-0.0750518000,476,0.0001363920,477,0.0082475400,478,-0.0029657800,479,0.0053391600,480,-0.0196620000,481,-0.0945979000,482,-0.0092572500,483,-0.0347094000,484,-0.0221808000,485,0.0437658000,486,0.0627142000,487,-0.0117386000,488,0.0011242100,489,0.0091348300,490,0.0043390600,491,0.0200372000,492,0.0007863530,493,0.2283310000,494,0.0110688000,495,0.0017848700,496,0.1109510000,497,-0.0094293100,498,-0.0059833500,499,-0.0045764000,500,-0.1857570000,501,-0.0369834000,502,-0.0069503600,503,-0.0987809000,504,-0.0029349400 +290,0,0.0974038000,545,-1.0000000000,455,-0.0361146000,456,-0.1013090000,457,-0.0969389000,458,0.0090420400,459,-0.0400130000,460,-0.0434935000,461,-0.0462394000,462,-0.0074817000,463,-0.0360530000,464,0.0299476000,465,0.0847582000,466,-0.0713831000,467,0.0838504000,468,0.0500593000,469,0.0218830000,470,0.0161302000,471,0.0398927000,472,-0.0101414000,473,0.0136320000,474,0.0239190000,475,0.0311555000,476,-0.0484083000,477,0.0115057000,478,-0.0932818000,479,0.0762313000,480,-0.0249736000,481,-0.0884290000,482,0.0191675000,483,0.0687985000,484,-0.0447193000,485,0.0630844000,486,-0.0599188000,487,-0.1070020000,488,-0.0440448000,489,0.0002890340,490,0.1511180000,491,0.1353210000,492,0.0136801000,493,-0.0411173000,494,-0.0130670000,495,-0.0919827000,496,0.2309110000,497,0.0437670000,498,0.0426247000,499,0.0635911000,500,-0.1068450000,501,-0.0507241000,502,0.0156091000,503,-0.0325254000,504,-0.0753720000 +291,0,0.0386015000,546,-1.0000000000,455,0.0272698000,456,-0.0457742000,457,-0.0125086000,458,0.0296111000,459,0.0122359000,460,0.0151966000,461,-0.0004499190,462,0.0199563000,463,-0.0070858100,464,-0.0009192590,465,-0.0095546000,466,-0.0528868000,467,-0.0455358000,468,0.0018772200,469,-0.0008432120,470,-0.0013028500,471,-0.0153426000,472,-0.0445338000,473,-0.0212284000,474,-0.0117554000,475,0.0488241000,476,-0.0440613000,477,-0.0135952000,478,-0.0116872000,479,0.0000811360,480,0.0048681700,481,-0.0460284000,482,0.0034211800,483,0.0443359000,484,0.0220547000,485,-0.0361627000,486,-0.0190923000,487,-0.0239868000,488,0.0003738220,489,-0.0129825000,490,0.0140720000,491,-0.0112911000,492,0.0084552300,493,-0.0317872000,494,-0.0267560000,495,-0.0056377200,496,-0.0338319000,497,-0.0344150000,498,0.0255941000,499,-0.0316341000,500,-0.0318330000,501,-0.0232074000,502,0.0314964000,503,0.0355296000,504,-0.0498726000 +292,0,-0.0503860000,547,-1.0000000000,455,0.0263797000,456,-0.1614780000,457,0.0000503043,458,-0.0465607000,459,-0.0080403100,460,-0.0062374800,461,0.0498428000,462,-0.0611311000,463,-0.1834620000,464,0.0102979000,465,-0.0229994000,466,-0.0202960000,467,-0.4386970000,468,-0.0709986000,469,-0.0807950000,470,-0.0692864000,471,-0.0203532000,472,-0.6467840000,473,-0.0035265500,474,0.0054453800,475,0.2007050000,476,0.0167685000,477,-0.1810420000,478,-0.0663633000,479,-0.0154775000,480,-0.1345280000,481,-0.0343727000,482,0.0017490300,483,0.0817375000,484,0.0071470400,485,-0.0177731000,486,-0.1637900000,487,-0.0145082000,488,-0.0149666000,489,-0.0220280000,490,-0.0524083000,491,-0.0332372000,492,0.0047082000,493,0.1303780000,494,-0.3289430000,495,0.0195698000,496,-0.2062190000,497,-0.0080240800,498,-0.0333354000,499,-0.0892172000,500,0.1304530000,501,0.7066140000,502,0.0095967600,503,-0.1756020000,504,0.0607814000 +293,0,-0.0541021000,548,-1.0000000000,455,0.0588762000,456,0.0755575000,457,-0.1981270000,458,0.1146320000,459,-0.0058642900,460,0.0200180000,461,-0.0481042000,462,0.0305843000,463,0.0027670500,464,0.1339360000,465,0.0007712870,466,-0.0174185000,467,-0.5037000000,468,-0.0143393000,469,-0.2936350000,470,-0.1203840000,471,0.1531040000,472,-0.0461015000,473,-0.0368018000,474,0.0059792100,475,-0.1224310000,476,-0.0066091300,477,-0.0027779000,478,0.0808596000,479,-0.0589050000,480,0.0474645000,481,0.2339470000,482,0.0013285500,483,0.0602501000,484,-0.0034490800,485,0.2437480000,486,-0.2818070000,487,-0.0720970000,488,0.0094364300,489,-0.0064169600,490,-0.1709950000,491,-0.0719360000,492,-0.0002092870,493,-0.2378960000,494,0.0322228000,495,0.0304711000,496,0.0236334000,497,-0.0268217000,498,-0.0319945000,499,-0.0176553000,500,0.0988920000,501,-0.1516160000,502,0.0269286000,503,0.2393310000,504,-0.0148634000 +294,0,0.0353529000,549,-1.0000000000,455,-0.0493639000,456,-0.0029650100,457,0.0091246200,458,0.0436321000,459,-0.0514624000,460,-0.0231478000,461,0.0448542000,462,0.0370497000,463,-0.0243765000,464,-0.0484305000,465,-0.0072389100,466,-0.0133417000,467,0.0184084000,468,-0.0711460000,469,0.0348236000,470,0.0050817700,471,-0.0108833000,472,-0.0087439100,473,-0.0479121000,474,-0.0244089000,475,0.0433550000,476,0.0062554100,477,-0.0266917000,478,-0.0382884000,479,0.0198381000,480,-0.0165155000,481,0.0047908900,482,-0.0005375320,483,0.0366563000,484,-0.0173193000,485,-0.0160638000,486,0.0149107000,487,0.0068622600,488,-0.0449970000,489,-0.0349824000,490,-0.0446397000,491,-0.0380766000,492,0.0132565000,493,-0.0240288000,494,0.0094709600,495,-0.0438448000,496,0.0370008000,497,-0.0282111000,498,-0.0428258000,499,-0.0202906000,500,0.0198027000,501,-0.0332871000,502,0.0287617000,503,-0.0049848700,504,0.0219216000 +295,0,0.2688390000,550,-1.0000000000,455,-0.1590530000,456,-0.1330740000,457,-0.1995550000,458,0.0769106000,459,-0.2432450000,460,-0.0397945000,461,-0.0490970000,462,-0.2709240000,463,-0.1492020000,464,0.1597880000,465,-0.3946430000,466,-0.2801910000,467,0.9288950000,468,-0.2660400000,469,0.1681910000,470,0.1210320000,471,0.5318210000,472,0.1270420000,473,-0.0372580000,474,0.1147780000,475,-0.4657970000,476,0.0763387000,477,0.0837150000,478,0.4708590000,479,0.0514763000,480,-0.0239218000,481,-0.0910602000,482,-0.4976070000,483,-0.1704650000,484,0.0243618000,485,0.4965240000,486,-0.2298760000,487,-0.2172990000,488,-0.1245200000,489,-0.2333040000,490,0.7317350000,491,0.1669240000,492,0.1875500000,493,0.2918710000,494,-0.1226040000,495,-0.1289470000,496,-0.7311590000,497,-0.3937860000,498,0.0278948000,499,0.3475430000,500,-0.7881840000,501,-0.0517554000,502,0.1557830000,503,-0.1368070000,504,-0.8280820000 +296,0,0.0433390000,551,-1.0000000000,455,0.0009046210,456,-0.0598842000,457,-0.0113448000,458,0.0307608000,459,-0.0181298000,460,-0.0035359200,461,0.0071856400,462,-0.0041868600,463,0.0204565000,464,0.0189083000,465,-0.0520218000,466,-0.0462253000,467,0.0011762300,468,-0.0074807400,469,-0.0243100000,470,-0.0530463000,471,0.0233332000,472,-0.0332102000,473,-0.0170426000,474,-0.0091044600,475,-0.0402972000,476,0.0128398000,477,-0.0126299000,478,-0.0211993000,479,-0.0040225900,480,-0.0498629000,481,0.0447528000,482,-0.0316952000,483,-0.0036217100,484,-0.0402138000,485,0.0190479000,486,0.0089861200,487,0.0122611000,488,-0.0127038000,489,0.0004843630,490,0.0162858000,491,-0.0057154300,492,-0.0058038100,493,0.0251498000,494,-0.0187679000,495,0.0114016000,496,0.0215027000,497,-0.0431049000,498,0.0158349000,499,-0.0402533000,500,0.0272879000,501,0.0236742000,502,-0.0097360600,503,-0.0516880000,504,0.0327355000 +297,0,0.0260294000,552,-1.0000000000,455,0.0036614400,456,-0.0313567000,457,-0.0489858000,458,-0.0299499000,459,-0.0224419000,460,0.0000809445,461,-0.0201522000,462,0.0035631200,463,0.0043165300,464,-0.0395500000,465,0.0290135000,466,0.0230955000,467,-0.0438240000,468,-0.0110415000,469,0.0264479000,470,0.0143308000,471,0.0274428000,472,-0.0196903000,473,0.0031863600,474,-0.0287951000,475,0.0489708000,476,-0.0354544000,477,-0.0025936300,478,-0.0317157000,479,0.0109088000,480,0.0439663000,481,-0.0223937000,482,-0.0006972430,483,-0.0394665000,484,0.0160361000,485,0.0473965000,486,-0.0280169000,487,-0.0304084000,488,-0.0489907000,489,0.0419828000,490,0.0266016000,491,0.0029672600,492,0.0163763000,493,-0.0204141000,494,-0.0307020000,495,0.0113580000,496,-0.0074577600,497,-0.0093458300,498,0.0112747000,499,-0.0464265000,500,0.0071485100,501,0.0331494000,502,0.0070298900,503,0.0238090000,504,-0.0193720000 +298,0,0.1915530000,553,-1.0000000000,455,0.5445570000,456,-0.1786730000,457,-0.3363930000,458,0.1552950000,459,-0.1015550000,460,-1.1486600000,461,-0.0135930000,462,-0.0055937400,463,-0.1152520000,464,0.6744890000,465,-0.2365580000,466,-1.1510100000,467,-1.3642300000,468,-0.3359430000,469,-0.0607958000,470,-0.1762690000,471,-0.1565730000,472,0.4222540000,473,-0.0301336000,474,0.0595606000,475,0.5110840000,476,-1.2879000000,477,-1.3545600000,478,-0.2445180000,479,0.0050178900,480,0.3896880000,481,-0.0065598500,482,-0.3574830000,483,-0.1581200000,484,0.0438169000,485,-0.1603260000,486,0.4781940000,487,-0.0291533000,488,0.2818770000,489,0.4429480000,490,0.3251470000,491,0.7456310000,492,-0.5219390000,493,0.0634631000,494,-0.0034685500,495,-1.3036200000,496,-0.5580470000,497,-0.1232260000,498,0.0171009000,499,-0.6234700000,500,-0.2588160000,501,-0.0944496000,502,-0.3802440000,503,-0.4585700000,504,0.2155160000 +299,0,-0.0419695000,554,-1.0000000000,455,0.0048757800,456,-0.0115735000,457,-0.0905316000,458,-0.0084562800,459,0.0037519800,460,0.0010116200,461,-0.0186502000,462,0.0987216000,463,-0.0044435300,464,-0.0122640000,465,-0.0228070000,466,-0.0126238000,467,0.0314470000,468,-0.0150962000,469,-0.0298055000,470,0.1302330000,471,-0.0296413000,472,-0.0557469000,473,-0.0096859600,474,-0.0016625700,475,0.1112960000,476,-0.0041385900,477,0.0179889000,478,0.0109550000,479,-0.0089170900,480,-0.0466842000,481,-0.1106790000,482,-0.0049683800,483,-0.0578992000,484,-0.0198711000,485,-0.0760731000,486,0.1158850000,487,-0.0122586000,488,0.0002095250,489,0.0114786000,490,0.0220855000,491,0.0337778000,492,0.0033563200,493,-0.0753517000,494,0.0001102700,495,0.0141741000,496,0.2076810000,497,-0.0080266200,498,0.0281626000,499,0.0018264100,500,-0.1239290000,501,-0.0521794000,502,-0.0109807000,503,-0.1411370000,504,-0.0019601100 +300,0,0.0201197000,605,-1.0000000000,555,0.0013947100,556,0.0300955000,557,-0.0042740700,558,0.0151367000,559,0.0000533851,560,-0.0024681500,561,-0.0167444000,562,0.0015928600,563,-0.0024798600,564,-0.0007114690,565,0.0033479900,566,-0.0043528400,567,0.0150695000,568,-0.0015367800,569,0.0001356250,570,-0.0057972300,571,0.0089094400,572,0.0024831600,573,-0.0007480090,574,-0.0005380910,575,0.0039702100,576,-0.0009217460,577,0.0010401800,578,-0.0010373000,579,0.0280712000,580,-0.0000483060,581,0.0296373000,582,-0.0008415190,583,-0.0009186320,584,0.0698244000,585,0.0233357000,586,0.0094540600,587,-0.0018534600,588,-0.0234098000,589,-0.0000834035,590,0.0231631000,591,-0.0045546400,592,-0.0053346000,593,0.0012782600,594,0.0232647000,595,0.0563603000,596,0.0080926800,597,-0.0006764670,598,0.0018197500,599,-0.0408707000,600,0.0001962510,601,0.0080336900,602,0.0083258700,603,-0.0008125070,604,-0.0135562000 +301,0,0.0194494000,606,-1.0000000000,555,0.0111977000,556,-0.0185952000,557,0.0113018000,558,0.0389504000,559,0.0040156500,560,0.0248977000,561,0.0247256000,562,0.0049847000,563,-0.0041824500,564,0.0035930100,565,0.0335860000,566,-0.0017938100,567,0.0021065700,568,-0.0034667600,569,0.0006447880,570,0.0259948000,571,-0.1279580000,572,0.0015803800,573,-0.0009055930,574,-0.0105646000,575,-0.0131270000,576,-0.0071690100,577,0.0148475000,578,0.0009348840,579,-0.0073322600,580,0.0206870000,581,-0.0244011000,582,0.0155194000,583,-0.0326585000,584,-0.0943834000,585,-0.0007133300,586,-0.0443216000,587,-0.0039015400,588,-0.0347612000,589,-0.0046926200,590,0.0127309000,591,0.0337932000,592,-0.0075628500,593,-0.0139655000,594,0.0321259000,595,-0.0045500000,596,-0.0210954000,597,0.0069119100,598,0.0073953900,599,0.0069171500,600,-0.0006196370,601,-0.0070027700,602,0.0186358000,603,-0.0019090400,604,0.0150053000 +302,0,0.0194817000,607,-1.0000000000,555,-0.0042184400,556,-0.0175526000,557,0.0094392100,558,0.0205571000,559,-0.0177505000,560,0.0099796800,561,-0.0115782000,562,-0.0051520400,563,0.0007360240,564,0.0013181200,565,0.0162891000,566,-0.0045336200,567,0.0384894000,568,-0.0497211000,569,0.0083194300,570,-0.0036183100,571,-0.0300271000,572,0.0271548000,573,0.0229348000,574,0.0145529000,575,0.0001232410,576,-0.0067025500,577,-0.0014301100,578,0.0119439000,579,-0.0124835000,580,0.0052709200,581,0.0466256000,582,0.0004074670,583,0.0020736200,584,-0.0809296000,585,0.0158282000,586,-0.0073758800,587,-0.0066650700,588,0.0734407000,589,0.0038980900,590,0.0448636000,591,-0.0125069000,592,0.0030197500,593,0.0142323000,594,0.0341608000,595,-0.0531858000,596,0.0163149000,597,0.0049126500,598,0.0075392500,599,0.0292409000,600,-0.0081936700,601,0.0415292000,602,0.0377604000,603,0.0120654000,604,0.0064905900 +303,0,0.0195345000,608,-1.0000000000,555,0.0288729000,556,-0.0120817000,557,-0.0002100100,558,-0.0396329000,559,-0.0024565400,560,-0.0029609400,561,-0.0050959400,562,0.0082864700,563,-0.0142504000,564,0.0046439200,565,0.0406651000,566,-0.0083798900,567,0.0146242000,568,-0.0061614100,569,-0.0000276876,570,0.0434991000,571,-0.0948090000,572,0.0208011000,573,0.0001458090,574,-0.0116244000,575,-0.0098409000,576,0.0017105800,577,0.0141238000,578,0.0090863800,579,0.0128428000,580,0.0106542000,581,0.0043119600,582,0.0140226000,583,0.0060291900,584,-0.0765384000,585,-0.0031408700,586,0.0371740000,587,-0.0174446000,588,-0.0432378000,589,-0.0027393400,590,0.0205917000,591,0.0271831000,592,-0.0072093400,593,-0.0097197600,594,0.0326659000,595,-0.0568959000,596,-0.0315050000,597,0.0241177000,598,0.0054241000,599,-0.0244067000,600,-0.0054592200,601,-0.0032195600,602,-0.0215232000,603,-0.0018021500,604,0.0215776000 +304,0,0.0195250000,609,-1.0000000000,555,-0.0034032200,556,0.0129873000,557,0.0013501900,558,0.0179718000,559,-0.0174161000,560,-0.0179142000,561,-0.0131011000,562,-0.0100293000,563,0.0076352900,564,0.0004729490,565,0.0296746000,566,-0.0115407000,567,-0.0295349000,568,-0.0070607400,569,0.0082587600,570,0.0360757000,571,-0.0227142000,572,-0.0027714700,573,0.0178404000,574,0.0044674100,575,0.0028466200,576,0.0117424000,577,0.0062266100,578,0.0330038000,579,0.0074415000,580,0.0038763200,581,-0.0452899000,582,0.0002666800,583,0.0003197670,584,-0.0525480000,585,0.0082175500,586,0.0433132000,587,-0.0114873000,588,0.0390642000,589,0.0036103900,590,-0.0362138000,591,-0.0102885000,592,-0.0032163000,593,-0.0000994982,594,0.0361608000,595,-0.1093660000,596,-0.0028408900,597,0.0153763000,598,0.0090300600,599,-0.0276101000,600,-0.0091653300,601,-0.0192481000,602,-0.0309568000,603,0.0114122000,604,0.0044016400 +305,0,0.0000000000,610,1.0000000000,605,-1.0000000000,606,-1.0000000000 +0,relu,55,5 +1,relu,56,6 +2,relu,57,7 +3,relu,58,8 +4,relu,59,9 +5,relu,60,10 +6,relu,61,11 +7,relu,62,12 +8,relu,63,13 +9,relu,64,14 +10,relu,65,15 +11,relu,66,16 +12,relu,67,17 +13,relu,68,18 +14,relu,69,19 +15,relu,70,20 +16,relu,71,21 +17,relu,72,22 +18,relu,73,23 +19,relu,74,24 +20,relu,75,25 +21,relu,76,26 +22,relu,77,27 +23,relu,78,28 +24,relu,79,29 +25,relu,80,30 +26,relu,81,31 +27,relu,82,32 +28,relu,83,33 +29,relu,84,34 +30,relu,85,35 +31,relu,86,36 +32,relu,87,37 +33,relu,88,38 +34,relu,89,39 +35,relu,90,40 +36,relu,91,41 +37,relu,92,42 +38,relu,93,43 +39,relu,94,44 +40,relu,95,45 +41,relu,96,46 +42,relu,97,47 +43,relu,98,48 +44,relu,99,49 +45,relu,100,50 +46,relu,101,51 +47,relu,102,52 +48,relu,103,53 +49,relu,104,54 +50,relu,155,105 +51,relu,156,106 +52,relu,157,107 +53,relu,158,108 +54,relu,159,109 +55,relu,160,110 +56,relu,161,111 +57,relu,162,112 +58,relu,163,113 +59,relu,164,114 +60,relu,165,115 +61,relu,166,116 +62,relu,167,117 +63,relu,168,118 +64,relu,169,119 +65,relu,170,120 +66,relu,171,121 +67,relu,172,122 +68,relu,173,123 +69,relu,174,124 +70,relu,175,125 +71,relu,176,126 +72,relu,177,127 +73,relu,178,128 +74,relu,179,129 +75,relu,180,130 +76,relu,181,131 +77,relu,182,132 +78,relu,183,133 +79,relu,184,134 +80,relu,185,135 +81,relu,186,136 +82,relu,187,137 +83,relu,188,138 +84,relu,189,139 +85,relu,190,140 +86,relu,191,141 +87,relu,192,142 +88,relu,193,143 +89,relu,194,144 +90,relu,195,145 +91,relu,196,146 +92,relu,197,147 +93,relu,198,148 +94,relu,199,149 +95,relu,200,150 +96,relu,201,151 +97,relu,202,152 +98,relu,203,153 +99,relu,204,154 +100,relu,255,205 +101,relu,256,206 +102,relu,257,207 +103,relu,258,208 +104,relu,259,209 +105,relu,260,210 +106,relu,261,211 +107,relu,262,212 +108,relu,263,213 +109,relu,264,214 +110,relu,265,215 +111,relu,266,216 +112,relu,267,217 +113,relu,268,218 +114,relu,269,219 +115,relu,270,220 +116,relu,271,221 +117,relu,272,222 +118,relu,273,223 +119,relu,274,224 +120,relu,275,225 +121,relu,276,226 +122,relu,277,227 +123,relu,278,228 +124,relu,279,229 +125,relu,280,230 +126,relu,281,231 +127,relu,282,232 +128,relu,283,233 +129,relu,284,234 +130,relu,285,235 +131,relu,286,236 +132,relu,287,237 +133,relu,288,238 +134,relu,289,239 +135,relu,290,240 +136,relu,291,241 +137,relu,292,242 +138,relu,293,243 +139,relu,294,244 +140,relu,295,245 +141,relu,296,246 +142,relu,297,247 +143,relu,298,248 +144,relu,299,249 +145,relu,300,250 +146,relu,301,251 +147,relu,302,252 +148,relu,303,253 +149,relu,304,254 +150,relu,355,305 +151,relu,356,306 +152,relu,357,307 +153,relu,358,308 +154,relu,359,309 +155,relu,360,310 +156,relu,361,311 +157,relu,362,312 +158,relu,363,313 +159,relu,364,314 +160,relu,365,315 +161,relu,366,316 +162,relu,367,317 +163,relu,368,318 +164,relu,369,319 +165,relu,370,320 +166,relu,371,321 +167,relu,372,322 +168,relu,373,323 +169,relu,374,324 +170,relu,375,325 +171,relu,376,326 +172,relu,377,327 +173,relu,378,328 +174,relu,379,329 +175,relu,380,330 +176,relu,381,331 +177,relu,382,332 +178,relu,383,333 +179,relu,384,334 +180,relu,385,335 +181,relu,386,336 +182,relu,387,337 +183,relu,388,338 +184,relu,389,339 +185,relu,390,340 +186,relu,391,341 +187,relu,392,342 +188,relu,393,343 +189,relu,394,344 +190,relu,395,345 +191,relu,396,346 +192,relu,397,347 +193,relu,398,348 +194,relu,399,349 +195,relu,400,350 +196,relu,401,351 +197,relu,402,352 +198,relu,403,353 +199,relu,404,354 +200,relu,455,405 +201,relu,456,406 +202,relu,457,407 +203,relu,458,408 +204,relu,459,409 +205,relu,460,410 +206,relu,461,411 +207,relu,462,412 +208,relu,463,413 +209,relu,464,414 +210,relu,465,415 +211,relu,466,416 +212,relu,467,417 +213,relu,468,418 +214,relu,469,419 +215,relu,470,420 +216,relu,471,421 +217,relu,472,422 +218,relu,473,423 +219,relu,474,424 +220,relu,475,425 +221,relu,476,426 +222,relu,477,427 +223,relu,478,428 +224,relu,479,429 +225,relu,480,430 +226,relu,481,431 +227,relu,482,432 +228,relu,483,433 +229,relu,484,434 +230,relu,485,435 +231,relu,486,436 +232,relu,487,437 +233,relu,488,438 +234,relu,489,439 +235,relu,490,440 +236,relu,491,441 +237,relu,492,442 +238,relu,493,443 +239,relu,494,444 +240,relu,495,445 +241,relu,496,446 +242,relu,497,447 +243,relu,498,448 +244,relu,499,449 +245,relu,500,450 +246,relu,501,451 +247,relu,502,452 +248,relu,503,453 +249,relu,504,454 +250,relu,555,505 +251,relu,556,506 +252,relu,557,507 +253,relu,558,508 +254,relu,559,509 +255,relu,560,510 +256,relu,561,511 +257,relu,562,512 +258,relu,563,513 +259,relu,564,514 +260,relu,565,515 +261,relu,566,516 +262,relu,567,517 +263,relu,568,518 +264,relu,569,519 +265,relu,570,520 +266,relu,571,521 +267,relu,572,522 +268,relu,573,523 +269,relu,574,524 +270,relu,575,525 +271,relu,576,526 +272,relu,577,527 +273,relu,578,528 +274,relu,579,529 +275,relu,580,530 +276,relu,581,531 +277,relu,582,532 +278,relu,583,533 +279,relu,584,534 +280,relu,585,535 +281,relu,586,536 +282,relu,587,537 +283,relu,588,538 +284,relu,589,539 +285,relu,590,540 +286,relu,591,541 +287,relu,592,542 +288,relu,593,543 +289,relu,594,544 +290,relu,595,545 +291,relu,596,546 +292,relu,597,547 +293,relu,598,548 +294,relu,599,549 +295,relu,600,550 +296,relu,601,551 +297,relu,602,552 +298,relu,603,553 +299,relu,604,554 +300,max,610,605,606,607,608,609,e,0,0 +301,max,611,0,1,2,3,4,e,0,0 \ No newline at end of file diff --git a/regress/regress1/input_queries/ACASXU_maxtest2.ipq b/regress/regress1/input_queries/ACASXU_maxtest2.ipq new file mode 100644 index 0000000000..18b3fb5203 --- /dev/null +++ b/regress/regress1/input_queries/ACASXU_maxtest2.ipq @@ -0,0 +1,939 @@ +612 +307 +7 +306 +302 +5 +0,0 +1,1 +2,2 +3,3 +4,4 +5 +0,605 +1,606 +2,607 +3,608 +4,609 +0,-0.3035311561 +1,-0.0095492966 +2,0.4933803236 +3,0.3000000000 +4,0.3000000000 +55,0.0000000000 +56,0.0000000000 +57,0.0000000000 +58,0.0000000000 +59,0.0000000000 +60,0.0000000000 +61,0.0000000000 +62,0.0000000000 +63,0.0000000000 +64,0.0000000000 +65,0.0000000000 +66,0.0000000000 +67,0.0000000000 +68,0.0000000000 +69,0.0000000000 +70,0.0000000000 +71,0.0000000000 +72,0.0000000000 +73,0.0000000000 +74,0.0000000000 +75,0.0000000000 +76,0.0000000000 +77,0.0000000000 +78,0.0000000000 +79,0.0000000000 +80,0.0000000000 +81,0.0000000000 +82,0.0000000000 +83,0.0000000000 +84,0.0000000000 +85,0.0000000000 +86,0.0000000000 +87,0.0000000000 +88,0.0000000000 +89,0.0000000000 +90,0.0000000000 +91,0.0000000000 +92,0.0000000000 +93,0.0000000000 +94,0.0000000000 +95,0.0000000000 +96,0.0000000000 +97,0.0000000000 +98,0.0000000000 +99,0.0000000000 +100,0.0000000000 +101,0.0000000000 +102,0.0000000000 +103,0.0000000000 +104,0.0000000000 +155,0.0000000000 +156,0.0000000000 +157,0.0000000000 +158,0.0000000000 +159,0.0000000000 +160,0.0000000000 +161,0.0000000000 +162,0.0000000000 +163,0.0000000000 +164,0.0000000000 +165,0.0000000000 +166,0.0000000000 +167,0.0000000000 +168,0.0000000000 +169,0.0000000000 +170,0.0000000000 +171,0.0000000000 +172,0.0000000000 +173,0.0000000000 +174,0.0000000000 +175,0.0000000000 +176,0.0000000000 +177,0.0000000000 +178,0.0000000000 +179,0.0000000000 +180,0.0000000000 +181,0.0000000000 +182,0.0000000000 +183,0.0000000000 +184,0.0000000000 +185,0.0000000000 +186,0.0000000000 +187,0.0000000000 +188,0.0000000000 +189,0.0000000000 +190,0.0000000000 +191,0.0000000000 +192,0.0000000000 +193,0.0000000000 +194,0.0000000000 +195,0.0000000000 +196,0.0000000000 +197,0.0000000000 +198,0.0000000000 +199,0.0000000000 +200,0.0000000000 +201,0.0000000000 +202,0.0000000000 +203,0.0000000000 +204,0.0000000000 +255,0.0000000000 +256,0.0000000000 +257,0.0000000000 +258,0.0000000000 +259,0.0000000000 +260,0.0000000000 +261,0.0000000000 +262,0.0000000000 +263,0.0000000000 +264,0.0000000000 +265,0.0000000000 +266,0.0000000000 +267,0.0000000000 +268,0.0000000000 +269,0.0000000000 +270,0.0000000000 +271,0.0000000000 +272,0.0000000000 +273,0.0000000000 +274,0.0000000000 +275,0.0000000000 +276,0.0000000000 +277,0.0000000000 +278,0.0000000000 +279,0.0000000000 +280,0.0000000000 +281,0.0000000000 +282,0.0000000000 +283,0.0000000000 +284,0.0000000000 +285,0.0000000000 +286,0.0000000000 +287,0.0000000000 +288,0.0000000000 +289,0.0000000000 +290,0.0000000000 +291,0.0000000000 +292,0.0000000000 +293,0.0000000000 +294,0.0000000000 +295,0.0000000000 +296,0.0000000000 +297,0.0000000000 +298,0.0000000000 +299,0.0000000000 +300,0.0000000000 +301,0.0000000000 +302,0.0000000000 +303,0.0000000000 +304,0.0000000000 +355,0.0000000000 +356,0.0000000000 +357,0.0000000000 +358,0.0000000000 +359,0.0000000000 +360,0.0000000000 +361,0.0000000000 +362,0.0000000000 +363,0.0000000000 +364,0.0000000000 +365,0.0000000000 +366,0.0000000000 +367,0.0000000000 +368,0.0000000000 +369,0.0000000000 +370,0.0000000000 +371,0.0000000000 +372,0.0000000000 +373,0.0000000000 +374,0.0000000000 +375,0.0000000000 +376,0.0000000000 +377,0.0000000000 +378,0.0000000000 +379,0.0000000000 +380,0.0000000000 +381,0.0000000000 +382,0.0000000000 +383,0.0000000000 +384,0.0000000000 +385,0.0000000000 +386,0.0000000000 +387,0.0000000000 +388,0.0000000000 +389,0.0000000000 +390,0.0000000000 +391,0.0000000000 +392,0.0000000000 +393,0.0000000000 +394,0.0000000000 +395,0.0000000000 +396,0.0000000000 +397,0.0000000000 +398,0.0000000000 +399,0.0000000000 +400,0.0000000000 +401,0.0000000000 +402,0.0000000000 +403,0.0000000000 +404,0.0000000000 +455,0.0000000000 +456,0.0000000000 +457,0.0000000000 +458,0.0000000000 +459,0.0000000000 +460,0.0000000000 +461,0.0000000000 +462,0.0000000000 +463,0.0000000000 +464,0.0000000000 +465,0.0000000000 +466,0.0000000000 +467,0.0000000000 +468,0.0000000000 +469,0.0000000000 +470,0.0000000000 +471,0.0000000000 +472,0.0000000000 +473,0.0000000000 +474,0.0000000000 +475,0.0000000000 +476,0.0000000000 +477,0.0000000000 +478,0.0000000000 +479,0.0000000000 +480,0.0000000000 +481,0.0000000000 +482,0.0000000000 +483,0.0000000000 +484,0.0000000000 +485,0.0000000000 +486,0.0000000000 +487,0.0000000000 +488,0.0000000000 +489,0.0000000000 +490,0.0000000000 +491,0.0000000000 +492,0.0000000000 +493,0.0000000000 +494,0.0000000000 +495,0.0000000000 +496,0.0000000000 +497,0.0000000000 +498,0.0000000000 +499,0.0000000000 +500,0.0000000000 +501,0.0000000000 +502,0.0000000000 +503,0.0000000000 +504,0.0000000000 +555,0.0000000000 +556,0.0000000000 +557,0.0000000000 +558,0.0000000000 +559,0.0000000000 +560,0.0000000000 +561,0.0000000000 +562,0.0000000000 +563,0.0000000000 +564,0.0000000000 +565,0.0000000000 +566,0.0000000000 +567,0.0000000000 +568,0.0000000000 +569,0.0000000000 +570,0.0000000000 +571,0.0000000000 +572,0.0000000000 +573,0.0000000000 +574,0.0000000000 +575,0.0000000000 +576,0.0000000000 +577,0.0000000000 +578,0.0000000000 +579,0.0000000000 +580,0.0000000000 +581,0.0000000000 +582,0.0000000000 +583,0.0000000000 +584,0.0000000000 +585,0.0000000000 +586,0.0000000000 +587,0.0000000000 +588,0.0000000000 +589,0.0000000000 +590,0.0000000000 +591,0.0000000000 +592,0.0000000000 +593,0.0000000000 +594,0.0000000000 +595,0.0000000000 +596,0.0000000000 +597,0.0000000000 +598,0.0000000000 +599,0.0000000000 +600,0.0000000000 +601,0.0000000000 +602,0.0000000000 +603,0.0000000000 +604,0.0000000000 +610,-1.0000000000 +611,-0.5000000000 +0,-0.2985528119 +1,0.0095492966 +2,0.5000000000 +3,0.5000000000 +4,0.5000000000 +610,1.0000000000 +611,1.0000000000 +0,0,-0.3133690000,5,-1.0000000000,0,0.0317590000,1,-1.7316300000,2,-0.0874419000,3,0.2461980000,4,0.1701590000 +1,0,0.2295380000,6,-1.0000000000,0,0.2047880000,1,1.5426300000,2,-0.1449150000,3,0.3426570000,4,-0.4203850000 +2,0,0.6817960000,7,-1.0000000000,0,-0.0072030300,1,-0.0660776000,2,-0.0134737000,3,-0.0010216500,4,-1.9241800000 +3,0,-0.0937459000,8,-1.0000000000,0,0.0042622400,1,0.6574410000,2,0.5059330000,3,-0.2434050000,4,0.1395030000 +4,0,0.3709110000,9,-1.0000000000,0,-2.3806900000,1,0.0364433000,2,0.0062510000,3,-0.0372337000,4,-0.0062146200 +5,0,0.0898740000,10,-1.0000000000,0,-0.1015920000,1,-2.1020300000,2,-1.6836800000,3,0.5286280000,4,-0.3226040000 +6,0,-0.2410370000,11,-1.0000000000,0,-0.0085685900,1,0.1288000000,2,-3.0625800000,3,0.2268570000,4,-0.0064307500 +7,0,0.0899729000,12,-1.0000000000,0,-0.1621300000,1,-0.0095154300,2,-0.0666873000,3,-0.6974690000,4,0.4547560000 +8,0,-0.0120231000,13,-1.0000000000,0,-0.0019475800,1,-2.4562100000,2,-0.2564370000,3,0.3967680000,4,-0.2693450000 +9,0,-0.0836056000,14,-1.0000000000,0,-0.7031670000,1,0.0206452000,2,0.0033287700,3,-0.0333520000,4,-0.1924720000 +10,0,0.0715250000,15,-1.0000000000,0,-0.6198440000,1,0.1024980000,2,-0.0892096000,3,0.7778590000,4,-0.8877060000 +11,0,-0.1094550000,16,-1.0000000000,0,0.0882727000,1,-0.6067440000,2,-1.7425200000,3,-0.5010280000,4,0.5506220000 +12,0,-0.2110340000,17,-1.0000000000,0,0.0225161000,1,1.3111600000,2,0.0554675000,3,0.1804000000,4,0.0952956000 +13,0,0.2010850000,18,-1.0000000000,0,0.3262630000,1,-1.3913900000,2,0.1233780000,3,0.3010850000,4,-0.5452450000 +14,0,-0.0370529000,19,-1.0000000000,0,-0.1238800000,1,0.0597425000,2,0.0490169000,3,0.1365750000,4,0.0342596000 +15,0,0.2834550000,20,-1.0000000000,0,-0.0620247000,1,2.6308600000,2,0.7717300000,3,0.0909136000,4,-0.2602980000 +16,0,-0.1366680000,21,-1.0000000000,0,0.4790380000,1,0.2693310000,2,-0.8464400000,3,-0.0334050000,4,0.1466640000 +17,0,0.6376120000,22,-1.0000000000,0,-2.6613600000,1,0.1192230000,2,-0.2451310000,3,0.1145030000,4,0.0252789000 +18,0,-0.0905210000,23,-1.0000000000,0,-0.1119100000,1,0.2311180000,2,-0.1279000000,3,-0.8377810000,4,0.9033120000 +19,0,0.0172603000,24,-1.0000000000,0,-0.5950870000,1,0.1001810000,2,1.0748700000,3,0.3102810000,4,0.4632320000 +20,0,0.3153570000,25,-1.0000000000,0,0.0666975000,1,1.0418600000,2,-1.3863700000,3,0.1029320000,4,-0.2063110000 +21,0,-0.0852187000,26,-1.0000000000,0,-0.1808860000,1,-0.1916820000,2,0.3678090000,3,-0.6412830000,4,0.7526820000 +22,0,0.4789760000,27,-1.0000000000,0,0.0098645000,1,-0.8690410000,2,1.1543400000,3,-0.1301290000,4,0.3484600000 +23,0,0.4077360000,28,-1.0000000000,0,0.0217290000,1,0.1284420000,2,0.0189109000,3,-1.0797800000,4,-0.2024820000 +24,0,0.1191940000,29,-1.0000000000,0,-0.0056107500,1,-0.7284610000,2,-0.1399930000,3,0.1777840000,4,0.3292590000 +25,0,-0.1149910000,30,-1.0000000000,0,-0.0206801000,1,0.5254620000,2,0.2123390000,3,-0.0626803000,4,0.1982680000 +26,0,0.4632430000,31,-1.0000000000,0,-0.0282766000,1,0.9161470000,2,-1.2217800000,3,-0.0908048000,4,0.2641680000 +27,0,0.3486630000,32,-1.0000000000,0,0.0026094100,1,1.0894600000,2,-1.0675400000,3,-0.0117726000,4,0.2501360000 +28,0,0.3513080000,33,-1.0000000000,0,0.0291987000,1,0.2821370000,2,-0.3225420000,3,-0.1269660000,4,-0.6847220000 +29,0,0.2643360000,34,-1.0000000000,0,-0.0000629533,1,-1.4283700000,2,1.4937300000,3,0.4159970000,4,-0.6113400000 +30,0,0.2139710000,35,-1.0000000000,0,-0.0221228000,1,1.1318000000,2,-0.2661330000,3,0.0751714000,4,-0.6597260000 +31,0,0.0735065000,36,-1.0000000000,0,-0.7273270000,1,-0.1491280000,2,0.0027710200,3,0.1336770000,4,0.0950372000 +32,0,-0.1385330000,37,-1.0000000000,0,-0.0143035000,1,-0.5842300000,2,0.7823750000,3,0.1564850000,4,-0.4341270000 +33,0,0.4974420000,38,-1.0000000000,0,0.0147155000,1,0.8661030000,2,-1.0874100000,3,-0.0959969000,4,0.1998760000 +34,0,-0.1472390000,39,-1.0000000000,0,0.0255551000,1,-0.5488250000,2,1.5402600000,3,0.0615600000,4,0.2380380000 +35,0,-0.1211700000,40,-1.0000000000,0,-0.0322285000,1,-0.4216090000,2,-0.3239920000,3,-0.2288760000,4,-0.1132970000 +36,0,-0.0469269000,41,-1.0000000000,0,0.0161573000,1,1.8464400000,2,0.2556360000,3,0.2256350000,4,-0.1055050000 +37,0,-0.2262450000,42,-1.0000000000,0,0.0609760000,1,0.8775860000,2,-1.4049300000,3,0.0202471000,4,0.7835610000 +38,0,-0.0255251000,43,-1.0000000000,0,0.0555735000,1,-0.4340140000,2,-0.0348002000,3,-0.1673930000,4,0.2040440000 +39,0,-0.0439761000,44,-1.0000000000,0,0.4374420000,1,1.0518900000,2,-0.7684030000,3,-0.1561630000,4,0.3144240000 +40,0,-0.0386366000,45,-1.0000000000,0,0.0579094000,1,0.2238220000,2,0.1388490000,3,-0.1863650000,4,0.1719850000 +41,0,0.0208809000,46,-1.0000000000,0,-0.1599810000,1,0.9035450000,2,-0.8331530000,3,0.0806955000,4,-0.3704090000 +42,0,0.3269130000,47,-1.0000000000,0,-0.2527660000,1,-1.6736100000,2,2.1614800000,3,-0.2082140000,4,0.7980230000 +43,0,0.2049250000,48,-1.0000000000,0,-0.2872910000,1,1.0782000000,2,-1.8035300000,3,-0.1159860000,4,0.3820900000 +44,0,0.1191190000,49,-1.0000000000,0,0.1412820000,1,1.9313500000,2,-0.2176080000,3,0.3886770000,4,-0.5180710000 +45,0,-0.1084320000,50,-1.0000000000,0,0.1074320000,1,0.2564950000,2,-0.3300090000,3,-0.4611430000,4,0.4239580000 +46,0,-0.2084430000,51,-1.0000000000,0,-0.0170512000,1,-0.1018810000,2,-1.7236100000,3,0.7078450000,4,-0.6570990000 +47,0,0.0060810700,52,-1.0000000000,0,0.0398667000,1,0.5595910000,2,0.8941130000,3,0.4797030000,4,0.0277834000 +48,0,0.5058910000,53,-1.0000000000,0,-0.0225216000,1,-1.2727000000,2,1.5147600000,3,-0.0582114000,4,0.3880370000 +49,0,-0.5783890000,54,-1.0000000000,0,2.0442900000,1,0.0212589000,2,-0.0048279000,3,0.0030844800,4,0.0387546000 +50,0,-0.3204410000,105,-1.0000000000,55,-0.2743120000,56,0.4532440000,57,-0.2645900000,58,-0.2092350000,59,0.2620210000,60,-0.0068238900,61,-0.0192727000,62,-0.3028710000,63,-0.4342690000,64,0.3748130000,65,0.6067810000,66,-0.1640660000,67,-0.3663290000,68,-0.2002090000,69,-0.0024503200,70,0.0063976600,71,0.5534600000,72,0.2552580000,73,-0.1206550000,74,0.5668550000,75,-0.5084500000,76,-0.6586480000,77,-0.0152196000,78,-0.4743490000,79,0.0230758000,80,-0.6343210000,81,-0.6996780000,82,1.0432000000,83,0.6609760000,84,-0.1199190000,85,-0.0911582000,86,0.1300080000,87,0.5072750000,88,-0.3931320000,89,0.1730940000,90,-0.7931190000,91,-0.7148240000,92,0.0635318000,93,0.0115503000,94,0.0219275000,95,0.2151360000,96,-0.1393380000,97,0.1782610000,98,0.3851880000,99,-0.0827580000,100,0.2950690000,101,0.2808430000,102,-0.0599651000,103,0.0684920000,104,-1.5469700000 +51,0,0.0063029900,106,-1.0000000000,55,0.0257361000,56,-0.0267017000,57,0.0042206700,58,0.0361900000,59,0.0381616000,60,-0.0472989000,61,0.0009918370,62,0.0385129000,63,0.0122661000,64,-0.0045794100,65,0.0280929000,66,0.0225725000,67,0.0054000700,68,-0.0099100500,69,-0.0005907860,70,0.0116036000,71,-0.0261224000,72,-0.0432062000,73,0.0299120000,74,-0.0141413000,75,0.0107733000,76,-0.0405311000,77,-0.0118146000,78,-0.0521276000,79,-0.0446955000,80,-0.0537016000,81,0.0449237000,82,-0.0163312000,83,0.0266759000,84,0.0138447000,85,0.0142462000,86,-0.0534819000,87,-0.0046176400,88,-0.0261813000,89,-0.0571514000,90,-0.0546886000,91,-0.0493981000,92,-0.0044097800,93,-0.0413388000,94,0.0005060880,95,0.0157050000,96,-0.0236796000,97,-0.0411855000,98,0.0017463100,99,-0.0006970620,100,-0.0573225000,101,-0.0375540000,102,-0.0083166200,103,0.0352304000,104,-0.0235572000 +52,0,1.1731400000,107,-1.0000000000,55,0.0541563000,56,-0.9295720000,57,-1.0363500000,58,-1.7523400000,59,-1.8370700000,60,-0.3647130000,61,-3.4744800000,62,0.7175760000,63,0.6736660000,64,-0.8049450000,65,-0.9608290000,66,-0.1571000000,67,-1.2010400000,68,0.3507400000,69,0.3282050000,70,-3.7926100000,71,0.1987460000,72,-0.6704970000,73,-0.6632420000,74,-0.0074416200,75,0.0372316000,76,-0.3076170000,77,1.8466900000,78,-2.2321600000,79,0.0813179000,80,-1.8627800000,81,0.0200265000,82,-0.0094523500,83,-0.0127107000,84,1.8026200000,85,-0.0175050000,86,-0.7809060000,87,0.8884290000,88,0.0050703900,89,0.7494180000,90,-1.2771900000,91,-0.1961990000,92,-0.9250270000,93,0.2759890000,94,-0.0262926000,95,0.4205690000,96,0.1320530000,97,1.1009700000,98,0.0543070000,99,-0.4026710000,100,-0.8933620000,101,0.3142200000,102,-1.0205600000,103,0.6829750000,104,0.0948436000 +53,0,0.0107769000,108,-1.0000000000,55,-0.0092630200,56,-0.0131989000,57,-0.0182535000,58,-0.0033681600,59,-0.0058563700,60,0.0336115000,61,-0.0084171600,62,-0.0417287000,63,-0.0560062000,64,-0.0364310000,65,0.0131731000,66,-0.0307997000,67,0.0127109000,68,0.0341977000,69,-0.0572560000,70,0.0094826100,71,0.0062983700,72,0.0141503000,73,0.0227117000,74,-0.0422178000,75,0.0037188800,76,-0.0304077000,77,0.0494487000,78,-0.0337449000,79,-0.0283657000,80,-0.0572380000,81,-0.0310886000,82,0.0089509400,83,-0.0499342000,84,-0.0143614000,85,0.0193910000,86,-0.0004234750,87,0.0123839000,88,-0.0280481000,89,-0.0394562000,90,0.0199039000,91,-0.0067779800,92,-0.0543475000,93,-0.0237299000,94,-0.0166575000,95,-0.0083828200,96,0.0245410000,97,0.0402192000,98,0.0217684000,99,-0.0007997540,100,0.0260140000,101,-0.0234351000,102,0.0352303000,103,-0.0118366000,104,-0.0079256000 +54,0,0.0098379500,109,-1.0000000000,55,0.0197337000,56,-0.0278378000,57,-0.0013392000,58,-0.0308461000,59,-0.0286523000,60,0.0049301400,61,-0.0520992000,62,-0.0429751000,63,-0.0081617200,64,0.0075275200,65,-0.0424203000,66,-0.0370002000,67,0.0381888000,68,0.0371993000,69,0.0243449000,70,0.0274847000,71,0.0152927000,72,0.0351977000,73,-0.0146072000,74,-0.0461808000,75,0.0155468000,76,-0.0011004700,77,0.0094466600,78,0.0340953000,79,-0.0324751000,80,0.0120669000,81,-0.0342583000,82,-0.0530020000,83,-0.0265870000,84,0.0071798800,85,-0.0130110000,86,0.0217821000,87,-0.0483322000,88,0.0078631900,89,-0.0500492000,90,-0.0151886000,91,0.0377541000,92,0.0091291400,93,0.0304110000,94,-0.0076517000,95,-0.0205706000,96,-0.0449330000,97,0.0102705000,98,0.0077482300,99,-0.0520830000,100,-0.0412713000,101,0.0298018000,102,-0.0542589000,103,-0.0525596000,104,-0.0507511000 +55,0,-0.2561410000,110,-1.0000000000,55,-1.0393200000,56,0.1956770000,57,0.2664970000,58,-0.0222579000,59,-0.2687360000,60,-0.6202710000,61,-0.6576460000,62,-0.0916265000,63,-0.0782423000,64,0.2735390000,65,0.0687115000,66,0.2436240000,67,0.1059300000,68,0.8063850000,69,-0.3531270000,70,0.1639010000,71,-0.6312210000,72,0.9270390000,73,0.1210210000,74,-0.0659907000,75,1.0656000000,76,-0.1117380000,77,-0.8456310000,78,2.2356400000,79,-0.3756150000,80,-0.1360930000,81,-2.3314000000,82,-1.9009900000,83,-0.2856210000,84,0.3129960000,85,0.6459060000,86,-0.3237480000,87,-0.6449440000,88,-3.5757200000,89,0.7832180000,90,1.4231900000,91,0.1844160000,92,0.1164550000,93,1.4736400000,94,-0.3320770000,95,-0.2510010000,96,0.3576120000,97,-0.3464010000,98,-0.2047450000,99,1.2424400000,100,0.2097610000,101,0.0823253000,102,0.0437517000,103,-2.4057000000,104,0.0617250000 +56,0,0.0556057000,111,-1.0000000000,55,-0.0594752000,56,-0.0414146000,57,-0.0364351000,58,-0.0126274000,59,-0.0390686000,60,-0.0056758500,61,-0.0236912000,62,0.0263055000,63,0.0215041000,64,-0.0673464000,65,0.0082882400,66,-0.0247064000,67,-0.0024599000,68,0.0094838000,69,-0.0665833000,70,-0.0253637000,71,0.0566615000,72,0.0283375000,73,-0.0107165000,74,-0.0265854000,75,-0.0172135000,76,0.0252898000,77,-0.0040666700,78,0.0916998000,79,0.0017234000,80,-0.0760109000,81,0.0178527000,82,-0.0424272000,83,-0.0467082000,84,-0.0017142200,85,-0.0185932000,86,-0.0360562000,87,0.0304387000,88,0.0670348000,89,0.0070111100,90,-0.0239426000,91,-0.0682711000,92,0.0184949000,93,0.0130835000,94,0.0341775000,95,-0.0066593600,96,-0.0311606000,97,-0.0146569000,98,-0.0109222000,99,-0.0122880000,100,0.0282413000,101,-0.0437452000,102,0.0361022000,103,0.0350702000,104,-0.0073710200 +57,0,0.9987740000,112,-1.0000000000,55,0.0228138000,56,-0.0390268000,57,-0.2942330000,58,-0.0375643000,59,1.2018800000,60,0.0129483000,61,-0.2421110000,62,-0.6971880000,63,0.8796540000,64,0.0145433000,65,0.4035360000,66,-0.3694760000,67,0.1481210000,68,0.1842840000,69,1.0116000000,70,-0.0002862920,71,0.0926601000,72,1.7380600000,73,-0.2054050000,74,0.8653020000,75,-0.2136190000,76,0.3079910000,77,0.8903230000,78,0.8470810000,79,-0.3730230000,80,-0.7856720000,81,0.8565360000,82,0.7860800000,83,-2.8146100000,84,-0.9072790000,85,-0.1063340000,86,0.3454350000,87,-0.4597490000,88,0.2812760000,89,-0.0625968000,90,0.6643330000,91,-0.1771180000,92,0.6573280000,93,0.7403830000,94,-0.4153820000,95,0.3619350000,96,0.0871354000,97,-0.5049350000,98,0.4170700000,99,-0.0158832000,100,-1.0417900000,101,-0.3591250000,102,0.2650120000,103,0.4366200000,104,-3.5334700000 +58,0,-0.0439981000,113,-1.0000000000,55,0.4916520000,56,0.6108740000,57,0.0229454000,58,-0.0391277000,59,0.2458410000,60,0.1695250000,61,-0.5419900000,62,0.4131630000,63,-0.1059950000,64,-0.1951970000,65,-0.1655930000,66,-0.0888178000,67,-0.6176200000,68,-0.1014490000,69,0.8618290000,70,-0.8428260000,71,-0.2269130000,72,-0.3377270000,73,0.2332980000,74,0.1344710000,75,1.5717600000,76,0.2786310000,77,-0.9968030000,78,-0.4380680000,79,0.1142190000,80,-0.2800850000,81,1.2896000000,82,0.3188910000,83,3.5158500000,84,0.2476910000,85,0.6999260000,86,0.2864430000,87,0.7493050000,88,-0.8713340000,89,0.2196070000,90,-0.4575450000,91,-1.2776000000,92,-0.8193850000,93,0.2068730000,94,-0.2071610000,95,-0.1354130000,96,1.7029400000,97,0.0270152000,98,-0.2848090000,99,-0.2257140000,100,-0.6248770000,101,-0.5006740000,102,0.7448550000,103,-0.5867360000,104,0.1042910000 +59,0,2.3228700000,114,-1.0000000000,55,0.2498660000,56,1.3056500000,57,1.8262400000,58,3.7338900000,59,-0.7054460000,60,0.8545090000,61,0.2610650000,62,-1.5713200000,63,0.8519410000,64,-1.3744000000,65,-0.0228411000,66,-0.0704549000,67,-1.5349800000,68,0.3753470000,69,-0.6117410000,70,-0.6296300000,71,0.2285780000,72,1.0855700000,73,0.1961120000,74,-0.4945940000,75,1.5238800000,76,0.4268620000,77,-1.2173300000,78,-0.5130120000,79,0.6795230000,80,-2.1152800000,81,1.9783100000,82,0.8853670000,83,1.0550200000,84,0.7118460000,85,1.9569400000,86,-0.9693510000,87,1.1256300000,88,-0.2860330000,89,-0.5682550000,90,0.4424320000,91,-1.5398000000,92,-0.0675185000,93,0.9022310000,94,0.8004870000,95,1.1073800000,96,0.5650390000,97,0.5520510000,98,-0.1687150000,99,0.3912280000,100,0.6400410000,101,0.1377840000,102,2.1441800000,103,0.2428620000,104,-0.3145080000 +60,0,0.4811350000,115,-1.0000000000,55,-0.8459970000,56,-0.5019310000,57,-0.1587470000,58,0.6887460000,59,0.8276140000,60,0.1348640000,61,0.5485950000,62,-0.2549020000,63,-0.1799300000,64,0.2128440000,65,-0.1537970000,66,-0.1068900000,67,0.5298560000,68,-0.0638729000,69,0.4963030000,70,-0.3338900000,71,-0.2286610000,72,-0.2194940000,73,0.5001960000,74,-0.1681550000,75,-0.5159160000,76,-0.0872095000,77,-0.8796580000,78,0.2244970000,79,0.1343780000,80,0.2748850000,81,-0.5285850000,82,-0.3018110000,83,-0.8165030000,84,-2.1389200000,85,-0.3825530000,86,0.0998278000,87,-0.3005920000,88,-1.7247700000,89,-1.0078000000,90,-0.2362360000,91,0.1534630000,92,0.1334850000,93,-0.4169360000,94,0.0903254000,95,0.6923260000,96,0.3533880000,97,-1.7451700000,98,0.2485990000,99,0.2394090000,100,0.0434286000,101,0.1029220000,102,0.0299302000,103,-0.6900350000,104,0.2013080000 +61,0,1.2498800000,116,-1.0000000000,55,0.0430249000,56,-0.0560281000,57,0.0744397000,58,-2.0628600000,59,-0.4971510000,60,-0.6913330000,61,-3.7595500000,62,0.6754510000,63,0.2642100000,64,0.0207053000,65,0.9719320000,66,-0.6393600000,67,-1.8823300000,68,0.8285140000,69,-0.1221920000,70,-3.0397200000,71,-0.9640600000,72,-0.2673260000,73,-0.3829630000,74,-0.7900360000,75,0.0702041000,76,0.0014445400,77,4.1337500000,78,-0.2536380000,79,0.0452329000,80,-1.5623200000,81,0.0224613000,82,0.0361987000,83,-0.1037740000,84,1.9650500000,85,-1.1360800000,86,-0.7691920000,87,1.3449700000,88,0.0154814000,89,0.3545850000,90,-0.6497840000,91,-2.7684600000,92,-1.1249000000,93,-0.3611610000,94,0.0794397000,95,-1.3535000000,96,4.8799700000,97,0.8646300000,98,0.0041170800,99,-0.9171560000,100,-1.2361000000,101,-0.8147640000,102,-0.8875470000,103,2.6558100000,104,0.2302600000 +62,0,-0.8594300000,117,-1.0000000000,55,-0.4795580000,56,0.6512150000,57,0.2744160000,58,0.0009220200,59,-0.0636247000,60,-0.2963170000,61,0.3197180000,62,-2.3006600000,63,1.3610700000,64,-0.1056950000,65,-1.0951300000,66,0.1811750000,67,1.0340400000,68,1.3395700000,69,0.7463020000,70,0.3970580000,71,-0.8257430000,72,0.8083410000,73,-0.1573620000,74,0.1583810000,75,-0.5964140000,76,-0.0633365000,77,-1.8898000000,78,-1.5482600000,79,-0.5251450000,80,0.1801970000,81,-0.4133230000,82,0.0771915000,83,-1.9655000000,84,0.9976450000,85,2.4298600000,86,-0.6596010000,87,-1.1840800000,88,-6.6620800000,89,0.4612410000,90,0.1466050000,91,0.2835590000,92,0.5370620000,93,-0.2098080000,94,-1.6969600000,95,0.7899900000,96,-0.1675640000,97,-0.9224640000,98,-1.1314100000,99,0.1678200000,100,0.0528049000,101,0.3292930000,102,0.3444150000,103,-1.3628200000,104,0.3867070000 +63,0,0.0069577900,118,-1.0000000000,55,0.0476432000,56,-0.0436640000,57,0.0110567000,58,0.0009057280,59,-0.0369610000,60,0.0016242900,61,-0.0630456000,62,-0.0635481000,63,-0.0247237000,64,-0.0460125000,65,0.0047890300,66,-0.0311978000,67,0.0380171000,68,-0.0176561000,69,-0.0208246000,70,-0.0105941000,71,-0.0031063100,72,-0.0576428000,73,-0.0069248800,74,-0.0326914000,75,-0.0431413000,76,-0.0465544000,77,-0.0113038000,78,0.0047535000,79,-0.0511425000,80,0.0424122000,81,0.0135687000,82,-0.0220927000,83,0.0103513000,84,-0.0183364000,85,-0.0599263000,86,-0.0130478000,87,0.0115290000,88,0.0209356000,89,-0.0074567700,90,0.0401252000,91,-0.0344275000,92,0.0091382600,93,-0.0247571000,94,0.0104587000,95,0.0161386000,96,-0.0130544000,97,-0.0013198800,98,0.0038572100,99,-0.0619006000,100,-0.0531969000,101,-0.0581560000,102,-0.0041109100,103,0.0248224000,104,-0.0466666000 +64,0,0.0349450000,119,-1.0000000000,55,-0.0189100000,56,-0.0009938530,57,-0.0036358300,58,0.0353349000,59,-0.0222973000,60,-0.0334289000,61,0.0203953000,62,0.0193449000,63,-0.0315077000,64,-0.0645897000,65,0.0194946000,66,-0.0016177300,67,-0.0159318000,68,0.0150482000,69,0.0240966000,70,-0.0077565800,71,-0.0348412000,72,0.0300635000,73,-0.0522549000,74,-0.0011501500,75,-0.0505154000,76,-0.0011492900,77,-0.0303826000,78,-0.0146919000,79,-0.0525905000,80,-0.0103318000,81,-0.0140698000,82,-0.0294798000,83,0.0096695100,84,0.0378652000,85,-0.0595010000,86,0.0185880000,87,-0.0207753000,88,-0.0666987000,89,-0.0339514000,90,0.0081268600,91,0.0215412000,92,0.0076878400,93,-0.0585113000,94,-0.0423253000,95,0.0096938300,96,-0.0446057000,97,0.0014904200,98,-0.0068467500,99,-0.0357120000,100,-0.0511493000,101,0.0185736000,102,-0.0224928000,103,0.0008920010,104,0.0209210000 +65,0,-0.5856890000,120,-1.0000000000,55,-0.2015900000,56,-0.0305005000,57,0.9898690000,58,0.1795790000,59,1.6050200000,60,0.1692610000,61,-0.2567710000,62,0.1380620000,63,0.4487110000,64,1.0680100000,65,-1.6468000000,66,-0.3012610000,67,-0.4278560000,68,1.3508300000,69,-0.5607710000,70,-0.3922150000,71,-0.8623640000,72,-0.6217270000,73,-0.4254590000,74,0.2697330000,75,1.0330600000,76,-0.3594230000,77,-0.3024070000,78,-0.0845995000,79,0.5583340000,80,-0.7985220000,81,-0.4411740000,82,0.0663210000,83,2.3196400000,84,0.5579220000,85,-0.9493820000,86,-0.3800520000,87,-0.9558940000,88,-3.6334500000,89,0.1811610000,90,0.3327600000,91,0.3486610000,92,0.1979260000,93,1.4996800000,94,0.7804640000,95,0.7490260000,96,-0.6412260000,97,-1.2385000000,98,-1.1361900000,99,0.7156190000,100,0.1912300000,101,0.1603810000,102,-0.1847710000,103,-1.7204000000,104,-0.0698671000 +66,0,0.9398320000,121,-1.0000000000,55,-1.1906000000,56,-0.1877610000,57,-1.1741200000,58,-0.2226130000,59,0.2394720000,60,-0.1800480000,61,0.0468354000,62,0.1483280000,63,-0.9594340000,64,0.1886120000,65,-1.3921600000,66,-0.0460758000,67,-0.4670370000,68,-3.5493400000,69,1.1830600000,70,0.0493974000,71,-0.2556790000,72,-0.4621310000,73,0.9433340000,74,0.0840601000,75,-0.6640890000,76,0.4443970000,77,-0.7282040000,78,0.4280540000,79,-0.4367440000,80,-0.3905590000,81,-0.2138120000,82,0.1333430000,83,0.3523000000,84,0.9128500000,85,0.4786520000,86,-1.5196500000,87,-0.9180890000,88,-1.1113300000,89,0.8548900000,90,1.9097300000,91,0.4917620000,92,-0.4261350000,93,0.4704030000,94,-0.9551520000,95,-0.1604860000,96,1.0177100000,97,-4.9845500000,98,0.6208540000,99,0.8189770000,100,0.0623150000,101,-0.1616710000,102,1.6114200000,103,-1.6046200000,104,0.6628260000 +67,0,-0.8823660000,122,-1.0000000000,55,-0.4564850000,56,0.8564430000,57,1.8504200000,58,-0.0547035000,59,0.4565020000,60,-0.0903457000,61,-0.8749630000,62,0.3715030000,63,0.3945120000,64,-0.7926800000,65,0.3687620000,66,0.2066350000,67,0.0375058000,68,-0.4509680000,69,-0.3948040000,70,0.0672635000,71,-0.0008202970,72,0.0088971400,73,-1.2397400000,74,-0.2236690000,75,0.5253030000,76,0.3439440000,77,2.2953200000,78,0.3968050000,79,0.2476570000,80,-0.4383040000,81,-1.5026400000,82,-0.0448683000,83,-0.7275540000,84,-0.3132420000,85,-0.8961620000,86,0.4949890000,87,0.1890780000,88,2.6974600000,89,-0.0709752000,90,0.1128150000,91,-0.4189090000,92,0.2759940000,93,-0.6893750000,94,-0.0724539000,95,-0.8500140000,96,0.1554870000,97,-1.1174300000,98,-0.3291230000,99,-0.3067850000,100,0.5947580000,101,0.2711200000,102,0.1859840000,103,0.4412500000,104,-0.1934700000 +68,0,-0.1936070000,123,-1.0000000000,55,-0.3591180000,56,0.2111010000,57,-0.4155770000,58,0.5190010000,59,0.5760830000,60,0.0891322000,61,0.0774037000,62,-0.9512970000,63,1.2953000000,64,0.4837280000,65,-0.5401780000,66,0.4424480000,67,-0.5901260000,68,0.0417922000,69,0.3933060000,70,1.1868200000,71,-0.3037350000,72,-1.1276100000,73,-3.1239800000,74,-0.3875460000,75,-0.4970810000,76,-1.6797500000,77,-4.1366800000,78,-0.2775910000,79,0.1056410000,80,0.2579450000,81,-0.0061055100,82,-1.3840500000,83,-0.8349050000,84,0.3567850000,85,-0.5493090000,86,0.3855390000,87,0.1037130000,88,0.7480260000,89,-1.0984700000,90,-0.0990401000,91,1.1320400000,92,0.3349770000,93,-0.9498350000,94,0.0218698000,95,0.0211572000,96,0.1658660000,97,0.7692020000,98,-0.1609150000,99,-0.4903480000,100,-0.1695640000,101,-0.1430150000,102,-0.2138630000,103,-1.2601600000,104,0.0062669900 +69,0,0.0227493000,124,-1.0000000000,55,-0.0463897000,56,0.0203574000,57,0.0170291000,58,-0.0439804000,59,0.0204706000,60,0.0416340000,61,0.0255966000,62,-0.0336983000,63,-0.0523306000,64,-0.0472491000,65,0.0122897000,66,-0.0306153000,67,0.0206224000,68,-0.0227548000,69,0.0039280200,70,0.0033959200,71,-0.0035262900,72,-0.0220993000,73,-0.0299076000,74,0.0361151000,75,0.0324235000,76,0.0145514000,77,0.0096099400,78,0.0013555300,79,0.0060253500,80,0.0088233800,81,-0.0411970000,82,-0.0407869000,83,-0.0480066000,84,0.0125839000,85,-0.0301520000,86,-0.0122338000,87,-0.0503826000,88,-0.0224181000,89,-0.0631595000,90,0.0143851000,91,0.0169305000,92,-0.0318007000,93,-0.0362116000,94,-0.0074400000,95,0.0299393000,96,-0.0547100000,97,-0.0257296000,98,-0.0497017000,99,-0.0532159000,100,0.0226027000,101,-0.0301413000,102,-0.0449375000,103,0.0143500000,104,0.0199126000 +70,0,0.0065743700,125,-1.0000000000,55,0.0084145600,56,0.0201249000,57,-0.0301054000,58,-0.0159205000,59,-0.0273582000,60,-0.0216381000,61,-0.0292238000,62,-0.0074942000,63,-0.0392951000,64,-0.0313939000,65,-0.0349950000,66,-0.0547967000,67,-0.0241297000,68,0.0063263600,69,-0.0480302000,70,-0.0449787000,71,-0.0454464000,72,-0.0166077000,73,0.0354476000,74,-0.0166076000,75,0.0456490000,76,0.0004676220,77,0.0027508800,78,0.0281562000,79,0.0369715000,80,0.0122762000,81,0.0416275000,82,0.0443333000,83,0.0223485000,84,-0.0557730000,85,-0.0354103000,86,0.0261503000,87,-0.0443770000,88,0.0341383000,89,-0.0454794000,90,-0.0448304000,91,-0.0522925000,92,-0.0108706000,93,-0.0140153000,94,0.0357949000,95,0.0394194000,96,0.0269422000,97,0.0322616000,98,-0.0319453000,99,-0.0329505000,100,-0.0484107000,101,0.0345250000,102,-0.0342326000,103,0.0209921000,104,-0.0201235000 +71,0,0.0197879000,126,-1.0000000000,55,-0.0514119000,56,0.0129128000,57,-0.0381992000,58,0.0137437000,59,0.0063801700,60,-0.0259990000,61,-0.0228932000,62,-0.0298488000,63,-0.0423443000,64,-0.0440351000,65,-0.0238529000,66,0.0178034000,67,-0.0440049000,68,0.0107202000,69,0.0039445800,70,-0.0443875000,71,-0.0254763000,72,-0.0366471000,73,0.0185670000,74,-0.0420568000,75,0.0384775000,76,-0.0123648000,77,0.0405984000,78,-0.0532064000,79,0.0192675000,80,-0.0404310000,81,0.0018492000,82,-0.0114520000,83,-0.0458243000,84,-0.0174654000,85,0.0145697000,86,-0.0071643100,87,-0.0102252000,88,-0.0070673200,89,0.0353589000,90,-0.0501893000,91,-0.0490016000,92,0.0179753000,93,0.0117109000,94,0.0286461000,95,-0.0303165000,96,0.0167875000,97,0.0000320818,98,0.0240247000,99,0.0254396000,100,-0.0012068100,101,-0.0130326000,102,0.0239281000,103,0.0310123000,104,-0.0154025000 +72,0,-0.8807260000,127,-1.0000000000,55,-0.0728940000,56,-0.4028990000,57,-0.4329970000,58,0.3716040000,59,-0.2880020000,60,0.3260170000,61,-0.4755650000,62,0.5533220000,63,-0.7753610000,64,-0.0754896000,65,0.1506090000,66,0.3171720000,67,0.3112450000,68,-0.1314870000,69,0.3009600000,70,-0.1760120000,71,-1.5346800000,72,-0.4035070000,73,-0.1377500000,74,-0.1311050000,75,-1.1887600000,76,0.1330200000,77,1.0769000000,78,-1.4182300000,79,-0.3445010000,80,-0.0126935000,81,-1.8501200000,82,-1.3135900000,83,-3.6553000000,84,-0.1724840000,85,-0.9179400000,86,0.8038220000,87,-0.9556200000,88,-1.6530000000,89,-0.5212830000,90,0.5463690000,91,-0.2137780000,92,-0.0543533000,93,0.5501620000,94,1.3488800000,95,1.7599300000,96,0.0410672000,97,-0.9555790000,98,-1.3702100000,99,-0.1130480000,100,0.6964980000,101,0.2904430000,102,0.6195480000,103,-0.6261620000,104,0.3640190000 +73,0,0.3163220000,128,-1.0000000000,55,-2.1806900000,56,-0.1608890000,57,1.1749200000,58,-1.3989200000,59,-0.5171750000,60,-0.7019180000,61,-0.0150211000,62,-1.1994400000,63,-1.4484500000,64,-0.1757620000,65,0.0775643000,66,-1.3393700000,67,-0.3455940000,68,0.4255060000,69,-1.8369000000,70,-1.1256100000,71,0.6562090000,72,-1.0028700000,73,0.2588130000,74,-0.5239320000,75,0.9510320000,76,-0.0837392000,77,-0.2038950000,78,0.0100312000,79,-1.1146400000,80,-1.5396000000,81,3.1904800000,82,2.3825800000,83,-2.4539100000,84,-0.1176350000,85,-0.0877778000,86,-0.2071730000,87,1.9661400000,88,3.2362700000,89,-4.2602100000,90,-0.7346590000,91,-0.0576631000,92,0.0166749000,93,-2.5824900000,94,0.7563760000,95,-0.4098420000,96,1.4275700000,97,0.0343575000,98,1.1424300000,99,1.5406200000,100,0.1669720000,101,0.3362750000,102,-1.0616700000,103,-0.2254740000,104,-0.2407960000 +74,0,-0.0731710000,129,-1.0000000000,55,0.1887610000,56,-0.6903060000,57,1.9554800000,58,0.1456640000,59,-0.2731620000,60,0.3031000000,61,-0.2808290000,62,-0.3351220000,63,0.8141550000,64,0.1083790000,65,-0.2649080000,66,0.0440178000,67,0.2247650000,68,-0.1567120000,69,0.8009810000,70,0.3234280000,71,-0.0892925000,72,0.9174030000,73,-0.5712700000,74,0.1040520000,75,-0.9458690000,76,-0.7337590000,77,2.2042300000,78,0.4243400000,79,0.5366860000,80,0.1706370000,81,1.7163100000,82,0.5117840000,83,0.0218909000,84,-0.0734094000,85,-0.5828900000,86,1.0654600000,87,-0.3182460000,88,2.1348000000,89,0.1171810000,90,-1.1815300000,91,0.4489970000,92,0.3087530000,93,-0.4017890000,94,0.7146800000,95,0.4402580000,96,-0.7733670000,97,-0.0627455000,98,-0.1539510000,99,0.0314015000,100,-0.4373860000,101,0.7839660000,102,0.4003800000,103,1.5260200000,104,0.3774520000 +75,0,0.0179227000,130,-1.0000000000,55,-0.3604770000,56,0.2797350000,57,0.3251130000,58,-0.0356027000,59,-0.4456400000,60,-0.0924051000,61,-0.7804290000,62,0.3612280000,63,0.0097027700,64,0.1068190000,65,-0.2623850000,66,-0.0272205000,67,0.5053200000,68,0.0934297000,69,0.1181040000,70,-0.2070720000,71,0.1081980000,72,0.2029150000,73,-0.5866450000,74,-0.2280080000,75,-0.3481880000,76,0.0144100000,77,0.6886930000,78,0.3880350000,79,-0.1574030000,80,0.6618230000,81,0.2536880000,82,1.4745000000,83,3.2855100000,84,-0.0554398000,85,0.8622220000,86,0.0948463000,87,0.2918230000,88,0.8615120000,89,0.2907440000,90,-0.3136910000,91,-0.3615220000,92,-0.2413470000,93,0.2880960000,94,-0.0122207000,95,0.5245920000,96,-2.2092800000,97,-0.0913758000,98,0.5221410000,99,0.0687784000,100,-0.1224660000,101,0.5473590000,102,0.8590290000,103,-0.1643320000,104,-0.2415570000 +76,0,0.0213240000,131,-1.0000000000,55,0.0157575000,56,-0.0266341000,57,0.0292190000,58,0.0049886000,59,-0.0061234700,60,-0.0216911000,61,-0.0415118000,62,-0.0455746000,63,-0.0493785000,64,-0.0239386000,65,-0.0150156000,66,-0.0143824000,67,-0.0436520000,68,-0.0522230000,69,0.0184870000,70,-0.0072136700,71,0.0056662700,72,-0.0331141000,73,-0.0227645000,74,0.0107774000,75,-0.0112350000,76,0.0119129000,77,-0.0032901100,78,-0.0162796000,79,-0.0622804000,80,-0.0088705600,81,0.0159898000,82,-0.0469742000,83,-0.0474205000,84,0.0049325200,85,-0.0064613900,86,0.0142416000,87,-0.0149531000,88,-0.0266580000,89,-0.0077830000,90,0.0372202000,91,-0.0271952000,92,0.0309696000,93,0.0088616000,94,-0.0123781000,95,-0.0409646000,96,-0.0185563000,97,0.0260759000,98,-0.0308038000,99,0.0047599200,100,0.0101251000,101,0.0389040000,102,0.0273976000,103,-0.0432420000,104,-0.0219378000 +77,0,0.2411860000,132,-1.0000000000,55,0.0064875400,56,0.0929696000,57,0.0015236100,58,-0.3218240000,59,0.1249590000,60,0.1282290000,61,-0.0267937000,62,0.4866340000,63,0.1517010000,64,-0.3141760000,65,-0.4175310000,66,-0.0180245000,67,0.3784390000,68,-0.2348970000,69,0.3223790000,70,-0.3787190000,71,-0.1655780000,72,0.0098704700,73,-0.0528242000,74,0.1576340000,75,0.3417920000,76,0.0302257000,77,0.1211340000,78,0.1380580000,79,0.2926400000,80,0.1404480000,81,-0.0660697000,82,-0.0772617000,83,-0.2784740000,84,-0.3534990000,85,0.3239250000,86,0.0282111000,87,-0.1227120000,88,-0.1138440000,89,-0.0328099000,90,-0.0054980500,91,0.2623660000,92,-0.0006712810,93,0.0637950000,94,-0.1648270000,95,-0.3125030000,96,-0.1579090000,97,0.0391909000,98,-0.0681773000,99,-0.2193470000,100,-0.5398790000,101,0.1307940000,102,0.3138590000,103,0.2137820000,104,0.0991297000 +78,0,0.0298085000,133,-1.0000000000,55,-0.0351515000,56,-0.0219465000,57,0.0340812000,58,0.0255226000,59,0.0148389000,60,0.0239719000,61,-0.0380665000,62,-0.0274052000,63,0.0045490400,64,-0.0509631000,65,0.0116956000,66,0.0408019000,67,0.0398899000,68,0.0330658000,69,-0.0584654000,70,0.0161735000,71,-0.0365503000,72,0.0385692000,73,0.0343386000,74,-0.0132102000,75,0.0257228000,76,0.0130134000,77,0.0355843000,78,-0.0057933800,79,-0.0446617000,80,-0.0184399000,81,-0.0267248000,82,0.0134336000,83,-0.0551045000,84,-0.0380750000,85,0.0121036000,86,0.0195063000,87,0.0165181000,88,-0.0354328000,89,-0.0361001000,90,-0.0439928000,91,0.0031486900,92,-0.0435931000,93,0.0371384000,94,0.0295443000,95,-0.0472974000,96,-0.0248577000,97,0.0293953000,98,0.0275955000,99,-0.0046731300,100,-0.0407247000,101,-0.0590613000,102,-0.0385906000,103,0.0070909300,104,-0.0133473000 +79,0,0.0062708600,134,-1.0000000000,55,0.0114938000,56,0.0326300000,57,-0.0309281000,58,0.0117726000,59,0.0041712600,60,0.0264468000,61,-0.0494217000,62,-0.0396003000,63,-0.0082775200,64,0.0310098000,65,-0.0323304000,66,-0.0108789000,67,-0.0378722000,68,0.0277194000,69,0.0334102000,70,-0.0465662000,71,-0.0314013000,72,-0.0446604000,73,-0.0058966700,74,-0.0501271000,75,-0.0069446200,76,-0.0362414000,77,-0.0327677000,78,-0.0345861000,79,0.0049114200,80,0.0373738000,81,0.0043353500,82,-0.0139834000,83,-0.0004001740,84,0.0107436000,85,0.0426634000,86,-0.0123090000,87,-0.0226966000,88,0.0183488000,89,0.0199917000,90,-0.0432891000,91,-0.0259042000,92,-0.0074385500,93,0.0316784000,94,-0.0072284400,95,0.0243658000,96,-0.0389256000,97,-0.0242407000,98,-0.0366878000,99,-0.0451078000,100,-0.0213831000,101,-0.0393760000,102,0.0238820000,103,-0.0410888000,104,-0.0124507000 +80,0,0.1864830000,135,-1.0000000000,55,0.3386410000,56,-0.5001980000,57,-0.2076730000,58,0.2766870000,59,-0.4926460000,60,-0.2519270000,61,0.1357470000,62,0.0265379000,63,-0.0955485000,64,0.3068070000,65,0.3389470000,66,-0.0409733000,67,-0.0478465000,68,0.0262320000,69,0.2759250000,70,0.0258346000,71,0.0570028000,72,-0.1695980000,73,-0.1106940000,74,0.0102247000,75,-0.6488950000,76,0.1456800000,77,0.3442380000,78,0.3511220000,79,-0.4519370000,80,0.2197950000,81,-0.5487600000,82,-0.5678590000,83,0.1767460000,84,-0.8147820000,85,-0.0274591000,86,-0.8562430000,87,0.6550090000,88,0.2015650000,89,0.3844410000,90,-0.0966191000,91,-0.2074600000,92,-0.0541878000,93,0.2435650000,94,0.7470650000,95,0.3929080000,96,0.4802550000,97,0.2384140000,98,0.4317510000,99,-0.2112820000,100,0.1599030000,101,0.1419630000,102,0.2307530000,103,-0.7414410000,104,-0.5691600000 +81,0,0.0189651000,136,-1.0000000000,55,-0.0419389000,56,0.0060209800,57,-0.0033440200,58,-0.0224974000,59,-0.0021789300,60,0.0073597000,61,-0.0336434000,62,-0.0327228000,63,-0.0073373500,64,-0.0375066000,65,-0.0379364000,66,0.0252029000,67,0.0104705000,68,-0.0396349000,69,-0.0398110000,70,-0.0089830000,71,-0.0263292000,72,-0.0509632000,73,0.0288181000,74,0.0108929000,75,0.0172443000,76,-0.0009992910,77,0.0378023000,78,-0.0429347000,79,0.0460604000,80,-0.0467152000,81,0.0403910000,82,0.0269990000,83,0.0341602000,84,-0.0248862000,85,-0.0253108000,86,-0.0461616000,87,-0.0066946400,88,-0.0231649000,89,-0.0386898000,90,0.0140388000,91,-0.0574192000,92,0.0022160200,93,0.0028972100,94,-0.0239092000,95,0.0080872100,96,-0.0099409200,97,0.0205518000,98,0.0198256000,99,-0.0064516900,100,-0.0051864600,101,0.0386405000,102,-0.0654004000,103,0.0016669300,104,-0.0049965600 +82,0,-0.3171830000,137,-1.0000000000,55,0.0412638000,56,-1.2972800000,57,0.3817490000,58,1.1546700000,59,0.2929000000,60,0.5297620000,61,0.9530030000,62,0.2013880000,63,1.1686900000,64,0.2413950000,65,-0.1581810000,66,-0.2059470000,67,-0.7641250000,68,0.7567240000,69,-1.1734700000,70,0.5600550000,71,0.3116250000,72,-1.4156400000,73,1.5648300000,74,0.3248260000,75,-2.3320900000,76,0.0773508000,77,-3.3663600000,78,1.4211100000,79,0.8057730000,80,-0.3681750000,81,-3.4338900000,82,-2.3322600000,83,0.4613100000,84,0.5800320000,85,-1.5038100000,86,-0.7762280000,87,-1.1877500000,88,-5.9212400000,89,-1.7024100000,90,0.3313770000,91,-0.8900310000,92,0.5383270000,93,-1.1537400000,94,0.1156130000,95,0.0625497000,96,-1.6265500000,97,-0.6412100000,98,-1.4492900000,99,-0.8162540000,100,0.9497810000,101,0.1162730000,102,-0.7651880000,103,0.4498080000,104,-0.1182330000 +83,0,0.4770760000,138,-1.0000000000,55,0.3919920000,56,0.8178640000,57,-0.7362370000,58,-0.2858920000,59,0.2046570000,60,0.2395170000,61,-0.7100820000,62,0.1394830000,63,0.3504120000,64,0.1539790000,65,-1.6129100000,66,-0.1514140000,67,-0.2355590000,68,-0.3470210000,69,-0.0643878000,70,0.2929160000,71,-0.3033580000,72,-0.4575900000,73,0.4990550000,74,-0.0881464000,75,0.7696750000,76,0.2238780000,77,-0.7356660000,78,0.2253300000,79,0.3168630000,80,-0.1464100000,81,0.2101690000,82,0.1197960000,83,0.5535100000,84,-0.0894014000,85,0.0572507000,86,0.5070430000,87,0.4382960000,88,-1.4194500000,89,-0.0767788000,90,0.5531460000,91,0.4015570000,92,-0.0315727000,93,-0.5057110000,94,0.4327870000,95,-0.3049970000,96,0.9715700000,97,0.4132500000,98,0.5188110000,99,0.1791680000,100,-0.0772985000,101,-0.4183030000,102,-0.2199060000,103,-0.6364310000,104,0.2016090000 +84,0,0.0114360000,139,-1.0000000000,55,-0.0217201000,56,-0.0455655000,57,-0.0461537000,58,-0.0209094000,59,-0.0211052000,60,-0.0547418000,61,-0.0009681010,62,0.0128789000,63,-0.0060663700,64,0.0167638000,65,0.0270532000,66,0.0146482000,67,-0.0492225000,68,-0.0376072000,69,-0.0154980000,70,-0.0401831000,71,0.0085902400,72,0.0202577000,73,0.0157243000,74,-0.0173587000,75,0.0378594000,76,-0.0397209000,77,-0.0174176000,78,0.0392135000,79,-0.0223137000,80,0.0241778000,81,-0.0388622000,82,-0.0055897400,83,0.0163827000,84,0.0309542000,85,-0.0056353400,86,-0.0172426000,87,-0.0262206000,88,0.0297664000,89,0.0004869290,90,0.0045571400,91,-0.0063175800,92,-0.0220684000,93,0.0017749000,94,0.0077872100,95,-0.0279646000,96,-0.0582166000,97,-0.0210473000,98,0.0185519000,99,-0.0558528000,100,0.0225853000,101,-0.0408947000,102,0.0352199000,103,0.0326732000,104,-0.0524781000 +85,0,0.3186170000,140,-1.0000000000,55,-0.3111350000,56,-1.1927500000,57,0.8344990000,58,0.5911280000,59,0.1069350000,60,-0.0575604000,61,0.1523220000,62,-0.2884350000,63,-0.0553591000,64,-0.5333660000,65,0.5350550000,66,-0.1024730000,67,0.3394020000,68,-0.9406590000,69,0.6916820000,70,-0.2012620000,71,-0.4811240000,72,0.1575670000,73,0.1095020000,74,-0.1168080000,75,-0.2450040000,76,-1.0109400000,77,-0.1874870000,78,0.1139010000,79,-0.1754270000,80,0.9514890000,81,0.5384160000,82,0.8187310000,83,0.0860991000,84,0.4550170000,85,0.6910510000,86,-0.1578340000,87,0.4866190000,88,0.4080870000,89,-0.2335490000,90,0.8309490000,91,-0.1663450000,92,0.2356510000,93,0.4665700000,94,-0.3228970000,95,0.6977120000,96,0.3949060000,97,-0.4813950000,98,-0.4897760000,99,-0.3532760000,100,-0.2168710000,101,0.3160660000,102,-0.0183224000,103,0.5488550000,104,-0.1854680000 +86,0,-0.2013660000,141,-1.0000000000,55,0.3098720000,56,-1.0613700000,57,0.7110500000,58,-0.8708740000,59,1.8077900000,60,-0.9936060000,61,0.2746660000,62,0.2882820000,63,-0.2662740000,64,0.9073040000,65,-0.0031541900,66,-0.1766020000,67,-0.0239981000,68,-0.1922070000,69,0.4067800000,70,-0.1187260000,71,0.3599580000,72,0.6828010000,73,0.1791290000,74,0.6045210000,75,0.0115986000,76,0.2862460000,77,0.0126064000,78,-0.1648450000,79,-0.2506730000,80,-0.7609110000,81,0.1498250000,82,-0.1527450000,83,-0.9850730000,84,-0.3586350000,85,0.5161540000,86,0.1892330000,87,1.7278800000,88,1.3227500000,89,0.6455470000,90,-0.7618880000,91,0.1601100000,92,0.2943570000,93,-0.9439860000,94,-0.0138609000,95,-0.2357680000,96,0.3785650000,97,0.7357940000,98,1.1898600000,99,-0.2007460000,100,0.0584396000,101,0.6593940000,102,0.0543859000,103,-0.2124490000,104,-3.2223600000 +87,0,0.0084217700,142,-1.0000000000,55,0.0084851400,56,0.0365542000,57,-0.0156654000,58,-0.0109714000,59,-0.0151789000,60,-0.0506604000,61,-0.0392124000,62,-0.0334810000,63,0.0135086000,64,-0.0334114000,65,-0.0011777400,66,-0.0086383100,67,0.0334922000,68,-0.0537049000,69,0.0045381700,70,0.0135231000,71,0.0124357000,72,0.0197474000,73,-0.0042567100,74,-0.0547473000,75,-0.0012047700,76,-0.0362485000,77,0.0402498000,78,-0.0322084000,79,-0.0418360000,80,-0.0027090700,81,0.0404339000,82,-0.0220620000,83,0.0235139000,84,0.0187208000,85,0.0233523000,86,-0.0351724000,87,0.0093890800,88,-0.0452613000,89,-0.0169301000,90,-0.0089202500,91,-0.0300441000,92,-0.0229335000,93,0.0151072000,94,-0.0348772000,95,0.0021483200,96,0.0407462000,97,-0.0492520000,98,-0.0547235000,99,-0.0484436000,100,-0.0543006000,101,-0.0142370000,102,-0.0095844200,103,-0.0208181000,104,-0.0287824000 +88,0,1.5037700000,143,-1.0000000000,55,-0.5768850000,56,-1.0916700000,57,0.6098570000,58,0.2662630000,59,-0.4312210000,60,0.0774133000,61,0.4874650000,62,0.6343860000,63,-0.6832300000,64,1.3208300000,65,-0.2358380000,66,0.5563860000,67,0.4719560000,68,0.2894030000,69,0.9376590000,70,0.6221470000,71,0.4326480000,72,-0.9898170000,73,0.2029380000,74,0.0093903900,75,0.3341090000,76,-0.0432308000,77,-0.3369930000,78,-0.4265350000,79,1.5508100000,80,0.4160260000,81,0.0187667000,82,-0.3948880000,83,-0.4800340000,84,1.3804700000,85,-1.1854400000,86,1.4069600000,87,0.5686570000,88,1.1699800000,89,-0.1639370000,90,0.6636220000,91,0.5241440000,92,-0.5215910000,93,-0.6651670000,94,0.0524857000,95,0.5088080000,96,-0.8466040000,97,0.3848570000,98,-0.3914660000,99,-0.0155835000,100,-0.0949807000,101,0.4614680000,102,-2.1640400000,103,0.1850080000,104,0.0634402000 +89,0,0.0118258000,144,-1.0000000000,55,-0.0541312000,56,-0.0482744000,57,0.0334497000,58,0.0245827000,59,-0.0087989700,60,-0.0245644000,61,-0.0154185000,62,-0.0243535000,63,0.0228186000,64,-0.0062618900,65,0.0082520800,66,-0.0202196000,67,-0.0353655000,68,-0.0166359000,69,-0.0191473000,70,0.0343669000,71,0.0067318500,72,-0.0411943000,73,-0.0252904000,74,-0.0026650000,75,-0.0089978400,76,0.0352028000,77,-0.0000093271,78,-0.0111622000,79,-0.0451316000,80,0.0344690000,81,-0.0479810000,82,0.0081633100,83,-0.0022419100,84,-0.0192418000,85,0.0415042000,86,-0.0151545000,87,0.0048810800,88,-0.0526386000,89,-0.0334843000,90,0.0133765000,91,-0.0406552000,92,-0.0035104400,93,0.0122984000,94,0.0067520700,95,-0.0102844000,96,-0.0074522300,97,0.0078305200,98,-0.0248512000,99,-0.0171531000,100,-0.0233309000,101,0.0012430300,102,0.0009173140,103,-0.0302409000,104,-0.0088513300 +90,0,-1.6199600000,145,-1.0000000000,55,0.3913780000,56,-0.2944510000,57,-3.7545900000,58,1.5493600000,59,-1.1784200000,60,1.3469100000,61,0.2726050000,62,0.6247590000,63,-1.4843100000,64,-0.6676990000,65,0.2845180000,66,0.1241870000,67,0.7577670000,68,-0.6458830000,69,0.1880960000,70,-0.6048090000,71,-1.7335400000,72,2.5798200000,73,0.8647320000,74,0.4506730000,75,-1.2177100000,76,0.4190650000,77,-4.5099300000,78,0.4077260000,79,-0.2829010000,80,0.7041540000,81,-5.5635400000,82,-1.0834200000,83,-1.2899900000,84,-1.0855100000,85,0.2448700000,86,0.8607870000,87,-1.9536100000,88,-6.4354000000,89,-0.9541310000,90,2.3461300000,91,-0.3960110000,92,-0.7647870000,93,0.6192520000,94,-0.2445430000,95,1.2809200000,96,-0.9771540000,97,-1.6279200000,98,-2.7365400000,99,-1.6448000000,100,0.6848650000,101,-1.4121900000,102,0.5995730000,103,-2.9916500000,104,0.2298290000 +91,0,1.1559000000,146,-1.0000000000,55,-0.4841840000,56,0.8517890000,57,-0.5168060000,58,-0.5952170000,59,0.9353830000,60,-0.9664390000,61,0.6881450000,62,0.9552640000,63,-3.6155400000,64,-1.5950200000,65,-1.2257200000,66,-0.1158110000,67,0.2997420000,68,0.1756670000,69,0.8905950000,70,0.7777050000,71,1.3518000000,72,-0.5419040000,73,0.5727190000,74,-1.1495700000,75,-0.5660250000,76,0.2860400000,77,0.2183410000,78,0.0027065500,79,-2.5361000000,80,0.1770660000,81,-1.4574300000,82,0.8147920000,83,1.4950800000,84,1.1040800000,85,0.8323650000,86,0.6240500000,87,1.2250900000,88,-4.0174900000,89,0.6125270000,90,1.4608400000,91,1.0738300000,92,0.0365478000,93,1.1313200000,94,-0.4425340000,95,-0.8139080000,96,-0.4468170000,97,0.2772460000,98,-1.7508300000,99,0.0607667000,100,-0.0487472000,101,0.7522350000,102,-1.2452300000,103,-0.1189820000,104,-0.3845010000 +92,0,-0.3290610000,147,-1.0000000000,55,-0.6124680000,56,-0.2114490000,57,0.0434090000,58,0.2916750000,59,0.0876802000,60,0.0492928000,61,-0.6482650000,62,-1.1812300000,63,-0.8352980000,64,0.1114500000,65,-2.0919300000,66,-0.5141500000,67,0.0827252000,68,-2.7292700000,69,0.8326510000,70,0.0244334000,71,-0.5652270000,72,-0.1076900000,73,1.0391600000,74,0.3727920000,75,-0.4972750000,76,0.9190160000,77,-1.8351800000,78,-0.8284400000,79,-1.7037400000,80,0.1525930000,81,-0.6210920000,82,1.4826200000,83,0.9789880000,84,-1.3012900000,85,1.0364700000,86,-0.5183090000,87,-2.2340100000,88,1.0406600000,89,-1.7386400000,90,-0.4575010000,91,0.0205928000,92,-0.3066050000,93,-2.1685700000,94,-0.9727930000,95,0.1317620000,96,0.5024480000,97,-1.5175900000,98,0.2107340000,99,-0.1680650000,100,-0.2063170000,101,-0.5452370000,102,1.8701800000,103,-0.9220280000,104,0.6311690000 +93,0,0.2454730000,148,-1.0000000000,55,0.1989710000,56,-0.5993170000,57,2.1209600000,58,-1.4141900000,59,-1.2186200000,60,0.6529720000,61,0.2669510000,62,-0.7983490000,63,0.3313280000,64,-0.2602860000,65,-0.2019600000,66,-1.3579700000,67,-2.4146900000,68,1.1455500000,69,-0.4268220000,70,-3.8312100000,71,-0.0650317000,72,0.1943710000,73,-0.5603410000,74,0.1241070000,75,-0.1293710000,76,-0.7144870000,77,-0.1063160000,78,0.2716560000,79,0.2084580000,80,-1.2345700000,81,-0.1986160000,82,-3.0073500000,83,0.2425950000,84,1.0113800000,85,-3.5231200000,86,-1.0748100000,87,0.8450730000,88,-0.0695500000,89,-0.2836580000,90,0.0342862000,91,-2.4636800000,92,0.5565150000,93,-1.8463800000,94,-0.2456470000,95,0.6810910000,96,-1.4332200000,97,0.5572110000,98,-0.4251520000,99,-1.7863700000,100,0.0965450000,101,1.2047000000,102,-0.2260160000,103,1.8248900000,104,-0.0508204000 +94,0,0.1748140000,149,-1.0000000000,55,0.5988020000,56,-0.9637210000,57,-0.3496550000,58,1.1176000000,59,0.0929999000,60,0.5762000000,61,0.2056250000,62,-0.0065140200,63,0.8689670000,64,-0.4163880000,65,-0.1733300000,66,0.4454730000,67,-0.1686520000,68,0.3329000000,69,-0.5198580000,70,0.2129170000,71,0.3490540000,72,0.1019110000,73,1.0339000000,74,-0.2357310000,75,-1.0607400000,76,0.6612530000,77,0.1367700000,78,0.2263600000,79,-0.0684343000,80,0.4798970000,81,-3.3049800000,82,-3.3306300000,83,-2.9969300000,84,1.1273100000,85,0.0224095000,86,-0.5940300000,87,-0.6144860000,88,-3.9502200000,89,-0.7355360000,90,0.5554790000,91,-0.2618310000,92,0.1960220000,93,-0.1354500000,94,-0.3011850000,95,0.8325550000,96,-1.2734800000,97,-0.3557830000,98,-0.6229320000,99,-0.8228850000,100,0.8305930000,101,-0.0622441000,102,0.4041340000,103,-0.0350164000,104,0.1322070000 +95,0,-2.3365600000,150,-1.0000000000,55,0.2914160000,56,1.2763200000,57,-3.8912600000,58,0.0165886000,59,-1.5287400000,60,0.3871180000,61,-0.2906290000,62,-0.7071040000,63,-0.2904920000,64,0.0429078000,65,-0.7960080000,66,0.0831548000,67,0.8795010000,68,-1.1906000000,69,-0.2157790000,70,-0.4519410000,71,0.4091850000,72,1.9505700000,73,0.7052820000,74,0.5499360000,75,-2.2044500000,76,0.7015270000,77,-4.2760200000,78,-0.6048440000,79,0.3625120000,80,0.9434270000,81,0.7937550000,82,-0.1248250000,83,-1.6402800000,84,-2.4246500000,85,1.3919500000,86,-1.6854900000,87,-1.9476400000,88,1.9840000000,89,0.1578950000,90,-0.8300020000,91,1.2135000000,92,0.3037050000,93,-0.4186550000,94,-0.4275280000,95,-0.1576740000,96,-1.0697300000,97,-1.3810600000,98,-1.4299700000,99,1.1407100000,100,0.9349710000,101,-0.5694050000,102,0.0056885400,103,-3.3711700000,104,0.0416630000 +96,0,-0.9433390000,151,-1.0000000000,55,0.1520360000,56,0.6233480000,57,-3.0863400000,58,-0.1821460000,59,-0.2538440000,60,-0.4171050000,61,-2.3627500000,62,-0.0776986000,63,-1.3900700000,64,-0.3531990000,65,-0.1964330000,66,0.9838140000,67,1.5541200000,68,-1.0530900000,69,-0.4835740000,70,-1.3406200000,71,-0.5990560000,72,-0.3464590000,73,1.3684200000,74,0.1353190000,75,-3.2062400000,76,2.1183700000,77,-5.3124800000,78,-0.6461490000,79,-0.0036167900,80,0.4117410000,81,-3.0600500000,82,-2.4517500000,83,-0.3270760000,84,-2.2687700000,85,-0.2585120000,86,-0.2861870000,87,-0.8206200000,88,-6.3194800000,89,0.7747000000,90,-0.9880490000,91,1.0590900000,92,-0.8393570000,93,0.5833310000,94,-0.5900530000,95,0.0328579000,96,-0.2981210000,97,-1.1415900000,98,-1.5024400000,99,1.0003500000,100,-0.8707570000,101,-1.8742400000,102,1.1620500000,103,-4.5804300000,104,0.2646990000 +97,0,0.1901510000,152,-1.0000000000,55,-1.2692900000,56,1.4276100000,57,-0.2166300000,58,-0.1425950000,59,-0.7509350000,60,-0.3806590000,61,-0.5003370000,62,0.0202864000,63,-2.0061600000,64,-0.3486940000,65,-0.1397830000,66,-0.0889733000,67,0.7779770000,68,-1.5286100000,69,0.8000160000,70,0.0870777000,71,-0.3567340000,72,0.4551500000,73,-0.1690120000,74,0.3970880000,75,2.0831500000,76,0.0514390000,77,-0.7520250000,78,-0.2811730000,79,-0.2971280000,80,0.3122820000,81,2.6520500000,82,3.1433200000,83,3.0719000000,84,-2.0064200000,85,1.1040000000,86,-1.4540300000,87,0.0785137000,88,3.5062200000,89,1.3107400000,90,-0.6832270000,91,0.8244610000,92,-0.8788950000,93,0.1844680000,94,-0.5602250000,95,-0.0296790000,96,0.8096480000,97,-0.8587700000,98,-0.0071614100,99,1.3317500000,100,-0.0595730000,101,0.4044730000,102,1.1887300000,103,-2.1098600000,104,0.3073070000 +98,0,-0.7491850000,153,-1.0000000000,55,-0.1445560000,56,0.3742100000,57,-1.6134300000,58,-0.7013270000,59,-0.4472360000,60,0.5937650000,61,0.5058110000,62,-0.5459420000,63,0.0690584000,64,-0.4025820000,65,-0.1348660000,66,0.6201180000,67,0.1990750000,68,0.6395880000,69,0.5882070000,70,0.2663380000,71,-0.2352130000,72,0.3500090000,73,0.0859592000,74,-0.1301870000,75,-0.4103060000,76,-0.1500000000,77,-1.0314100000,78,-2.4016000000,79,0.0174839000,80,-0.2999000000,81,-0.5146500000,82,1.2556100000,83,-1.0904700000,84,0.0069184800,85,-0.5324510000,86,0.1333030000,87,-1.7811100000,88,-1.5405100000,89,-1.4486700000,90,0.0121801000,91,-0.1529710000,92,-0.3049120000,93,-0.9841640000,94,-0.5647270000,95,-1.4574500000,96,-1.4128800000,97,-0.1013870000,98,0.5405900000,99,-0.0837527000,100,0.3766200000,101,-0.4315560000,102,-0.0289164000,103,-0.2472960000,104,-0.0011963400 +99,0,-1.3645000000,154,-1.0000000000,55,0.0952613000,56,-0.3198580000,57,-0.5121500000,58,-0.4466470000,59,-3.0878000000,60,-0.2105760000,61,-0.0007307360,62,0.1159850000,63,-0.2369000000,64,-0.2323450000,65,0.2831030000,66,0.0790448000,67,0.2805890000,68,-0.0817626000,69,0.2776230000,70,-0.1442590000,71,-0.0101211000,72,-1.7012800000,73,0.0919667000,74,0.2902880000,75,-0.6074910000,76,-0.0736089000,77,0.0643427000,78,-0.4158920000,79,0.0556470000,80,-0.1410340000,81,-0.1594360000,82,-0.0379429000,83,-0.6634640000,84,-0.4044540000,85,0.0660851000,86,-0.4767520000,87,0.5830380000,88,-0.2344890000,89,0.2607310000,90,-0.0550546000,91,-0.3489270000,92,0.4073650000,93,-0.6110050000,94,0.5798800000,95,-0.1903760000,96,0.1748200000,97,0.1925130000,98,0.1831830000,99,0.1956650000,100,0.0368903000,101,0.3983470000,102,-0.0516000000,103,-0.0277794000,104,1.7334300000 +100,0,1.8993500000,205,-1.0000000000,155,0.1330370000,156,-0.0109279000,157,0.5891140000,158,-0.0044615400,159,-0.0222375000,160,0.0678440000,161,-0.0214547000,162,-0.8061790000,163,1.0224100000,164,0.3068080000,165,0.1685200000,166,0.7068600000,167,-2.7686900000,168,0.0109069000,169,-0.0394205000,170,-0.6827210000,171,-0.1973500000,172,-2.4440400000,173,0.7298850000,174,-0.0345964000,175,-0.0253708000,176,0.0217206000,177,-0.2330620000,178,0.3610280000,179,-0.1043870000,180,0.5472870000,181,0.0404958000,182,0.4741990000,183,-0.0542502000,184,-0.0059775300,185,-1.6468500000,186,-0.0279783000,187,-0.6528120000,188,-0.8743910000,189,-0.0130146000,190,0.9526700000,191,-0.0396457000,192,0.0200341000,193,0.5886370000,194,-0.0318941000,195,0.2133490000,196,-0.1047110000,197,-0.0023032100,198,-1.5977000000,199,-0.5404740000,200,-0.6347770000,201,-0.0278054000,202,-0.0293556000,203,1.4506800000,204,0.0749659000 +101,0,-0.8458200000,206,-1.0000000000,155,1.7937100000,156,-0.0390708000,157,-1.5505400000,158,-0.0336479000,159,-0.0027043700,160,0.5391810000,161,-0.0161426000,162,1.1701000000,163,-2.6978700000,164,0.6743800000,165,-1.8500900000,166,1.2371500000,167,-0.3917720000,168,0.0050777000,169,0.0416616000,170,-0.7451110000,171,1.8151900000,172,-1.1040700000,173,1.0079800000,174,-0.0375453000,175,0.0115470000,176,0.0310181000,177,0.4810610000,178,0.2781970000,179,0.4377580000,180,2.8637600000,181,-0.0334488000,182,-0.4108540000,183,-0.0045872500,184,-0.0420579000,185,-0.1103610000,186,0.0538086000,187,1.5764300000,188,-0.2095750000,189,0.0123224000,190,-1.0312700000,191,0.1665400000,192,-0.0123658000,193,0.2065090000,194,-0.0345150000,195,1.1470500000,196,0.6315000000,197,0.9305000000,198,-1.5708100000,199,0.5759160000,200,0.3719130000,201,1.8514600000,202,0.2139880000,203,0.6643480000,204,-0.0212505000 +102,0,1.0242300000,207,-1.0000000000,155,-0.2757670000,156,0.0230477000,157,0.7848690000,158,0.0055006000,159,0.0341191000,160,0.8014560000,161,-0.0048380500,162,-0.0221763000,163,-0.3429590000,164,0.5696230000,165,-1.3267200000,166,1.1939400000,167,-0.1749200000,168,0.0354678000,169,-0.0517102000,170,1.0102700000,171,0.2777630000,172,0.8693030000,173,1.4460000000,174,0.0147892000,175,-0.0208204000,176,0.0024282200,177,0.5696750000,178,0.3826490000,179,-0.4387180000,180,1.1266100000,181,-0.0184518000,182,0.4503100000,183,0.0126723000,184,0.0005085470,185,0.8870140000,186,-0.0259376000,187,0.9903970000,188,-0.4887740000,189,-0.0065069000,190,1.2004300000,191,-0.3721830000,192,0.0248067000,193,1.0882300000,194,-0.0339732000,195,0.1948240000,196,2.8619400000,197,-0.2221130000,198,0.8460410000,199,0.3494970000,200,0.1818830000,201,1.3289600000,202,0.8705890000,203,0.7650290000,204,0.0117144000 +103,0,-0.0908320000,208,-1.0000000000,155,0.0587838000,156,-0.0209733000,157,0.1136450000,158,0.0085815100,159,0.0421138000,160,0.3112950000,161,-0.0210820000,162,0.5016890000,163,-0.3790930000,164,0.0854993000,165,-0.0646730000,166,0.4885230000,167,-0.4710630000,168,0.0540536000,169,-0.0067455300,170,0.3722410000,171,-0.0352442000,172,1.0304800000,173,0.1793300000,174,0.0323841000,175,0.0212844000,176,0.0317071000,177,-0.2552860000,178,-0.3528170000,179,-0.3160690000,180,-0.0791409000,181,0.0255209000,182,0.4486360000,183,0.0378384000,184,-0.0008504940,185,0.3992990000,186,-0.0264971000,187,0.1315700000,188,0.8743110000,189,0.0124021000,190,1.8450400000,191,0.4589230000,192,0.0147367000,193,-0.0943914000,194,-0.0107566000,195,-0.3950960000,196,0.4201990000,197,2.2378500000,198,0.1061540000,199,-0.2546660000,200,0.2453600000,201,0.3770850000,202,-0.0274314000,203,-0.4730000000,204,-0.2076450000 +104,0,1.5125600000,209,-1.0000000000,155,0.4943640000,156,-0.0171423000,157,0.9407240000,158,0.0192159000,159,-0.0215817000,160,-2.1695400000,161,-0.0441475000,162,-1.3951500000,163,-1.9848100000,164,0.6072550000,165,-0.5943130000,166,0.3409880000,167,-1.4500200000,168,-0.0424613000,169,-0.0269167000,170,-1.6646600000,171,-1.7585900000,172,-2.5490800000,173,-1.1078600000,174,-0.0199395000,175,-0.0361362000,176,-0.0495466000,177,-3.8767700000,178,-2.3143500000,179,-0.0283316000,180,-2.6410300000,181,-0.0262807000,182,-0.0294966000,183,-0.0230413000,184,0.0311385000,185,-1.8179500000,186,-0.0158140000,187,0.1917320000,188,-0.9070950000,189,-0.0187969000,190,-6.2082800000,191,0.2886060000,192,-0.0304139000,193,0.7904030000,194,0.0444296000,195,1.8048100000,196,1.9563000000,197,0.0340243000,198,-0.7616190000,199,-0.4983170000,200,-0.9165010000,201,1.6640200000,202,-7.6414400000,203,-1.1312500000,204,1.2751900000 +105,0,3.1968600000,210,-1.0000000000,155,1.4852700000,156,0.0184085000,157,-0.1494530000,158,0.0249512000,159,-0.0316336000,160,0.2458160000,161,0.0014705900,162,0.7893490000,163,0.9825340000,164,-0.0236526000,165,1.7369000000,166,-0.9065880000,167,-0.4507940000,168,0.0352563000,169,0.0407824000,170,0.6652380000,171,1.0280000000,172,-0.0163593000,173,-0.1848330000,174,-0.0192447000,175,0.0396318000,176,-0.0023323000,177,0.5112440000,178,-3.4192200000,179,-0.2573460000,180,0.3477030000,181,0.0421058000,182,0.3441910000,183,0.0004647760,184,-0.0094174300,185,1.0830600000,186,-0.0149045000,187,0.1165250000,188,0.7599320000,189,-0.0496050000,190,0.3172370000,191,0.1795220000,192,0.0455590000,193,1.3600300000,194,-0.0204539000,195,0.3195430000,196,-0.1511700000,197,-0.0747173000,198,0.1318240000,199,0.5338060000,200,-0.2474700000,201,0.2837360000,202,0.4603960000,203,0.5017680000,204,0.1422400000 +106,0,2.9788000000,211,-1.0000000000,155,0.9862200000,156,-0.0265037000,157,0.4997010000,158,-0.0185730000,159,-0.0362430000,160,0.1251340000,161,-0.0312966000,162,1.3394100000,163,-0.1543420000,164,0.6714800000,165,-0.2074940000,166,-0.1224390000,167,-0.4535010000,168,0.0223367000,169,-0.0385196000,170,0.1417170000,171,-0.0181783000,172,-0.9104380000,173,0.8401520000,174,0.0394982000,175,-0.0034792800,176,-0.0099039800,177,-1.3339200000,178,-1.3684400000,179,-0.3872870000,180,1.8882300000,181,0.0541691000,182,0.5104650000,183,-0.0078668200,184,0.0124843000,185,-3.3841800000,186,-0.0127474000,187,0.5573620000,188,0.6904700000,189,-0.0367214000,190,1.5318400000,191,-0.0770277000,192,-0.0150434000,193,-0.5741110000,194,0.0403404000,195,-1.4250000000,196,0.4918130000,197,0.6019960000,198,0.6233010000,199,-0.1354930000,200,-0.1828790000,201,-2.7516900000,202,0.6400890000,203,0.0161224000,204,0.9155000000 +107,0,-0.0713797000,212,-1.0000000000,155,0.2298980000,156,-0.0212681000,157,0.0556274000,158,0.0122440000,159,0.0212974000,160,-0.1758440000,161,-0.0429531000,162,1.0130000000,163,0.1158460000,164,-0.1389980000,165,-0.1091200000,166,0.0209366000,167,-0.1685700000,168,-0.0119690000,169,-0.0251117000,170,-0.2607510000,171,1.5658100000,172,0.3176170000,173,0.0221147000,174,-0.0188728000,175,0.0062950000,176,-0.0230746000,177,-1.1931700000,178,0.0777378000,179,-0.0792515000,180,0.4189480000,181,-0.0069500400,182,0.2783770000,183,0.0274792000,184,0.0273444000,185,-0.5163190000,186,-0.0055309500,187,0.2211210000,188,0.2443270000,189,-0.0015351300,190,1.1515800000,191,0.3651030000,192,0.0031753900,193,1.2379200000,194,-0.0245249000,195,-0.0788207000,196,0.0555271000,197,0.1512910000,198,-0.3407890000,199,0.3819300000,200,0.2704960000,201,0.1896130000,202,-0.2215650000,203,0.4044660000,204,-0.3972550000 +108,0,0.0311262000,213,-1.0000000000,155,-0.0040625400,156,-0.0110005000,157,-0.0405361000,158,0.0050727900,159,0.0434811000,160,0.0403939000,161,0.0439809000,162,-0.0321471000,163,-0.0558222000,164,-0.0131909000,165,-0.0525469000,166,-0.0292259000,167,-0.0556867000,168,0.0115928000,169,-0.0148384000,170,-0.0557514000,171,0.0304414000,172,-0.0446528000,173,0.0444516000,174,-0.0111032000,175,0.0390225000,176,0.0267113000,177,-0.0057651900,178,-0.0088830800,179,-0.0277687000,180,-0.0433913000,181,0.0013970600,182,-0.0330423000,183,0.0222194000,184,-0.0346395000,185,0.0284248000,186,-0.0328570000,187,-0.0473129000,188,0.0142953000,189,-0.0276608000,190,0.0373317000,191,-0.0190846000,192,0.0235897000,193,-0.0079215100,194,-0.0097727900,195,-0.0292056000,196,-0.0359239000,197,-0.0367681000,198,0.0248241000,199,-0.0323349000,200,0.0021466700,201,-0.0634952000,202,-0.0518989000,203,-0.0136614000,204,0.0138610000 +109,0,0.7462380000,214,-1.0000000000,155,-1.1422400000,156,0.0413097000,157,-0.4472380000,158,0.0172639000,159,-0.0365129000,160,-0.0156675000,161,-0.0180900000,162,0.8756950000,163,1.1751900000,164,0.3707710000,165,0.7088390000,166,0.0650737000,167,0.0945088000,168,-0.0518334000,169,0.0256070000,170,0.1052020000,171,-0.1536480000,172,-0.6619450000,173,-0.0934923000,174,0.0063777400,175,-0.0025524500,176,-0.0378809000,177,-0.0146119000,178,-0.5563670000,179,-0.3946550000,180,-0.1062380000,181,0.0147258000,182,0.0767900000,183,0.0046600500,184,-0.0362384000,185,-0.0337204000,186,0.0396076000,187,0.3509240000,188,0.0239188000,189,-0.0298583000,190,-2.6334300000,191,-0.0331526000,192,0.0053789400,193,0.2387630000,194,0.0064883400,195,-0.4889130000,196,0.7352880000,197,0.7197760000,198,0.6319620000,199,0.4415540000,200,0.0609942000,201,-0.0376227000,202,1.0746200000,203,-1.9697200000,204,-0.0362906000 +110,0,-1.4888600000,215,-1.0000000000,155,0.9770430000,156,-0.0396964000,157,0.5457520000,158,-0.0190158000,159,-0.0261721000,160,-0.3502930000,161,-0.0023721100,162,-0.3134690000,163,0.1250470000,164,-0.1030730000,165,1.1416900000,166,-0.0303523000,167,-0.3648110000,168,-0.0157506000,169,0.0149171000,170,-0.3394190000,171,1.4786800000,172,0.9825880000,173,-0.2762790000,174,0.0174455000,175,0.0213968000,176,-0.0496176000,177,-0.8095330000,178,0.1168860000,179,-0.5732480000,180,1.2543300000,181,-0.0046265100,182,-0.0962657000,183,0.0358339000,184,0.0028956500,185,0.7550070000,186,0.0065308000,187,0.2503560000,188,1.0049100000,189,-0.0175161000,190,1.9314000000,191,0.3700840000,192,-0.0236760000,193,-0.1578830000,194,-0.0247421000,195,-0.3912430000,196,0.2530780000,197,-0.4198020000,198,0.2669980000,199,-0.5740890000,200,0.0793755000,201,0.4734350000,202,-0.2161800000,203,-0.0410469000,204,-0.1239970000 +111,0,-0.4073910000,216,-1.0000000000,155,0.6921580000,156,-0.0509731000,157,0.3134530000,158,-0.0412843000,159,0.0352623000,160,-0.5531710000,161,0.0257590000,162,0.0117104000,163,0.6547430000,164,-0.0680861000,165,0.0892425000,166,-0.0567805000,167,0.2136930000,168,-0.0011776200,169,0.0114304000,170,0.0033906500,171,-0.2739070000,172,-0.0734850000,173,0.2524700000,174,0.0530109000,175,-0.0405088000,176,-0.0352604000,177,0.7148470000,178,0.5066830000,179,-0.0024324700,180,0.3908300000,181,0.0175190000,182,0.1089460000,183,0.0390311000,184,-0.0040547500,185,0.1224520000,186,0.0498954000,187,-0.0302249000,188,0.1294810000,189,0.0326374000,190,0.3931320000,191,-0.4237230000,192,0.0263170000,193,0.8887300000,194,0.0035721900,195,0.1273070000,196,0.5194010000,197,0.1472610000,198,-0.1503710000,199,-0.1961240000,200,0.1787080000,201,0.3232200000,202,-0.1753020000,203,0.1646980000,204,-0.1952320000 +112,0,0.5514220000,217,-1.0000000000,155,0.2755720000,156,0.0385232000,157,0.2048600000,158,0.0179538000,159,-0.0474196000,160,-0.3121140000,161,0.0063422800,162,0.3372060000,163,-0.3644720000,164,-0.1981250000,165,-0.6076640000,166,0.1412920000,167,-0.0676205000,168,-0.0242865000,169,-0.0011850700,170,0.1878400000,171,-0.0285620000,172,0.4072920000,173,-0.2216470000,174,0.0443334000,175,-0.0140683000,176,0.0260483000,177,0.3635080000,178,0.7634340000,179,0.0041165000,180,0.7016190000,181,0.0219171000,182,-0.0653879000,183,0.0426247000,184,0.0408451000,185,0.5302670000,186,0.0047461100,187,0.7139840000,188,0.4537220000,189,0.0093191500,190,0.8673420000,191,-0.2553150000,192,-0.0412149000,193,-2.0509600000,194,0.0257743000,195,0.2585660000,196,0.7889180000,197,-2.7130600000,198,-0.2277440000,199,0.2799020000,200,-0.7847620000,201,0.4283500000,202,-0.2604690000,203,-0.8617010000,204,0.1196800000 +113,0,-0.1612210000,218,-1.0000000000,155,-0.2904310000,156,-0.0379124000,157,-0.1724540000,158,0.0056846000,159,-0.0027236400,160,-0.0979160000,161,0.0325745000,162,0.0544318000,163,0.1788340000,164,0.1671630000,165,0.4088160000,166,-0.0171317000,167,-0.2749150000,168,-0.0083714900,169,0.0517831000,170,-0.0487527000,171,0.2787980000,172,0.0603790000,173,0.5613420000,174,-0.0144493000,175,0.0162407000,176,-0.0255488000,177,-0.2808970000,178,0.0450900000,179,0.0418272000,180,0.5863210000,181,-0.0282103000,182,-0.4127880000,183,-0.0275103000,184,-0.0482698000,185,0.5212420000,186,-0.0393517000,187,-0.4426670000,188,-0.1227770000,189,0.0095380400,190,-0.2234800000,191,0.1684470000,192,0.0364283000,193,0.4282700000,194,-0.0186517000,195,0.0876876000,196,-0.8427260000,197,0.1487100000,198,-0.0832285000,199,-0.0189739000,200,-0.0522445000,201,0.0349330000,202,-0.0360075000,203,0.3682730000,204,-0.0136628000 +114,0,-0.2294300000,219,-1.0000000000,155,1.5594700000,156,0.0170630000,157,0.3426840000,158,-0.0163971000,159,0.0353026000,160,0.0043377200,161,0.0127079000,162,-0.3184950000,163,-0.1099960000,164,0.0440531000,165,1.5879500000,166,0.2183260000,167,-0.1693280000,168,0.0076714200,169,-0.0162380000,170,-0.9792700000,171,-1.6692600000,172,0.4487620000,173,0.7946260000,174,-0.0185909000,175,0.0456803000,176,-0.0371370000,177,1.0235000000,178,-0.1190750000,179,0.2418640000,180,-0.7729910000,181,0.0251357000,182,-0.4302750000,183,0.0220131000,184,0.0259980000,185,0.0954648000,186,0.0513000000,187,0.2294150000,188,-0.4127140000,189,0.0160299000,190,1.5476900000,191,1.5238900000,192,-0.0190837000,193,-0.8057920000,194,-0.0146151000,195,0.1714130000,196,-0.7402300000,197,-2.2734800000,198,0.8132840000,199,-0.9285950000,200,-0.2461340000,201,1.3579700000,202,-0.1294240000,203,0.8780070000,204,-0.8552450000 +115,0,1.3071200000,220,-1.0000000000,155,0.2017410000,156,-0.0388617000,157,0.7085680000,158,0.0339170000,159,0.0238771000,160,1.5349900000,161,-0.0014166400,162,0.4185610000,163,-0.3381670000,164,0.6694320000,165,-1.0740300000,166,-0.3940550000,167,-0.2379600000,168,-0.0341127000,169,-0.0564283000,170,0.2188810000,171,-2.7186000000,172,-0.2764170000,173,0.5764720000,174,0.0398530000,175,-0.0397306000,176,-0.0229785000,177,0.2999680000,178,-3.6525400000,179,0.5422690000,180,0.2857150000,181,-0.0237082000,182,0.3446380000,183,0.0230748000,184,0.0238394000,185,-0.9236380000,186,0.0086566100,187,-0.0523406000,188,0.8350180000,189,-0.0046075800,190,-2.3934400000,191,-0.2973860000,192,0.0331796000,193,-0.7817990000,194,-0.0192087000,195,0.4328500000,196,1.7261400000,197,-2.8154800000,198,0.6319760000,199,-0.0571662000,200,-0.8502180000,201,0.5757260000,202,0.1645860000,203,-0.5125630000,204,-0.0087329200 +116,0,0.2396450000,221,-1.0000000000,155,-0.1237670000,156,-0.0032705400,157,0.3961060000,158,0.0109924000,159,-0.0226518000,160,-0.0168066000,161,-0.0266513000,162,-0.1295170000,163,0.7126540000,164,-0.1623150000,165,0.1599250000,166,-1.2594500000,167,0.0452411000,168,-0.0091940000,169,0.0014591300,170,0.0667509000,171,0.4118920000,172,0.4492720000,173,0.1785000000,174,0.0217160000,175,-0.0306650000,176,-0.0431109000,177,-0.1778810000,178,-0.8926550000,179,0.0153491000,180,-0.9927930000,181,-0.0500166000,182,0.1337880000,183,-0.0093365100,184,0.0083761400,185,1.3600300000,186,0.0103323000,187,-0.5737050000,188,0.0621321000,189,-0.0165812000,190,0.4717720000,191,0.1762050000,192,0.0037253600,193,0.1679760000,194,-0.0328961000,195,-0.1557410000,196,0.7899300000,197,-0.1870390000,198,-0.0274471000,199,0.1012840000,200,0.1139930000,201,-0.4316100000,202,-0.1231080000,203,-0.1424630000,204,0.2758340000 +117,0,1.5535900000,222,-1.0000000000,155,-1.6077100000,156,0.0245684000,157,-0.7966520000,158,0.0084746000,159,0.0510570000,160,0.0597681000,161,0.0517387000,162,0.7120160000,163,0.6773130000,164,0.1052590000,165,0.0599094000,166,0.4186740000,167,0.4774470000,168,-0.0413394000,169,0.0157042000,170,-0.3755960000,171,-0.3974700000,172,1.2295300000,173,0.2773650000,174,0.0080443300,175,0.0456632000,176,0.0053914000,177,0.2969220000,178,-0.4347340000,179,-0.5367330000,180,0.5294770000,181,-0.0344990000,182,0.3417740000,183,0.0184389000,184,-0.0348268000,185,0.8790970000,186,0.0544818000,187,-0.2619180000,188,0.3213090000,189,0.0377771000,190,0.4924680000,191,0.1660100000,192,0.0195406000,193,0.5469960000,194,0.0321557000,195,0.0069200200,196,1.1317700000,197,0.6029140000,198,-0.6859790000,199,0.1221050000,200,0.1243200000,201,-0.2900500000,202,-0.3758600000,203,0.7272570000,204,0.3494000000 +118,0,0.4561550000,223,-1.0000000000,155,0.3869670000,156,0.0344026000,157,0.0085294200,158,-0.0283679000,159,0.0028199000,160,0.3743990000,161,0.0937211000,162,0.8216180000,163,-1.2421700000,164,-2.3704800000,165,-0.0579103000,166,0.0157036000,167,-0.1767840000,168,-0.0321386000,169,-0.0232660000,170,0.3545940000,171,0.0522901000,172,-0.8548340000,173,0.8426550000,174,0.0291600000,175,0.0358532000,176,0.0043216000,177,0.3316070000,178,0.0615590000,179,-0.0890826000,180,-3.2184500000,181,-0.0391895000,182,0.0904317000,183,-0.0446945000,184,0.0398634000,185,1.5694600000,186,0.0507877000,187,0.0876236000,188,-0.1687970000,189,0.0251872000,190,0.0338828000,191,-0.2052490000,192,0.0477900000,193,0.2063030000,194,0.0186423000,195,-0.0790475000,196,-0.1359640000,197,-0.3163200000,198,-0.5282320000,199,-0.1915350000,200,0.0113543000,201,0.3185490000,202,0.0748170000,203,0.1951200000,204,0.0130230000 +119,0,0.4562850000,224,-1.0000000000,155,-0.7753010000,156,-0.0024808300,157,-0.1533670000,158,0.0122035000,159,-0.0149528000,160,-0.6284270000,161,-0.0185148000,162,1.4006000000,163,0.0124116000,164,-0.2864340000,165,-0.5550840000,166,-0.3752480000,167,0.7195090000,168,0.0368509000,169,0.0496470000,170,-1.1194200000,171,-1.8771000000,172,-0.5236070000,173,-0.3309330000,174,-0.0310144000,175,0.0449693000,176,-0.0424520000,177,0.9205880000,178,-0.3267840000,179,0.6639580000,180,-2.1744100000,181,0.0106298000,182,-0.1801970000,183,-0.0044988200,184,0.0151304000,185,-1.1147700000,186,0.0077018100,187,0.3025110000,188,-1.5603600000,189,0.0375668000,190,-1.8475000000,191,2.1546700000,192,-0.0364376000,193,-1.7487800000,194,0.0207437000,195,0.0160937000,196,-1.4255000000,197,-0.1375000000,198,0.2301340000,199,0.1121430000,200,0.1387290000,201,0.1939780000,202,0.1750040000,203,-0.2520860000,204,-3.6776000000 +120,0,0.0488682000,225,-1.0000000000,155,-0.0643884000,156,0.0420384000,157,-0.0323540000,158,-0.0229821000,159,0.0283487000,160,-0.0217257000,161,-0.0381143000,162,-0.0058241400,163,-0.0577325000,164,-0.0464662000,165,-0.0318511000,166,0.0164266000,167,0.0023351000,168,0.0397225000,169,0.0170644000,170,-0.0089114400,171,-0.0046814300,172,-0.0634759000,173,0.0138123000,174,-0.0425111000,175,-0.0207827000,176,0.0064318500,177,-0.0576617000,178,0.0096133000,179,-0.0270095000,180,0.0452765000,181,-0.0203308000,182,-0.0266804000,183,0.0089433900,184,-0.0147870000,185,-0.0466328000,186,-0.0082060800,187,-0.0066794300,188,0.0033900300,189,-0.0197144000,190,-0.0290717000,191,-0.0034119700,192,-0.0178223000,193,0.0581717000,194,0.0462741000,195,-0.0434361000,196,-0.0502195000,197,-0.0463340000,198,-0.0285877000,199,0.0086075600,200,0.0145848000,201,-0.0438928000,202,-0.0412567000,203,0.0275895000,204,-0.0346611000 +121,0,1.9298700000,226,-1.0000000000,155,0.8422250000,156,0.0302983000,157,0.2868520000,158,0.0104239000,159,-0.0402689000,160,-0.4623960000,161,0.0468197000,162,0.4935300000,163,-0.0277045000,164,-0.1393660000,165,0.1851840000,166,0.9178140000,167,0.3445550000,168,0.0283765000,169,0.0088261200,170,0.0099072000,171,0.7347830000,172,0.3123260000,173,0.1106050000,174,0.0282320000,175,-0.0280105000,176,0.0136063000,177,-0.4067260000,178,0.9021230000,179,-1.5531200000,180,2.7211700000,181,-0.0385382000,182,-0.5259750000,183,0.0239709000,184,0.0396583000,185,2.2218700000,186,-0.0339387000,187,0.4893270000,188,1.1126500000,189,0.0152305000,190,1.5667700000,191,0.5161950000,192,0.0373038000,193,1.7328100000,194,-0.0197573000,195,0.0050620400,196,-0.0306716000,197,0.5013350000,198,0.0523135000,199,0.2536190000,200,0.0801529000,201,0.4035880000,202,-0.0692317000,203,0.9553830000,204,-1.2676000000 +122,0,-1.0953700000,227,-1.0000000000,155,-1.1236400000,156,0.0006126860,157,2.2386700000,158,0.0013046600,159,-0.0178906000,160,-0.5335830000,161,0.0093469700,162,-0.0231643000,163,0.1406970000,164,-0.8219880000,165,0.5742230000,166,1.2063500000,167,0.5545250000,168,0.0368980000,169,-0.0112387000,170,0.4328560000,171,-3.9448200000,172,1.6880400000,173,1.3823300000,174,0.0378075000,175,0.0251098000,176,0.0115965000,177,-1.3075500000,178,1.6878900000,179,0.3896070000,180,0.0612336000,181,-0.0068622000,182,0.0460795000,183,0.0255357000,184,0.0156081000,185,0.0530988000,186,0.0364950000,187,-1.8686100000,188,-1.0483700000,189,-0.0434549000,190,2.3064900000,191,-0.3860840000,192,0.0267068000,193,1.0564300000,194,-0.0353379000,195,0.4181200000,196,-0.6623330000,197,-2.4973700000,198,2.5522000000,199,-0.9851520000,200,-0.8845260000,201,0.1453070000,202,2.4393500000,203,-1.2924000000,204,0.1819150000 +123,0,-0.1771540000,228,-1.0000000000,155,0.3380590000,156,0.0241704000,157,-0.5720180000,158,0.0432219000,159,0.0362908000,160,0.4384210000,161,-0.0094061200,162,-0.2582830000,163,-0.6736250000,164,-0.0835765000,165,-0.0852064000,166,-0.1528210000,167,0.2923490000,168,-0.0236863000,169,-0.0457368000,170,-0.8088000000,171,-0.1327070000,172,-0.3789970000,173,0.2458650000,174,-0.0461055000,175,-0.0356106000,176,0.0027720000,177,-0.1226900000,178,-0.2438660000,179,-0.1574210000,180,0.2126590000,181,0.0185399000,182,-0.0369150000,183,0.0378146000,184,-0.0164368000,185,-0.4398600000,186,0.0444368000,187,0.4787270000,188,-0.5775500000,189,0.0081256000,190,0.9909430000,191,-0.4280640000,192,-0.0343226000,193,0.0575272000,194,-0.0090822900,195,-1.6276700000,196,0.1669940000,197,0.6259520000,198,-0.8753210000,199,0.2034060000,200,-0.1229800000,201,-0.4255580000,202,0.1840320000,203,0.1312130000,204,-0.1809960000 +124,0,2.1151800000,229,-1.0000000000,155,1.9678800000,156,0.0145716000,157,0.1254800000,158,0.0508213000,159,-0.0066728800,160,-0.3907200000,161,-0.0564284000,162,2.0707300000,163,0.4477220000,164,0.7072740000,165,-0.3676080000,166,1.2468000000,167,-0.3318070000,168,-0.0551495000,169,0.0086351800,170,0.5239890000,171,-2.0057300000,172,1.6000000000,173,0.3908240000,174,-0.0053441600,175,0.0137502000,176,0.0167746000,177,-0.0723986000,178,-0.6773080000,179,-0.9589910000,180,2.1245900000,181,-0.0077680000,182,0.8469350000,183,-0.0506477000,184,0.0036232200,185,0.8307070000,186,-0.0470890000,187,0.6340820000,188,-0.5366070000,189,0.0100375000,190,-0.1451160000,191,-0.6219790000,192,0.0446425000,193,5.2640700000,194,0.0351891000,195,1.2362900000,196,-0.7345970000,197,-0.8178750000,198,0.3393040000,199,-0.9684940000,200,-0.6999140000,201,0.6026160000,202,0.9968680000,203,-0.3978230000,204,0.4137980000 +125,0,0.9154490000,230,-1.0000000000,155,0.0766245000,156,-0.0427133000,157,-0.7193680000,158,-0.0120176000,159,-0.0011638300,160,-1.0219000000,161,0.0126177000,162,0.6232260000,163,0.4068520000,164,0.0470082000,165,0.7201360000,166,0.2486230000,167,-0.0059319900,168,0.0323068000,169,-0.0508051000,170,0.3657950000,171,2.9771700000,172,-1.0725000000,173,1.0009800000,174,0.0401112000,175,0.0137101000,176,-0.0470717000,177,-0.8058550000,178,-0.8972270000,179,0.4005790000,180,2.5523400000,181,-0.0170210000,182,-0.5683360000,183,-0.0404514000,184,-0.0325853000,185,-1.6307000000,186,0.0053286700,187,-0.3417520000,188,-0.8876600000,189,0.0014214700,190,1.9581400000,191,-0.6817500000,192,-0.0203181000,193,-4.6219900000,194,-0.0451177000,195,-2.0070100000,196,0.5904590000,197,0.4602920000,198,0.1449650000,199,0.2187750000,200,0.3983610000,201,-0.3315240000,202,-0.2326410000,203,-1.1322900000,204,0.0560481000 +126,0,0.1567910000,231,-1.0000000000,155,-0.1426030000,156,-0.0439244000,157,0.2749160000,158,0.0449988000,159,-0.0234718000,160,0.1075490000,161,-0.0004138130,162,-0.2814910000,163,-0.1037160000,164,-0.6133840000,165,-1.3051800000,166,-0.4021080000,167,0.0606708000,168,0.0326744000,169,0.0144604000,170,-1.2130000000,171,0.8711120000,172,-2.7997500000,173,0.1894420000,174,0.0089380300,175,-0.0318394000,176,0.0207103000,177,0.2553470000,178,-2.2454900000,179,0.5996160000,180,-0.1379750000,181,0.0036313600,182,0.3651370000,183,0.0208819000,184,0.0149947000,185,-0.5588950000,186,0.0268673000,187,-0.4109300000,188,-2.1661600000,189,-0.0105801000,190,-1.6289000000,191,0.0714215000,192,-0.0446194000,193,-1.0830200000,194,0.0377522000,195,0.0073120400,196,1.4099500000,197,0.9185340000,198,-0.1820900000,199,0.1858070000,200,0.0973527000,201,0.0197403000,202,-0.0830842000,203,0.6147020000,204,-0.0744142000 +127,0,0.0212380000,232,-1.0000000000,155,0.0120540000,156,-0.0477489000,157,-0.0040152500,158,-0.0292947000,159,-0.0313451000,160,0.0100232000,161,-0.0191051000,162,0.0184354000,163,0.0197859000,164,0.0052511600,165,-0.0348163000,166,-0.0167094000,167,-0.0285181000,168,-0.0403498000,169,-0.0195420000,170,-0.0163022000,171,-0.0341286000,172,-0.0524761000,173,-0.0212120000,174,-0.0286719000,175,0.0578376000,176,0.0205013000,177,-0.0275800000,178,-0.0239391000,179,0.0142808000,180,-0.0175498000,181,0.0063343800,182,0.0033614100,183,-0.0247920000,184,0.0201322000,185,-0.0151660000,186,0.0208649000,187,-0.0185605000,188,0.0190464000,189,0.0384813000,190,-0.0195018000,191,-0.0251826000,192,0.0001358610,193,-0.0440289000,194,-0.0344552000,195,0.0586940000,196,-0.0102828000,197,-0.0229982000,198,-0.0000912537,199,-0.0554883000,200,-0.0569133000,201,-0.0264582000,202,-0.0410213000,203,-0.0506703000,204,-0.0007114440 +128,0,1.1092800000,233,-1.0000000000,155,-1.0453900000,156,-0.0102298000,157,0.2399500000,158,-0.0256760000,159,0.0425387000,160,-0.0464789000,161,-0.0169407000,162,2.1400700000,163,-0.2470160000,164,-0.0304104000,165,-1.5038100000,166,0.9152520000,167,-0.1499780000,168,0.0264203000,169,0.0264415000,170,0.4527980000,171,-0.2394990000,172,0.6609480000,173,0.5400390000,174,0.0001611930,175,-0.0263113000,176,0.0011847800,177,-0.6524000000,178,0.6387260000,179,-1.4325600000,180,-3.6252700000,181,0.0096760400,182,0.3346210000,183,-0.0345318000,184,-0.0369474000,185,0.8988300000,186,0.0074227000,187,0.0782948000,188,1.2827300000,189,0.0179369000,190,1.2766500000,191,-0.3614580000,192,-0.0513064000,193,0.5500520000,194,-0.0483203000,195,0.6152070000,196,0.3860590000,197,-0.0384026000,198,0.3723250000,199,-0.0531307000,200,-0.2738540000,201,0.2570000000,202,0.1499700000,203,0.9133140000,204,0.2828260000 +129,0,1.3860900000,234,-1.0000000000,155,-1.3268300000,156,0.0389420000,157,0.3905340000,158,-0.0361798000,159,0.0440374000,160,0.3127350000,161,-0.0370497000,162,0.7225530000,163,1.5658200000,164,1.2422700000,165,1.0983900000,166,0.0098754800,167,-0.3093770000,168,-0.0236978000,169,-0.0404090000,170,-0.4889930000,171,0.6498290000,172,-0.1697680000,173,-3.1852200000,174,-0.0309751000,175,-0.0533664000,176,-0.0449122000,177,0.8299180000,178,0.1066100000,179,-1.3349700000,180,2.3632700000,181,0.0267738000,182,0.1846010000,183,0.0470515000,184,-0.0249542000,185,-0.6656670000,186,0.0410654000,187,-0.2828110000,188,0.1302070000,189,0.0005736360,190,0.5980880000,191,-0.1542010000,192,0.0155637000,193,0.3047380000,194,0.0294713000,195,-0.6221430000,196,-0.1829190000,197,-0.2900880000,198,1.0255200000,199,0.3406740000,200,-0.1871250000,201,0.8443680000,202,0.7433900000,203,0.4281360000,204,0.3153920000 +130,0,1.4232700000,235,-1.0000000000,155,-1.0987900000,156,0.0254298000,157,1.7558900000,158,-0.0186899000,159,0.0135034000,160,-0.6514630000,161,0.0196823000,162,-3.5178600000,163,-0.5018540000,164,0.5007230000,165,-0.7126150000,166,-0.8376420000,167,0.3412690000,168,-0.0243933000,169,0.0274124000,170,0.2483360000,171,-1.5524200000,172,1.2266600000,173,-0.3774460000,174,-0.0039520700,175,0.0339745000,176,0.0342132000,177,0.0961053000,178,0.4221970000,179,-0.3835430000,180,0.3727210000,181,-0.0236002000,182,0.2389930000,183,0.0026058000,184,0.0085683600,185,1.2131500000,186,0.0175118000,187,0.1427810000,188,0.2857120000,189,0.0169386000,190,0.1485530000,191,-0.0188784000,192,0.0454235000,193,-3.3506300000,194,0.0394170000,195,-0.0652551000,196,0.7626600000,197,0.7726760000,198,0.1587040000,199,-0.2324630000,200,0.1678520000,201,0.0810409000,202,-0.2196690000,203,-0.1056390000,204,0.1973770000 +131,0,1.0635400000,236,-1.0000000000,155,-0.0274963000,156,0.0400840000,157,0.2661970000,158,0.0543450000,159,0.0261703000,160,1.0187700000,161,-0.0733973000,162,4.4445400000,163,-0.3356290000,164,-0.8564960000,165,-0.0599838000,166,0.2816810000,167,0.3302160000,168,0.0313891000,169,0.0004128220,170,-0.3398900000,171,-0.1090360000,172,-0.2659730000,173,0.8677160000,174,0.0329861000,175,-0.0360682000,176,0.0231790000,177,-0.5157980000,178,0.7028850000,179,3.0658600000,180,-2.3906600000,181,0.0204856000,182,0.0507896000,183,0.0073438500,184,-0.0205368000,185,0.2673210000,186,0.0302968000,187,-0.7218000000,188,-1.3599700000,189,-0.0425091000,190,-3.3524300000,191,1.4879000000,192,-0.0385339000,193,2.4453200000,194,0.0202164000,195,-0.0996011000,196,0.1237880000,197,-0.0640544000,198,0.8977280000,199,0.6448750000,200,0.1990240000,201,1.1781800000,202,1.6253400000,203,0.5573140000,204,-0.2188470000 +132,0,0.0239374000,237,-1.0000000000,155,0.0079802700,156,0.0224784000,157,0.0205960000,158,-0.0134351000,159,-0.0363830000,160,0.0008104240,161,-0.0222437000,162,0.0035065900,163,-0.0295462000,164,-0.0597966000,165,-0.0421144000,166,-0.0237259000,167,0.0197218000,168,0.0063947000,169,-0.0483438000,170,-0.0420673000,171,0.0256040000,172,0.0258503000,173,-0.0520152000,174,0.0470632000,175,0.0400095000,176,0.0057679300,177,-0.0468581000,178,0.0112084000,179,0.0099413700,180,-0.0019120900,181,-0.0450767000,182,0.0465386000,183,0.0012648300,184,0.0176079000,185,0.0341313000,186,0.0307859000,187,-0.0095953900,188,0.0089001600,189,0.0055727100,190,-0.0019100400,191,-0.0346620000,192,0.0111938000,193,0.0405381000,194,-0.0300316000,195,-0.0056282900,196,-0.0103986000,197,-0.0144105000,198,-0.0312517000,199,0.0213830000,200,0.0169661000,201,-0.0299792000,202,-0.0554460000,203,0.0057879000,204,-0.0299186000 +133,0,-1.2449400000,238,-1.0000000000,155,-0.8593830000,156,-0.0126657000,157,0.4320710000,158,0.0120954000,159,-0.0283267000,160,0.2832440000,161,-0.0403155000,162,0.1298190000,163,-0.3070920000,164,0.6585460000,165,-4.0544200000,166,0.8480290000,167,-0.5041100000,168,0.0269941000,169,0.0260739000,170,-0.8008330000,171,-2.4109900000,172,0.4160680000,173,1.0967300000,174,0.0627211000,175,-0.0304862000,176,0.0272485000,177,0.7923500000,178,-1.0951500000,179,0.0542424000,180,0.2647810000,181,0.0131793000,182,-0.4233960000,183,-0.0353980000,184,-0.0202485000,185,0.2681490000,186,0.0102010000,187,0.9901000000,188,-0.5575160000,189,-0.0359179000,190,1.0576900000,191,-0.0003692810,192,0.0385642000,193,-3.6051100000,194,-0.0098144100,195,-1.4939500000,196,-0.8619190000,197,-3.7879600000,198,0.0791061000,199,-0.2700200000,200,0.7013330000,201,0.9600300000,202,0.2662980000,203,0.8218630000,204,-0.1731340000 +134,0,0.0269434000,239,-1.0000000000,155,-0.2522660000,156,0.0193655000,157,1.6564900000,158,0.0606287000,159,-0.0033444400,160,1.1388900000,161,0.0520750000,162,0.7553320000,163,-1.7243300000,164,-0.2328950000,165,-1.4605600000,166,0.7351420000,167,0.3774190000,168,-0.0068041700,169,-0.0483524000,170,1.6365700000,171,-0.6691310000,172,-0.6268120000,173,-0.0116856000,174,0.0050832600,175,-0.0045524800,176,0.0141455000,177,-0.9931700000,178,1.4195600000,179,-0.3029150000,180,-1.3412400000,181,0.0148295000,182,-0.0112864000,183,0.0430482000,184,-0.0010790500,185,-0.5360150000,186,0.0160034000,187,2.3464400000,188,-1.5250000000,189,0.0201780000,190,-2.5091600000,191,-0.2229500000,192,0.0226987000,193,1.3112000000,194,0.0382048000,195,1.2193700000,196,0.4037810000,197,0.3065780000,198,1.8883900000,199,0.3585840000,200,-0.3916940000,201,0.6431120000,202,0.3385540000,203,-0.7832440000,204,0.3758700000 +135,0,0.3041160000,240,-1.0000000000,155,-1.4820400000,156,0.0166987000,157,-0.1924900000,158,0.0400202000,159,0.0050285200,160,0.1212520000,161,0.0090005300,162,-0.4956700000,163,-0.1645530000,164,0.5738330000,165,-0.4325730000,166,-0.1125070000,167,-0.2180860000,168,0.0352893000,169,-0.0019642400,170,0.3582480000,171,-1.0011800000,172,-0.6702760000,173,0.2290530000,174,0.0317365000,175,-0.0041162600,176,-0.0002611780,177,-0.5013500000,178,0.1338240000,179,0.3336380000,180,-2.8634000000,181,0.0107677000,182,0.2166580000,183,0.0379664000,184,0.0330295000,185,0.9866730000,186,-0.0421521000,187,-0.0385004000,188,0.9474250000,189,0.0362140000,190,0.4160730000,191,-0.1089930000,192,0.0460593000,193,0.5074820000,194,-0.0339160000,195,-0.2666300000,196,0.0385894000,197,-0.8193510000,198,0.0280704000,199,-0.0735458000,200,-0.0109395000,201,-0.3331390000,202,-1.4316700000,203,0.6994040000,204,0.0226225000 +136,0,1.5718200000,241,-1.0000000000,155,0.3550980000,156,-0.0213228000,157,-0.4309260000,158,-0.0322730000,159,0.0104291000,160,0.2314400000,161,0.0262975000,162,0.2643160000,163,0.1989690000,164,0.4831430000,165,2.2592400000,166,0.6377020000,167,-0.1702340000,168,-0.0114361000,169,0.0123998000,170,0.0609008000,171,-1.3960500000,172,-0.5241700000,173,0.2210230000,174,0.0403858000,175,-0.0427603000,176,0.0364521000,177,0.3159930000,178,0.2452190000,179,-0.4901410000,180,3.8914400000,181,0.0177357000,182,0.6150520000,183,0.0064953400,184,0.0019491300,185,0.2467310000,186,-0.0050592400,187,0.3224510000,188,1.6601700000,189,0.0433706000,190,-1.5167300000,191,0.0534732000,192,0.0276700000,193,1.1319600000,194,0.0360471000,195,0.1113250000,196,1.0889500000,197,-0.1098900000,198,0.2012840000,199,0.3104370000,200,-0.2212750000,201,0.8837420000,202,-0.2051770000,203,1.2033900000,204,-0.5223960000 +137,0,0.9679880000,242,-1.0000000000,155,1.2693700000,156,0.0282129000,157,2.2448300000,158,0.0009962780,159,-0.0396226000,160,-1.2363400000,161,0.0136564000,162,0.9967950000,163,0.3348780000,164,0.0502039000,165,0.5694780000,166,1.2636400000,167,0.1908810000,168,-0.0372433000,169,-0.0297730000,170,0.2585930000,171,0.4596740000,172,-1.5319900000,173,-0.0849287000,174,0.0056755100,175,-0.0090717200,176,-0.0299410000,177,0.4104160000,178,1.1979400000,179,0.7260380000,180,2.0019300000,181,0.0272134000,182,0.3229300000,183,-0.0178514000,184,0.0198094000,185,0.2715000000,186,-0.0108811000,187,1.6596200000,188,2.2096800000,189,0.0490604000,190,-3.3402000000,191,-0.3885170000,192,0.0036727400,193,0.4748520000,194,-0.0188523000,195,0.9863540000,196,-1.0561300000,197,2.4079100000,198,1.3552700000,199,1.4390700000,200,0.4447430000,201,1.8694300000,202,-0.1583570000,203,3.6269400000,204,0.3842680000 +138,0,0.3200410000,243,-1.0000000000,155,-0.4472610000,156,0.0365488000,157,0.3096420000,158,-0.0353632000,159,0.0211393000,160,-0.0382101000,161,0.0048231600,162,0.2110020000,163,0.1442370000,164,-0.5334840000,165,0.4478210000,166,-0.3619130000,167,0.0702600000,168,0.0258243000,169,-0.0447906000,170,-0.1553410000,171,0.3150610000,172,-0.7559750000,173,0.1030010000,174,0.0133919000,175,0.0168670000,176,-0.0059799600,177,0.1292370000,178,-0.2629220000,179,-0.1359690000,180,0.6905040000,181,-0.0232518000,182,-0.0683660000,183,0.0324541000,184,0.0004977370,185,0.0367909000,186,0.0076168400,187,-0.0908238000,188,0.3258500000,189,-0.0119725000,190,-0.8992480000,191,0.4847530000,192,-0.0082384900,193,-0.4240340000,194,-0.0096785400,195,-0.0025685200,196,0.0292708000,197,-0.0820145000,198,0.2414570000,199,-0.1903230000,200,-0.0342067000,201,0.0974530000,202,-0.0892657000,203,0.3959300000,204,-0.0375532000 +139,0,1.0801600000,244,-1.0000000000,155,0.8029360000,156,-0.0497385000,157,0.3878420000,158,-0.0161027000,159,0.0433459000,160,0.3249640000,161,-0.0227125000,162,0.2545590000,163,1.1148500000,164,0.0738612000,165,1.0922800000,166,-0.5099260000,167,-0.3299020000,168,-0.0099669400,169,-0.0177214000,170,-0.2401680000,171,-0.7736160000,172,-1.0728100000,173,0.2959490000,174,0.0341932000,175,-0.0404289000,176,-0.0369192000,177,0.5676320000,178,-0.2610840000,179,0.2963180000,180,0.8891350000,181,0.0060861900,182,0.2247700000,183,0.0277393000,184,0.0045343000,185,0.4942060000,186,0.0330653000,187,0.5543900000,188,0.4302110000,189,0.0368028000,190,-0.2172790000,191,0.0095929600,192,-0.0189066000,193,0.5176220000,194,-0.0126597000,195,-0.5756750000,196,1.7013400000,197,-1.0649000000,198,-0.0799528000,199,-0.4873140000,200,-0.5444800000,201,0.6736340000,202,0.1918110000,203,0.6766150000,204,0.0748037000 +140,0,0.1613650000,245,-1.0000000000,155,1.4475000000,156,-0.0128324000,157,0.5221130000,158,0.0000517776,159,0.0493227000,160,-0.4286980000,161,0.0050954200,162,0.8059450000,163,0.1449200000,164,-0.5453460000,165,0.4964830000,166,0.1650620000,167,0.2693460000,168,-0.0356721000,169,0.0064910100,170,-0.0595493000,171,0.8895880000,172,-0.1025430000,173,0.0150972000,174,-0.0119205000,175,0.0074817400,176,-0.0429926000,177,0.1875680000,178,0.1582350000,179,-0.8381840000,180,-0.3652170000,181,0.0104636000,182,0.2618310000,183,-0.0599430000,184,0.0105119000,185,0.8785970000,186,0.0406933000,187,0.1895350000,188,0.0071096100,189,-0.0129670000,190,-0.6893150000,191,0.1968960000,192,-0.0344022000,193,-0.3620020000,194,0.0095018500,195,-0.0893508000,196,-0.5091290000,197,-0.6755040000,198,0.2291500000,199,-0.3207110000,200,-0.1705530000,201,0.1967750000,202,0.0558635000,203,0.8702570000,204,-0.1574150000 +141,0,1.0039700000,246,-1.0000000000,155,1.8133100000,156,0.0038927200,157,-0.1663720000,158,-0.0204655000,159,-0.0357240000,160,0.1446250000,161,-0.0605570000,162,0.4581350000,163,-0.4139330000,164,-0.0856018000,165,-0.0260763000,166,0.1878080000,167,-0.1818260000,168,-0.0462756000,169,0.0267946000,170,0.0518698000,171,0.3404610000,172,0.0277427000,173,-0.0161920000,174,0.0453992000,175,0.0019168900,176,-0.0166392000,177,-0.0859235000,178,-0.4459090000,179,-0.2028740000,180,1.7906100000,181,-0.0340507000,182,0.2157800000,183,-0.0148441000,184,-0.0195055000,185,-1.6049000000,186,0.0296322000,187,-0.1731210000,188,0.2667150000,189,-0.0333093000,190,0.1326120000,191,0.8985040000,192,0.0270411000,193,-2.2660700000,194,0.0368456000,195,0.1807120000,196,1.1127100000,197,0.8152140000,198,-0.3387360000,199,0.9712530000,200,0.3525770000,201,-0.2135740000,202,-0.1319450000,203,-0.4073450000,204,-3.3004900000 +142,0,0.7734850000,247,-1.0000000000,155,-0.1590360000,156,-0.0277358000,157,0.6661210000,158,0.0406231000,159,0.0417796000,160,0.1168170000,161,0.0164570000,162,1.2633000000,163,-0.8398470000,164,0.5896060000,165,-0.1870550000,166,1.5318300000,167,-0.5441070000,168,0.0061244300,169,-0.0224203000,170,0.7141670000,171,0.9611710000,172,0.2166850000,173,-0.6655150000,174,-0.0287002000,175,0.0115198000,176,-0.0467119000,177,0.6004320000,178,0.7036770000,179,-0.4887790000,180,0.4557940000,181,-0.0415102000,182,0.0724735000,183,0.0400007000,184,-0.0248588000,185,-0.0039161400,186,0.0266289000,187,0.5234080000,188,-1.6175200000,189,0.0427294000,190,0.4295810000,191,-0.0312059000,192,-0.0213305000,193,0.4684560000,194,0.0228420000,195,1.3359800000,196,-0.3464110000,197,-0.2819310000,198,0.7244710000,199,-0.0052546400,200,0.1159080000,201,0.3113410000,202,0.4712930000,203,0.0119542000,204,0.4857150000 +143,0,0.0039440400,248,-1.0000000000,155,-0.0267952000,156,0.0376265000,157,-0.0196881000,158,-0.0366720000,159,-0.0222114000,160,0.0240227000,161,-0.0414115000,162,0.0151347000,163,-0.0322124000,164,0.0224886000,165,-0.0146787000,166,-0.0058259700,167,-0.0098961600,168,0.0277267000,169,0.0038321600,170,-0.0403300000,171,-0.0365338000,172,0.0163344000,173,0.0308484000,174,-0.0172694000,175,-0.0114017000,176,-0.0052875500,177,-0.0095043200,178,-0.0084253200,179,-0.0287924000,180,-0.0399208000,181,-0.0085798800,182,-0.0434862000,183,-0.0177970000,184,0.0267927000,185,0.0189850000,186,-0.0459150000,187,-0.0325865000,188,0.0148516000,189,-0.0514883000,190,-0.0277189000,191,-0.0285727000,192,-0.0504710000,193,-0.0043717000,194,-0.0109162000,195,-0.0243239000,196,0.0346684000,197,-0.0050597600,198,-0.0112502000,199,-0.0335001000,200,-0.0338555000,201,0.0007796590,202,-0.0544346000,203,0.0356798000,204,-0.0386339000 +144,0,-0.7280980000,249,-1.0000000000,155,1.0474700000,156,0.0002733220,157,0.5590640000,158,0.0352199000,159,0.0328747000,160,-0.3094530000,161,0.0204232000,162,-0.1078330000,163,0.2515630000,164,0.2665230000,165,-0.1712930000,166,-0.1657820000,167,0.1107810000,168,-0.0060259500,169,-0.0047278500,170,0.4287910000,171,-0.3945200000,172,1.1207500000,173,0.2959720000,174,0.0331738000,175,-0.0174885000,176,-0.0132529000,177,0.0340867000,178,0.4696310000,179,0.1516490000,180,-0.4133210000,181,-0.0357887000,182,0.1306070000,183,-0.0386920000,184,0.0310911000,185,0.3266410000,186,-0.0072977000,187,0.0020411600,188,-0.3247130000,189,0.0231715000,190,0.2963240000,191,-0.2772880000,192,0.0281946000,193,0.3044940000,194,0.0086098500,195,0.2684110000,196,0.6860540000,197,0.2591470000,198,-0.1610900000,199,-1.3937700000,200,0.1360910000,201,-0.3024590000,202,-0.3534780000,203,0.5655510000,204,0.0848469000 +145,0,0.7657860000,250,-1.0000000000,155,1.0796100000,156,-0.0325368000,157,0.9065360000,158,-0.0108686000,159,-0.0351639000,160,0.1205810000,161,0.0620970000,162,1.4607100000,163,-0.8653150000,164,0.0876340000,165,-2.1924900000,166,0.4936420000,167,0.0399590000,168,0.0041422500,169,0.0042125900,170,0.1843210000,171,-1.3108400000,172,0.5774410000,173,0.5395830000,174,0.0101449000,175,0.0269755000,176,0.0094549800,177,0.8486010000,178,0.0614907000,179,-0.3080750000,180,0.3944650000,181,-0.0124293000,182,-0.2550170000,183,-0.0170189000,184,0.0451681000,185,0.8714970000,186,0.0223840000,187,0.0485294000,188,-0.9909830000,189,0.0297796000,190,0.8170860000,191,-0.2456050000,192,0.0194275000,193,-4.7521500000,194,-0.0445894000,195,-0.1966570000,196,-0.2913060000,197,0.5278060000,198,0.1735640000,199,0.2410400000,200,0.1186490000,201,0.4634160000,202,0.1416320000,203,0.3470450000,204,-0.4538190000 +146,0,0.6606320000,251,-1.0000000000,155,1.4673400000,156,-0.0097891400,157,-0.2035990000,158,0.0193949000,159,-0.0244747000,160,-0.2777850000,161,0.0094142400,162,0.3473790000,163,-0.5041170000,164,0.7363400000,165,-2.0382900000,166,0.0380053000,167,-0.0587207000,168,-0.0051688200,169,-0.0364506000,170,-0.6191690000,171,0.4668710000,172,1.5391300000,173,0.2551770000,174,0.0393183000,175,-0.0177028000,176,0.0215068000,177,-0.3709270000,178,0.5376460000,179,0.1844970000,180,1.4614400000,181,0.0161741000,182,-0.1948190000,183,0.0195406000,184,-0.0278120000,185,0.8255620000,186,-0.0032020200,187,-0.1539210000,188,0.2090390000,189,-0.0217657000,190,1.8827000000,191,0.6133600000,192,0.0244890000,193,-1.7994400000,194,-0.0478587000,195,-0.3342070000,196,0.0507328000,197,0.9572650000,198,0.2954100000,199,-0.6265970000,200,-0.2966950000,201,1.3134200000,202,0.0613637000,203,3.0725400000,204,0.0544793000 +147,0,1.2081600000,252,-1.0000000000,155,0.4515350000,156,-0.0223355000,157,0.1477280000,158,-0.0114824000,159,-0.0001269420,160,0.5308620000,161,-0.0185028000,162,0.1307260000,163,-1.6342700000,164,0.2570370000,165,-0.0241573000,166,0.0439244000,167,-0.2749370000,168,-0.0082819900,169,0.0625227000,170,0.5280230000,171,-0.1766630000,172,0.3590970000,173,0.6243690000,174,0.0488898000,175,-0.0285654000,176,0.0230356000,177,0.4789420000,178,0.0537900000,179,0.2857970000,180,-2.5374700000,181,0.0488113000,182,-0.5087160000,183,0.0193391000,184,-0.0164779000,185,-0.4751890000,186,-0.0383834000,187,-0.1659760000,188,1.0590900000,189,0.0225234000,190,0.4316840000,191,0.6960780000,192,-0.0281781000,193,-2.3882400000,194,-0.0182861000,195,0.7985770000,196,-0.2453840000,197,-2.1808700000,198,0.5687760000,199,0.0778185000,200,-0.2526950000,201,-0.3152370000,202,0.2618100000,203,-0.7445100000,204,-2.0115100000 +148,0,0.1772340000,253,-1.0000000000,155,0.2182650000,156,-0.0011385800,157,0.9887140000,158,-0.0012001300,159,-0.0025133200,160,-0.1892740000,161,0.0086163600,162,-1.2896700000,163,-0.2794750000,164,-0.2898770000,165,0.5370430000,166,1.1167000000,167,-0.0196211000,168,-0.0205726000,169,-0.0291058000,170,1.2666400000,171,0.2528040000,172,1.0138800000,173,1.1681200000,174,0.0367981000,175,0.0405366000,176,-0.0401237000,177,-0.4187970000,178,1.3861600000,179,-1.0145500000,180,0.9716430000,181,-0.0338598000,182,0.4215990000,183,0.0342334000,184,0.0414496000,185,0.7824090000,186,0.0343106000,187,-0.2992600000,188,-0.1975190000,189,-0.0118690000,190,1.3662400000,191,0.0997969000,192,-0.0114434000,193,0.7616520000,194,-0.0369613000,195,-0.2844990000,196,-0.1659920000,197,1.6866000000,198,0.6380220000,199,0.4635100000,200,0.3319180000,201,0.1911790000,202,0.2556020000,203,0.5799980000,204,-1.4795300000 +149,0,2.9902000000,254,-1.0000000000,155,0.8700850000,156,0.0214916000,157,0.9575110000,158,-0.0008811920,159,0.0244412000,160,0.2474860000,161,0.0061466100,162,0.3762870000,163,-0.3882480000,164,-0.1698240000,165,0.5779190000,166,-1.3689200000,167,0.4645740000,168,-0.0063072300,169,0.0429903000,170,0.4296210000,171,-0.4975410000,172,0.5528750000,173,1.4120600000,174,0.0145010000,175,-0.0033401100,176,-0.0493676000,177,-0.1414280000,178,-0.3508890000,179,-0.5622140000,180,1.0287700000,181,0.0265291000,182,0.3347430000,183,-0.0444388000,184,-0.0131430000,185,-0.7859270000,186,-0.0337114000,187,0.6121830000,188,-1.8302000000,189,0.0327279000,190,2.8512500000,191,-0.5249250000,192,0.0024637300,193,2.3377000000,194,0.0176466000,195,0.4236230000,196,1.5148800000,197,-6.9404600000,198,-0.2317230000,199,-0.7134570000,200,0.0631144000,201,0.8748580000,202,-1.6602300000,203,0.4959460000,204,0.6526700000 +150,0,4.7584000000,305,-1.0000000000,255,-0.6509820000,256,-0.0417225000,257,-0.6803760000,258,1.6505600000,259,0.6988530000,260,1.0328100000,261,1.6828500000,262,-0.2500670000,263,0.0343427000,264,1.1625600000,265,-1.2806600000,266,0.3693280000,267,2.1733900000,268,0.0787768000,269,-0.0798795000,270,2.4480500000,271,1.0561600000,272,-0.0987851000,273,0.5073110000,274,-0.2446290000,275,-0.0118565000,276,0.9072970000,277,-0.1629640000,278,1.6029700000,279,1.7935500000,280,0.6311820000,281,4.3398700000,282,-0.0126680000,283,3.7772100000,284,1.8557800000,285,1.1343900000,286,-0.6034760000,287,-0.0221352000,288,0.1023680000,289,-0.3460070000,290,0.4166240000,291,0.8618760000,292,-0.1123410000,293,0.2863640000,294,1.0457800000,295,2.5291300000,296,0.1408680000,297,-0.5443580000,298,0.0396355000,299,-0.0660024000,300,0.5435100000,301,-0.1802510000,302,1.6986300000,303,0.9738310000,304,4.4089500000 +151,0,-0.3795830000,306,-1.0000000000,255,-4.1244300000,256,0.2551600000,257,2.0769400000,258,-1.7272200000,259,0.3513020000,260,-1.9587800000,261,-0.2700420000,262,-1.4223500000,263,-0.0148396000,264,-3.2293900000,265,-0.4182770000,266,-2.8021600000,267,-0.5590160000,268,1.1534700000,269,0.6333820000,270,-0.2570960000,271,-1.1182400000,272,0.5205760000,273,0.4005790000,274,-0.3529630000,275,0.0796850000,276,0.5977750000,277,-0.4297210000,278,1.3645000000,279,0.0757154000,280,-1.0043800000,281,-0.1166010000,282,0.0041265500,283,-1.6781700000,284,-0.0931312000,285,2.7543700000,286,-0.1524570000,287,0.0078446400,288,-0.7071890000,289,-0.1723450000,290,0.6574420000,291,-0.4163910000,292,0.2329460000,293,-1.7961300000,294,-1.4061600000,295,-1.8080200000,296,-0.0582886000,297,-0.1001390000,298,-0.0278726000,299,0.6348920000,300,0.5887180000,301,0.4281030000,302,-1.8125600000,303,-1.2849100000,304,0.3564410000 +152,0,0.5069980000,307,-1.0000000000,255,1.3708900000,256,-1.1909800000,257,-1.6301700000,258,0.5307350000,259,0.1733170000,260,0.4672040000,261,0.7827370000,262,-1.1327300000,263,0.0254184000,264,0.0485133000,265,0.6170500000,266,0.4412220000,267,2.0731200000,268,0.0897858000,269,0.3111530000,270,0.7162180000,271,0.2511690000,272,0.7890810000,273,1.4013900000,274,0.2464370000,275,0.0175983000,276,0.3877040000,277,-0.5746150000,278,2.5661900000,279,-0.2537120000,280,0.7137130000,281,0.2079370000,282,0.0134665000,283,0.0138385000,284,0.3114120000,285,1.6043900000,286,-0.0162573000,287,0.0307991000,288,0.2668860000,289,-0.7878110000,290,-0.3458530000,291,0.0192652000,292,0.1355000000,293,1.8560700000,294,-0.6768290000,295,0.9455550000,296,0.1780010000,297,-0.4270640000,298,0.0192785000,299,0.0507329000,300,3.3573200000,301,0.0646457000,302,0.6149800000,303,0.1328640000,304,0.3670880000 +153,0,-1.0908500000,308,-1.0000000000,255,5.0484500000,256,0.0757190000,257,-0.7047000000,258,-0.1021150000,259,-0.2183140000,260,3.4298700000,261,2.0055800000,262,0.2401310000,263,-0.0312282000,264,-1.9379000000,265,-0.0584638000,266,-0.5035850000,267,3.7908000000,268,0.6533390000,269,0.1403060000,270,1.4246300000,271,0.8561300000,272,1.3480500000,273,2.0272500000,274,0.6090230000,275,-0.0483092000,276,0.8030660000,277,0.3125140000,278,-0.9960830000,279,-0.2904590000,280,1.0881200000,281,1.2487500000,282,-0.0165807000,283,1.3846900000,284,0.1130960000,285,3.3009800000,286,-0.5671690000,287,0.0186813000,288,-0.4484280000,289,-0.4300380000,290,0.6875360000,291,2.3673000000,292,-0.5461870000,293,-0.5968500000,294,0.7255910000,295,0.3004760000,296,0.4283610000,297,-1.2502500000,298,0.0243333000,299,1.1825500000,300,2.9923900000,301,0.6643900000,302,1.5946500000,303,-0.1661730000,304,0.8242080000 +154,0,1.4955700000,309,-1.0000000000,255,4.3763200000,256,-0.6488660000,257,-0.9985730000,258,1.7208100000,259,-2.6098400000,260,2.6682300000,261,-0.4991140000,262,2.3128200000,263,0.0508448000,264,1.1449400000,265,2.0155200000,266,0.2237890000,267,2.4079100000,268,4.2519400000,269,0.0453089000,270,1.1886400000,271,0.1696480000,272,0.9260310000,273,2.3178900000,274,-0.0562839000,275,0.0037156600,276,0.8928410000,277,-0.9130570000,278,-1.9938900000,279,1.7874700000,280,1.5392600000,281,1.1392000000,282,0.0059222700,283,1.3640700000,284,1.2955900000,285,1.6545000000,286,-0.4179430000,287,-0.0196260000,288,0.4631440000,289,0.1814420000,290,2.3377000000,291,0.6685410000,292,-0.5066640000,293,1.2556800000,294,2.3648300000,295,1.6557800000,296,0.9969790000,297,-2.2837300000,298,-0.0398267000,299,-0.8630870000,300,-0.5493330000,301,0.5949210000,302,1.2329500000,303,-0.4276600000,304,2.1014600000 +155,0,-1.2143300000,310,-1.0000000000,255,-2.4192500000,256,-0.0903920000,257,0.1247800000,258,-0.2478670000,259,0.4768740000,260,-0.4360020000,261,-1.1146300000,262,-0.0762905000,263,0.0380901000,264,0.2643630000,265,1.0410900000,266,-1.5149700000,267,-0.7779850000,268,-0.8324600000,269,0.8843510000,270,-1.3741700000,271,0.1880470000,272,-0.7622680000,273,-0.9638950000,274,-0.6105580000,275,-0.0126729000,276,-2.4380900000,277,0.1500020000,278,-0.6594790000,279,0.0269902000,280,-0.5824470000,281,1.6001300000,282,0.0338691000,283,-0.1068930000,284,-0.0668958000,285,2.2723200000,286,-0.1535600000,287,-0.0504301000,288,-0.5777450000,289,-0.0069997900,290,-1.4128600000,291,0.8928880000,292,0.2939080000,293,-0.4716160000,294,-0.6726780000,295,-2.4413400000,296,-1.7504200000,297,0.1134520000,298,0.0371840000,299,1.2421000000,300,-1.8513600000,301,0.3144880000,302,-1.6889100000,303,-0.6743170000,304,-1.0321400000 +156,0,-0.4914230000,311,-1.0000000000,255,4.3450800000,256,0.0975116000,257,0.0412786000,258,-0.2072120000,259,-0.1933750000,260,-1.0185700000,261,0.2692690000,262,-0.0756508000,263,0.0645846000,264,-0.4120030000,265,0.3263070000,266,0.9248650000,267,-0.1219520000,268,0.4534850000,269,-0.1106160000,270,0.3436270000,271,0.0229403000,272,0.1660730000,273,0.7411000000,274,-0.0169800000,275,-0.0499072000,276,0.3531860000,277,-0.3139010000,278,-0.6850890000,279,-0.2279710000,280,0.3804360000,281,-1.0562400000,282,0.0070785000,283,0.3734040000,284,0.0071639300,285,0.1720990000,286,-0.0097496300,287,-0.0443811000,288,-0.3241250000,289,0.2639400000,290,1.0184600000,291,-0.2208990000,292,-0.1813340000,293,0.4139270000,294,0.4683210000,295,1.0456800000,296,0.0722846000,297,-0.3077830000,298,0.0355248000,299,0.0741906000,300,0.4094960000,301,-0.4766960000,302,0.3532140000,303,0.1126920000,304,-0.3682440000 +157,0,-1.9548500000,312,-1.0000000000,255,-1.1791500000,256,-0.5910990000,257,0.2287440000,258,-0.4070710000,259,0.1324320000,260,1.9868600000,261,-0.1685760000,262,0.3011690000,263,0.0391662000,264,0.2957660000,265,0.5819550000,266,-2.3939800000,267,0.5922520000,268,0.2897100000,269,-0.5527790000,270,-0.9859410000,271,-0.6871840000,272,0.6301090000,273,1.7386800000,274,0.0876477000,275,0.0152197000,276,-0.1788110000,277,-0.0251583000,278,-1.2419800000,279,0.3018220000,280,0.8018550000,281,1.0958200000,282,0.0402892000,283,-0.6626650000,284,0.0217396000,285,0.2781870000,286,-0.0040052100,287,-0.0538557000,288,0.1495070000,289,-0.1733160000,290,0.8748150000,291,0.4898770000,292,-0.1515280000,293,-0.5815110000,294,-0.1806880000,295,-0.2159110000,296,-0.2232350000,297,0.2782320000,298,-0.0482445000,299,-0.3559050000,300,0.2288930000,301,-0.0354494000,302,-0.2082180000,303,0.8710670000,304,0.3370460000 +158,0,0.3772450000,313,-1.0000000000,255,1.5506000000,256,-1.5647300000,257,0.8476760000,258,-0.9708170000,259,-1.7476800000,260,0.4854170000,261,-1.5356300000,262,1.3953500000,263,-0.0171853000,264,0.7970480000,265,0.8181120000,266,0.2139430000,267,0.3289840000,268,0.1338580000,269,-0.5456770000,270,-0.6001280000,271,0.6992910000,272,-4.6231600000,273,-1.4098100000,274,0.2581560000,275,-0.0468441000,276,-0.2729200000,277,0.7404470000,278,0.5058090000,279,0.6095860000,280,-0.7288820000,281,0.5708030000,282,0.0255399000,283,-0.1005590000,284,-1.5364900000,285,-2.6949200000,286,-0.5303320000,287,0.0367815000,288,0.9225520000,289,-0.1309850000,290,2.0816500000,291,-0.5616210000,292,-0.5370330000,293,0.5163410000,294,1.6000500000,295,0.2616820000,296,0.9708860000,297,-0.1482940000,298,0.0303438000,299,-0.2664910000,300,-1.1380700000,301,0.3073220000,302,0.7341310000,303,-0.4339070000,304,0.9492390000 +159,0,1.7761400000,314,-1.0000000000,255,0.4515720000,256,1.0258000000,257,2.4370800000,258,0.8047650000,259,1.6518200000,260,-2.5093800000,261,1.4689700000,262,0.0472676000,263,-0.0153098000,264,-1.6253500000,265,-1.3336100000,266,-1.8982300000,267,-0.8424230000,268,-4.7651300000,269,-0.6883140000,270,-2.8292500000,271,-7.2484600000,272,-3.8634900000,273,-1.4562100000,274,0.6769610000,275,-0.0467416000,276,-1.8685100000,277,-2.0984600000,278,-2.0596700000,279,-1.6016500000,280,0.6572050000,281,-6.2213500000,282,0.0235550000,283,-1.0342300000,284,1.6237000000,285,2.8799000000,286,0.9272510000,287,-0.0028480500,288,0.0703029000,289,0.4178330000,290,0.0246488000,291,-2.1215700000,292,0.1297530000,293,-2.7856500000,294,0.9852410000,295,-5.9586000000,296,-0.1188040000,297,0.4857350000,298,0.0324915000,299,-1.6703700000,300,1.2786500000,301,-4.2413700000,302,-1.0846100000,303,0.9242340000,304,-2.1623200000 +160,0,1.0422800000,315,-1.0000000000,255,0.3967740000,256,0.3811750000,257,-0.1499170000,258,0.1543020000,259,-1.4693500000,260,-0.4143140000,261,-1.1010600000,262,-0.1031840000,263,-0.0359315000,264,-0.2893740000,265,-0.0497308000,266,0.4924400000,267,0.6400650000,268,0.5764260000,269,0.0317806000,270,1.2532800000,271,-1.3020900000,272,1.1982500000,273,0.1043460000,274,-0.4309780000,275,-0.0084675500,276,0.5603830000,277,0.1389200000,278,0.5347870000,279,-1.4018500000,280,0.0078426200,281,1.4295800000,282,-0.0175965000,283,-1.0100700000,284,-0.0813111000,285,-3.1876600000,286,-0.1095260000,287,0.0340625000,288,0.7536970000,289,0.2855250000,290,-1.4510500000,291,-0.7713480000,292,0.0820128000,293,1.8957100000,294,-0.8821730000,295,-1.2597300000,296,-1.5868800000,297,-0.4181970000,298,0.0468388000,299,0.0496747000,300,-0.3575330000,301,-0.0094646100,302,-0.2786540000,303,0.3516590000,304,0.4135720000 +161,0,-2.0903200000,316,-1.0000000000,255,2.2218400000,256,-0.0633728000,257,-1.0539500000,258,0.2871230000,259,0.3755410000,260,0.9882660000,261,0.2819530000,262,0.2474530000,263,0.0537694000,264,0.1740010000,265,1.4424500000,266,0.7755050000,267,1.5304800000,268,1.4978300000,269,-0.2603080000,270,-0.7869820000,271,1.8698100000,272,0.3056230000,273,3.5188300000,274,0.8081940000,275,0.0075033100,276,0.1244270000,277,-0.7270930000,278,-2.5204200000,279,1.4633000000,280,2.5075900000,281,0.3235520000,282,0.0096197900,283,3.1460800000,284,0.0929626000,285,0.7794310000,286,-0.4117910000,287,-0.0160007000,288,-0.5983640000,289,-0.4557510000,290,-0.2844550000,291,0.3394770000,292,-0.5677000000,293,2.0704700000,294,1.8320400000,295,1.4195200000,296,0.9943690000,297,-0.4917260000,298,-0.0116222000,299,1.1760500000,300,2.1004400000,301,0.0635298000,302,1.2610600000,303,0.5478580000,304,0.6453930000 +162,0,4.3212800000,317,-1.0000000000,255,1.6851900000,256,0.4372530000,257,1.6994200000,258,-2.5080900000,259,-1.7217600000,260,-4.5717600000,261,2.2966700000,262,-2.0615700000,263,0.0270495000,264,0.4462110000,265,-0.6029370000,266,-1.5362900000,267,-1.9044300000,268,0.1359260000,269,-2.1762800000,270,0.0844596000,271,-1.0633100000,272,0.4886390000,273,-1.4363800000,274,-1.0941500000,275,-0.0190159000,276,0.0245721000,277,2.0648900000,278,-0.5920990000,279,-0.7169790000,280,1.8261100000,281,1.1918000000,282,-0.0279448000,283,-1.8278500000,284,-0.1212190000,285,1.5007300000,286,0.3215290000,287,0.0173010000,288,1.6002400000,289,-0.2750120000,290,-0.4621850000,291,-1.0782300000,292,0.8388220000,293,-2.4636500000,294,-1.5156100000,295,-0.5233360000,296,0.1059610000,297,1.0313900000,298,-0.0315790000,299,-1.6402300000,300,-1.5502600000,301,1.5201800000,302,-0.3070610000,303,-1.2498900000,304,0.6605560000 +163,0,-1.0227900000,318,-1.0000000000,255,0.5813880000,256,-0.5569660000,257,-1.6312600000,258,0.7804030000,259,0.3464900000,260,0.6650440000,261,-0.3561550000,262,1.5204200000,263,0.0314123000,264,-0.6461540000,265,0.4974060000,266,-0.3792220000,267,2.1464000000,268,1.0296700000,269,0.7497900000,270,0.7188150000,271,1.7096200000,272,-0.0738625000,273,0.3418090000,274,-0.3501500000,275,0.0462775000,276,-2.2948900000,277,-0.5965930000,278,-1.8316600000,279,0.6810350000,280,1.1911400000,281,-0.4724050000,282,-0.0391719000,283,-2.4163400000,284,0.7732730000,285,-0.9742370000,286,-0.3421680000,287,0.0124690000,288,-0.3605230000,289,-0.3310610000,290,2.1586400000,291,2.0875500000,292,-0.4772390000,293,1.7994100000,294,2.6385000000,295,0.3633410000,296,0.2536440000,297,0.9281350000,298,0.0135109000,299,2.1005600000,300,-0.9749020000,301,0.3917270000,302,0.2399080000,303,-0.7261310000,304,0.0868946000 +164,0,0.0068899100,319,-1.0000000000,255,0.0259065000,256,-0.0230395000,257,-0.0486511000,258,-0.0149563000,259,-0.0325140000,260,-0.0434610000,261,-0.0421068000,262,-0.0369628000,263,-0.0153959000,264,-0.0430161000,265,-0.0339548000,266,0.0465788000,267,-0.0450510000,268,-0.0275969000,269,-0.0459276000,270,-0.0207556000,271,0.0021029400,272,0.0235329000,273,0.0080196300,274,-0.0151794000,275,0.0003439210,276,-0.0241164000,277,-0.0262574000,278,-0.0043743900,279,0.0449733000,280,0.0383695000,281,0.0065098300,282,-0.0279623000,283,-0.0331953000,284,-0.0014523900,285,0.0083326500,286,-0.0507065000,287,0.0115486000,288,-0.0208285000,289,0.0292320000,290,-0.0249848000,291,-0.0359345000,292,-0.0565213000,293,-0.0389667000,294,0.0191428000,295,-0.0195249000,296,0.0166261000,297,0.0066462200,298,-0.0085687200,299,-0.0407573000,300,-0.0382097000,301,0.0081997600,302,-0.0543230000,303,0.0159370000,304,0.0379835000 +165,0,-0.2351830000,320,-1.0000000000,255,0.3313120000,256,0.2430390000,257,-0.3536060000,258,-0.2691320000,259,-0.6753850000,260,1.0929500000,261,0.3328750000,262,0.4264120000,263,-0.0151788000,264,-1.3080900000,265,0.0970987000,266,0.6232430000,267,1.5172200000,268,-1.0699900000,269,1.1798600000,270,-1.8392200000,271,1.6279400000,272,0.7435890000,273,-1.6371500000,274,-0.2996150000,275,0.0281223000,276,1.1119000000,277,0.4524460000,278,-0.7560440000,279,-1.1479500000,280,-0.8747990000,281,-2.9309600000,282,-0.0083885400,283,0.0493935000,284,0.7539650000,285,-0.3954150000,286,-0.1835530000,287,0.0303549000,288,-1.7065800000,289,-0.9216340000,290,0.5440490000,291,1.0602800000,292,0.5177230000,293,-0.2475320000,294,0.6679110000,295,0.4157680000,296,-0.1784800000,297,-1.9217900000,298,-0.0406144000,299,0.5496120000,300,0.1388500000,301,0.8669080000,302,-0.7159080000,303,-1.1747700000,304,1.3713800000 +166,0,-1.3316100000,321,-1.0000000000,255,0.0120975000,256,1.2126600000,257,1.3989900000,258,-2.5677000000,259,0.5565910000,260,-3.2681100000,261,0.0919848000,262,-1.1065800000,263,0.0287558000,264,-2.0331600000,265,-2.3031600000,266,-5.3515700000,267,-0.8993370000,268,-2.6761500000,269,-1.8202400000,270,-2.4643800000,271,1.2380000000,272,-0.1080020000,273,-2.7832300000,274,0.8290470000,275,-0.0097614100,276,-1.5108800000,277,-3.9103700000,278,-0.7567510000,279,-0.8127340000,280,0.3606070000,281,-5.6083300000,282,0.0359551000,283,-0.8901680000,284,-0.4198480000,285,-5.1680200000,286,-1.3734800000,287,-0.0222492000,288,-1.7409700000,289,0.5322370000,290,-4.7735600000,291,-3.8292400000,292,0.2526450000,293,-3.4838100000,294,-4.3445300000,295,-2.7294600000,296,-1.1851500000,297,0.7763080000,298,0.0343659000,299,-3.1599000000,300,-1.1895500000,301,-4.0054700000,302,-0.7336150000,303,-0.5421000000,304,-2.6090300000 +167,0,2.9271600000,322,-1.0000000000,255,0.4924240000,256,-0.4877730000,257,-0.3281210000,258,1.4773500000,259,-2.0941600000,260,1.2901500000,261,2.1741600000,262,-0.1236810000,263,-0.0381468000,264,1.6107500000,265,-0.3597020000,266,1.8130900000,267,2.2821000000,268,2.5703900000,269,0.1285820000,270,2.4978400000,271,-0.1489520000,272,0.4105150000,273,0.9825150000,274,0.0517608000,275,-0.0150419000,276,0.3580640000,277,-0.3816530000,278,1.0332600000,279,2.7052600000,280,1.2963900000,281,3.1644300000,282,0.0182379000,283,2.5046300000,284,-0.8974390000,285,2.9825000000,286,-0.3569140000,287,-0.0214390000,288,0.3276730000,289,-0.1808150000,290,2.7761500000,291,0.8147670000,292,-0.4479560000,293,1.1025800000,294,0.5649550000,295,0.6196380000,296,0.2167060000,297,-0.5216820000,298,0.0117819000,299,-0.9183930000,300,2.0575100000,301,0.2260400000,302,-0.0766932000,303,-0.0797131000,304,-4.0043100000 +168,0,-0.7637960000,323,-1.0000000000,255,-4.2896500000,256,-0.4726710000,257,0.1172760000,258,-1.1720500000,259,-0.4073490000,260,2.3617200000,261,0.6178340000,262,-0.9020800000,263,-0.0163536000,264,-0.3774270000,265,-0.1782960000,266,1.0360200000,267,0.5252210000,268,1.0750900000,269,0.1872890000,270,-0.8671680000,271,0.6765890000,272,-0.0868711000,273,-0.7476460000,274,-0.4505490000,275,0.0010049800,276,1.5345100000,277,-0.3530670000,278,1.4827000000,279,-0.2183400000,280,0.0223306000,281,1.6004200000,282,-0.0237797000,283,-1.3373000000,284,1.0254800000,285,-1.1575100000,286,0.1519750000,287,0.0449266000,288,0.3135180000,289,0.1894330000,290,1.7511500000,291,0.6054810000,292,-0.4412710000,293,2.0614900000,294,-0.3139050000,295,0.0600540000,296,0.1901030000,297,-0.5700680000,298,-0.0267950000,299,0.2343780000,300,1.4106000000,301,-0.3039150000,302,0.0885083000,303,-0.2337040000,304,0.3117520000 +169,0,0.3558960000,324,-1.0000000000,255,0.3140580000,256,-0.0834449000,257,-0.0704626000,258,0.0830612000,259,-0.4027560000,260,-0.5660570000,261,0.2073000000,262,0.0341248000,263,0.0242819000,264,-0.4158130000,265,0.4290610000,266,0.3137780000,267,-0.2266440000,268,-0.6064920000,269,-0.0255394000,270,-0.2074480000,271,-0.5531990000,272,0.0989128000,273,0.7728950000,274,-0.0861113000,275,-0.0428852000,276,-0.6827190000,277,-0.0143760000,278,-0.5049960000,279,-0.4405880000,280,-0.7576600000,281,-0.4039950000,282,0.0268880000,283,0.8823520000,284,0.3413940000,285,-0.5347850000,286,0.0568106000,287,0.0361896000,288,-0.1889350000,289,-0.1005570000,290,0.3885250000,291,-0.0815569000,292,0.2322410000,293,0.3286400000,294,-0.8499190000,295,-0.4161140000,296,0.0745622000,297,-0.0353406000,298,0.0156516000,299,-0.1559850000,300,-0.5828950000,301,0.0391505000,302,-0.3261010000,303,0.1539420000,304,-1.4047500000 +170,0,3.2907000000,325,-1.0000000000,255,4.5496900000,256,2.0140100000,257,1.3711700000,258,-1.0986200000,259,-1.1006100000,260,-2.4959300000,261,-2.7123100000,262,-1.7615800000,263,0.0323478000,264,-1.2660500000,265,-1.6905300000,266,0.8807300000,267,-2.2165500000,268,-0.6844210000,269,-0.6113660000,270,-0.5410510000,271,-1.3113500000,272,-2.0312100000,273,-1.7837700000,274,-1.7136200000,275,-0.0492552000,276,-1.0452800000,277,2.3525400000,278,-0.2564260000,279,-0.9080610000,280,0.6757700000,281,-2.9875000000,282,-0.0425384000,283,1.0545800000,284,-2.1849900000,285,-4.7371800000,286,0.4900360000,287,0.0205963000,288,-0.3970540000,289,0.0947106000,290,0.0340095000,291,-1.5012400000,292,1.3316500000,293,-2.5794000000,294,-0.2589480000,295,-1.5110800000,296,-3.8137300000,297,-0.2028300000,298,0.0260196000,299,-2.2229600000,300,1.1139600000,301,-0.8201310000,302,-3.5451000000,303,0.1125220000,304,-1.2497700000 +171,0,0.0240154000,326,-1.0000000000,255,1.4323500000,256,-0.2956860000,257,-0.7806040000,258,1.0769900000,259,1.0162700000,260,1.7802700000,261,0.0996023000,262,0.4011660000,263,-0.0150846000,264,-1.0496800000,265,0.0613396000,266,-1.6756100000,267,0.9228680000,268,3.4267900000,269,0.6158960000,270,1.5979600000,271,0.0349649000,272,2.3569500000,273,-0.4974690000,274,-0.7173390000,275,-0.0109022000,276,0.3632290000,277,-0.1283820000,278,0.7629140000,279,0.0938287000,280,0.4070970000,281,-2.9348800000,282,0.0036117000,283,0.2145050000,284,0.0815088000,285,-0.6610950000,286,-0.1349220000,287,-0.0291238000,288,-0.0184782000,289,0.5719820000,290,2.9291700000,291,1.1735300000,292,-0.4837840000,293,-0.4079140000,294,2.5853600000,295,0.1763460000,296,-0.3094440000,297,0.0582413000,298,-0.0455222000,299,-0.2184370000,300,-0.3742440000,301,0.2153000000,302,0.0196790000,303,-0.4241180000,304,-1.2670400000 +172,0,6.0237500000,327,-1.0000000000,255,0.9597770000,256,0.1525590000,257,1.9954200000,258,-0.6282520000,259,-1.3042100000,260,-2.6172500000,261,-1.4041600000,262,-0.3851480000,263,0.0084240800,264,-0.7251690000,265,-3.1821400000,266,0.0056794200,267,-2.9058600000,268,-2.3308800000,269,-0.3838750000,270,0.1880880000,271,-0.2500580000,272,-3.0137100000,273,1.0338900000,274,1.1037800000,275,-0.0025444400,276,1.6249800000,277,0.2203230000,278,0.2916110000,279,-0.7971270000,280,0.0447807000,281,-1.6102100000,282,0.0182755000,283,-1.3859500000,284,-0.7392670000,285,-0.9149300000,286,0.5502430000,287,-0.0200765000,288,-0.2944580000,289,0.2768710000,290,-2.2906100000,291,-1.4069500000,292,0.0731549000,293,-1.9729500000,294,-0.3922270000,295,-1.6396600000,296,0.3814000000,297,0.9091570000,298,-0.0156322000,299,-1.8969900000,300,1.1467900000,301,-1.1016600000,302,0.9578160000,303,0.7769900000,304,-2.5229500000 +173,0,0.4286370000,328,-1.0000000000,255,0.8290420000,256,0.3795850000,257,-0.7244840000,258,0.8147520000,259,-1.5638000000,260,-0.5433710000,261,-0.5779910000,262,0.0017120200,263,0.0045206800,264,0.0240093000,265,0.3746470000,266,0.3576740000,267,0.8743420000,268,2.6156700000,269,-0.1976970000,270,0.0919097000,271,0.1200930000,272,1.1403600000,273,-0.4218520000,274,-0.1802120000,275,-0.0078370800,276,-0.4561590000,277,-1.6280700000,278,-0.0256166000,279,-0.8503970000,280,-0.4773610000,281,-0.0210153000,282,0.0000278367,283,-0.5401820000,284,-0.5740000000,285,-3.4755600000,286,-0.2568990000,287,0.0349240000,288,-0.0356299000,289,-0.0470742000,290,1.1544700000,291,-0.0161509000,292,0.1213910000,293,-0.7461440000,294,0.2553900000,295,0.0087700500,296,-1.2167000000,297,0.3765160000,298,0.0212212000,299,-1.1037100000,300,-0.7108680000,301,0.0285931000,302,0.1406360000,303,0.3579570000,304,-0.9051690000 +174,0,0.4152110000,329,-1.0000000000,255,-0.4890820000,256,0.4262960000,257,0.8907770000,258,0.2482190000,259,-3.3683600000,260,0.6486440000,261,-2.3098400000,262,0.8771140000,263,-0.0028474200,264,-1.4868200000,265,1.1633100000,266,-0.5554620000,267,-2.3512400000,268,-1.3897400000,269,0.7602560000,270,-1.3552800000,271,-0.0351663000,272,-0.1625550000,273,-2.0631900000,274,2.9911500000,275,0.0324018000,276,1.4741700000,277,0.7434360000,278,-2.0147900000,279,-0.9882190000,280,-0.8575210000,281,-0.7965890000,282,0.0089474800,283,-2.8357300000,284,-0.6963260000,285,-1.5784100000,286,-0.2583420000,287,0.0340730000,288,-0.7682320000,289,0.1573890000,290,1.6498500000,291,-0.2726540000,292,0.1308970000,293,-0.6007650000,294,1.3967000000,295,-0.4392760000,296,1.7052700000,297,-0.9897170000,298,0.0353825000,299,-0.8411000000,300,1.6311400000,301,0.2734410000,302,1.6779200000,303,1.4788600000,304,1.3924600000 +175,0,-0.6870250000,330,-1.0000000000,255,1.7350500000,256,-0.3486090000,257,-1.6060200000,258,0.2143760000,259,-0.1227150000,260,1.0094500000,261,-0.7986020000,262,1.5201200000,263,0.0003875990,264,-0.4061260000,265,1.5742400000,266,0.2439900000,267,2.7839600000,268,1.4409200000,269,0.6855870000,270,-0.9094550000,271,0.0520541000,272,1.0455600000,273,0.2841560000,274,-0.3606260000,275,-0.0355116000,276,0.1130730000,277,-0.6144250000,278,-1.3390300000,279,1.2406500000,280,0.8907170000,281,0.2858150000,282,-0.0205333000,283,-1.0538700000,284,-0.1558450000,285,1.2155900000,286,-0.2054890000,287,0.0192788000,288,-0.0204992000,289,-0.2803460000,290,0.7655550000,291,0.8227300000,292,-0.2783770000,293,2.2430100000,294,0.8447440000,295,0.5152390000,296,1.3756500000,297,-0.9581270000,298,-0.0195562000,299,0.8752300000,300,0.3407820000,301,0.1294960000,302,1.1854800000,303,-0.4831030000,304,-0.8562260000 +176,0,-0.1364430000,331,-1.0000000000,255,0.6459330000,256,0.1392780000,257,-0.1701170000,258,-0.6505130000,259,-0.0195975000,260,1.0007900000,261,0.4235620000,262,-0.7516300000,263,0.0230494000,264,0.2498200000,265,0.3486650000,266,0.6218460000,267,-0.9649880000,268,-0.1676440000,269,0.2663310000,270,-0.4717870000,271,-0.1994070000,272,-0.4817610000,273,-1.0351300000,274,-0.4734240000,275,0.0185984000,276,0.7780510000,277,0.0788157000,278,0.6521160000,279,0.1056900000,280,-0.7543710000,281,0.5559770000,282,0.0114747000,283,-0.6502480000,284,-0.0632389000,285,1.0991900000,286,-0.0306872000,287,-0.0490372000,288,0.4369670000,289,0.0192913000,290,-0.5746330000,291,-0.0762691000,292,0.0133556000,293,-2.1633900000,294,0.4391370000,295,0.4243560000,296,-0.3516620000,297,-0.4228700000,298,0.0054438700,299,-0.0243762000,300,0.3245640000,301,-0.3943140000,302,0.6905890000,303,0.0885187000,304,0.5646190000 +177,0,-1.1488500000,332,-1.0000000000,255,-0.7019070000,256,0.0578457000,257,0.0099350100,258,0.0011569600,259,0.0409172000,260,-0.3913940000,261,-1.9054200000,262,0.1171610000,263,-0.0312686000,264,-0.5581490000,265,0.2061390000,266,2.4034200000,267,-0.4598550000,268,-1.5506900000,269,0.0383659000,270,-0.1285810000,271,-0.3773550000,272,0.2728370000,273,-1.6661700000,274,0.5874030000,275,-0.0375180000,276,-0.4492830000,277,-0.1108950000,278,-0.8067180000,279,0.2830860000,280,-0.6299390000,281,-1.3014800000,282,0.0265276000,283,-1.0838200000,284,-1.5165700000,285,1.5083400000,286,0.3645740000,287,0.0162761000,288,-0.2829470000,289,-0.0943444000,290,0.0867865000,291,-1.1229600000,292,0.3528870000,293,-0.3410700000,294,-1.4029000000,295,-0.7820140000,296,0.3550050000,297,-0.0301113000,298,-0.0020688000,299,-0.4724010000,300,-0.8804850000,301,0.1028890000,302,0.4526150000,303,-0.5810880000,304,0.6916900000 +178,0,-0.9999940000,333,-1.0000000000,255,0.2620960000,256,-0.0591014000,257,0.7393600000,258,0.1758630000,259,-0.1446620000,260,-1.8891500000,261,-0.8827400000,262,-0.7143030000,263,-0.0177344000,264,-1.0497700000,265,-1.6138000000,266,0.1249970000,267,-0.2829800000,268,-4.5008100000,269,0.1397770000,270,-0.5386120000,271,0.2042870000,272,-0.9198950000,273,0.7864070000,274,0.1399610000,275,0.0222798000,276,-0.9558040000,277,-0.2219280000,278,0.4740390000,279,0.2828380000,280,-0.5387440000,281,0.2164890000,282,0.0027680100,283,-0.1009230000,284,-0.6682100000,285,1.0741700000,286,0.4415820000,287,-0.0213867000,288,-0.5116170000,289,0.2874030000,290,1.5915500000,291,-1.2651000000,292,-0.1199790000,293,-2.2745400000,294,-0.2427960000,295,-2.7908900000,296,0.0478603000,297,-0.0673489000,298,-0.0327944000,299,-0.3766580000,300,-0.8639630000,301,0.0361622000,302,-0.2644740000,303,0.2277280000,304,-1.2881800000 +179,0,-1.4573600000,334,-1.0000000000,255,1.6758900000,256,-0.3650600000,257,-1.3204300000,258,0.1839800000,259,-3.3563600000,260,0.6708220000,261,-3.0969400000,262,1.1375400000,263,0.0380447000,264,0.2396960000,265,0.7283320000,266,-0.4392080000,267,1.0499900000,268,-0.1852030000,269,0.6202690000,270,1.8798500000,271,0.9878080000,272,-0.0067460800,273,-0.9231660000,274,-0.3348160000,275,0.0043615800,276,1.4025000000,277,-0.9450320000,278,-0.4316580000,279,0.8984650000,280,0.2427140000,281,0.0494391000,282,-0.0007633190,283,-0.7915880000,284,-0.7946430000,285,2.1568400000,286,-0.0809711000,287,0.0357534000,288,-0.3496040000,289,-0.6988660000,290,-0.2351200000,291,0.8521220000,292,-0.2275640000,293,0.2498890000,294,0.3904260000,295,0.4767360000,296,0.0261387000,297,-0.7729770000,298,0.0161628000,299,0.3435650000,300,2.6367800000,301,-0.0983947000,302,1.2042000000,303,0.4999600000,304,1.1350400000 +180,0,-1.2686800000,335,-1.0000000000,255,2.8799800000,256,0.2055520000,257,0.8507850000,258,0.7479970000,259,-0.1138840000,260,1.0741100000,261,-0.2729320000,262,1.5688500000,263,-0.0090040600,264,-1.6605300000,265,-1.3684000000,266,1.3161100000,267,-0.8738800000,268,-2.4909600000,269,-0.0331247000,270,0.8685860000,271,0.7764360000,272,-0.5210520000,273,-1.1267800000,274,0.6941550000,275,0.0145741000,276,-1.4797000000,277,0.3454700000,278,-1.2277200000,279,-0.7185900000,280,-0.9618310000,281,-0.6962530000,282,-0.0481155000,283,-0.6133860000,284,-2.2463000000,285,-0.7694720000,286,0.0144836000,287,0.0215166000,288,-0.0881891000,289,0.7332490000,290,-0.0428831000,291,-1.0583400000,292,-0.4890820000,293,-0.4319620000,294,0.1281880000,295,-1.1329300000,296,-1.9605200000,297,0.5658370000,298,0.0011951000,299,-0.9852670000,300,-0.2005530000,301,-0.6934430000,302,-0.9877440000,303,0.5174150000,304,-1.2459800000 +181,0,-0.7508810000,336,-1.0000000000,255,1.1702700000,256,0.1941000000,257,-0.5097610000,258,-0.3197430000,259,-0.0359536000,260,-0.1168700000,261,0.0945612000,262,0.0014223800,263,0.0190693000,264,0.3511430000,265,-0.0407384000,266,0.2732190000,267,-0.0398614000,268,-0.1706480000,269,-0.0386843000,270,-0.0388303000,271,-0.2486170000,272,0.2500720000,273,-0.2627300000,274,0.0635715000,275,0.0470735000,276,0.1647770000,277,0.1350410000,278,0.4292030000,279,0.7902140000,280,-0.5014550000,281,0.7855130000,282,-0.0148428000,283,0.7228800000,284,-0.2327120000,285,-0.8296010000,286,-0.1516420000,287,0.0352535000,288,-0.3196520000,289,0.1044010000,290,-0.3535100000,291,0.5966470000,292,-0.0891423000,293,0.3687190000,294,-0.3075210000,295,-0.2337810000,296,-0.2880930000,297,0.0626033000,298,-0.0225053000,299,-0.0954758000,300,0.2192390000,301,0.1918850000,302,-0.4543180000,303,-0.0564385000,304,0.2181750000 +182,0,0.0265271000,337,-1.0000000000,255,-0.0206726000,256,0.0293702000,257,-0.0503752000,258,-0.0354369000,259,0.0219901000,260,-0.0405643000,261,-0.0466470000,262,0.0098861300,263,0.0129730000,264,-0.0086162900,265,0.0009644210,266,-0.0108142000,267,-0.0068947600,268,-0.0577764000,269,-0.0314397000,270,0.0288739000,271,0.0209131000,272,0.0003406360,273,0.0181234000,274,0.0039258200,275,0.0067778400,276,-0.0251455000,277,0.0085599800,278,-0.0446441000,279,0.0121847000,280,-0.0282802000,281,-0.0140866000,282,0.0213079000,283,0.0048029400,284,-0.0524776000,285,-0.0112994000,286,-0.0402220000,287,-0.0544600000,288,0.0141987000,289,-0.0117863000,290,0.0004732750,291,-0.0582427000,292,-0.0192120000,293,0.0115738000,294,0.0245868000,295,0.0001925730,296,-0.0006763400,297,-0.0412617000,298,-0.0413387000,299,-0.0484379000,300,0.0177350000,301,-0.0133843000,302,-0.0124929000,303,0.0419073000,304,0.0276447000 +183,0,1.1182300000,338,-1.0000000000,255,2.2444400000,256,-0.3358820000,257,-0.7362640000,258,-0.2323760000,259,0.4709010000,260,1.3499700000,261,0.1940230000,262,0.0091940700,263,0.0335923000,264,0.8646660000,265,-0.7660820000,266,-0.1489330000,267,2.0962500000,268,0.5851700000,269,0.5140590000,270,0.2939210000,271,0.6171800000,272,-0.1038260000,273,-2.1948300000,274,0.0452143000,275,0.0069149300,276,1.0124700000,277,-0.0083554300,278,1.2468600000,279,-0.2917840000,280,0.8100920000,281,0.9062090000,282,0.0077675400,283,-0.1239150000,284,0.1873000000,285,-0.4014530000,286,0.0524869000,287,0.0291716000,288,-0.1533510000,289,0.0411659000,290,0.7552660000,291,1.0830200000,292,-0.2742000000,293,0.1230010000,294,-0.1423170000,295,0.2210650000,296,0.8024170000,297,-0.2329380000,298,0.0410267000,299,0.2522660000,300,0.1946690000,301,0.2715080000,302,-0.6531450000,303,0.3225330000,304,0.8119940000 +184,0,-2.6677200000,339,-1.0000000000,255,-2.7915700000,256,1.6158900000,257,1.0919900000,258,-0.7457650000,259,0.1661650000,260,-3.7017800000,261,-0.4761940000,262,-0.9662280000,263,-0.0294249000,264,-0.9037670000,265,-1.4429200000,266,-0.4989570000,267,-5.0443200000,268,-2.4666300000,269,0.7620960000,270,-1.5047900000,271,-0.4330100000,272,-0.0313472000,273,-1.0356400000,274,0.8755010000,275,-0.0076264900,276,0.5320540000,277,1.5453700000,278,0.2892450000,279,-1.6247700000,280,-0.3048480000,281,-3.3831100000,282,0.0323388000,283,-0.5851630000,284,-0.2592690000,285,0.4878400000,286,0.1826400000,287,-0.0212124000,288,-0.1404140000,289,1.5637500000,290,-2.3097100000,291,-2.1217100000,292,0.5573810000,293,-3.2830000000,294,-1.1513500000,295,-1.3945300000,296,-1.4616900000,297,-0.0859824000,298,0.0044019600,299,-2.0416300000,300,0.0211696000,301,-0.4360500000,302,-1.0363400000,303,0.5347430000,304,-3.2076200000 +185,0,-1.6641600000,340,-1.0000000000,255,3.3334500000,256,-0.4591580000,257,-0.7552550000,258,0.6318270000,259,-0.7310010000,260,2.0931300000,261,0.2826560000,262,1.4210000000,263,-0.0251330000,264,1.3341600000,265,0.2138010000,266,0.3955910000,267,2.1898500000,268,0.5517080000,269,-0.6152220000,270,0.2429240000,271,0.8509830000,272,1.2627600000,273,0.9060170000,274,-0.1577110000,275,-0.0135358000,276,1.4254200000,277,-1.4876000000,278,1.3617100000,279,2.6065100000,280,0.2989970000,281,0.6000460000,282,0.0261440000,283,-0.8408490000,284,-0.5820020000,285,1.2879900000,286,-0.1236040000,287,0.0410615000,288,-0.3687400000,289,0.1620160000,290,-0.2248380000,291,0.7056960000,292,-0.0331611000,293,0.9383840000,294,0.8592020000,295,-1.1745700000,296,0.3156250000,297,-0.3740410000,298,-0.0241322000,299,1.1165600000,300,2.6869200000,301,-1.7213300000,302,-0.2925910000,303,0.0222578000,304,0.9596420000 +186,0,1.1721600000,341,-1.0000000000,255,2.2644700000,256,-0.2753770000,257,-1.0168800000,258,1.2332600000,259,0.5395710000,260,2.4071900000,261,0.3776420000,262,0.5578050000,263,-0.0217274000,264,1.9582100000,265,0.9768270000,266,1.2711000000,267,4.2709200000,268,-2.9169600000,269,-1.4608300000,270,1.5868400000,271,0.3804970000,272,0.1912680000,273,1.2862200000,274,-0.3306040000,275,0.0108448000,276,1.3204500000,277,0.2175240000,278,-1.1826900000,279,0.4108470000,280,-0.7308580000,281,3.2462100000,282,0.0027371500,283,-0.2245770000,284,-0.7128890000,285,2.6134700000,286,-0.6293720000,287,0.0030108500,288,0.1611310000,289,-0.2136140000,290,3.2302800000,291,0.7049270000,292,-0.4608930000,293,1.5131100000,294,1.1035400000,295,-0.0729219000,296,0.4625510000,297,-0.0788238000,298,0.0483286000,299,1.6624700000,300,2.3766500000,301,0.5335360000,302,1.8269500000,303,-0.1483370000,304,1.5164900000 +187,0,-1.2632500000,342,-1.0000000000,255,0.5962250000,256,-0.7690850000,257,-0.5499060000,258,0.0512905000,259,-1.0445500000,260,2.2146900000,261,0.6200480000,262,-0.5409880000,263,0.0274646000,264,0.3142810000,265,0.6288390000,266,0.9692960000,267,1.0766700000,268,1.0179700000,269,-0.5197170000,270,-0.1214760000,271,0.6599050000,272,-0.0691748000,273,1.3931600000,274,-0.0668987000,275,-0.0173978000,276,1.1827700000,277,-0.1786450000,278,1.5963900000,279,-0.0844474000,280,0.5465070000,281,0.7239760000,282,0.0482456000,283,-0.0514978000,284,-0.0052783500,285,-0.5880900000,286,-0.0797712000,287,-0.0021762300,288,0.4617530000,289,0.0818362000,290,1.8551600000,291,-0.2241060000,292,-0.2231940000,293,0.1136710000,294,1.0082400000,295,-0.2543300000,296,1.0959100000,297,-0.0583732000,298,0.0348259000,299,-1.0543600000,300,1.7457500000,301,0.0192003000,302,-0.6719380000,303,0.4524130000,304,0.5751550000 +188,0,1.7300700000,343,-1.0000000000,255,0.7912540000,256,-0.1670120000,257,-0.9873160000,258,-0.0685617000,259,0.4318950000,260,-0.2835850000,261,-0.2707220000,262,1.9292400000,263,0.0048626100,264,0.4334280000,265,0.5656680000,266,0.7802590000,267,0.5093150000,268,1.5106800000,269,-0.7473520000,270,0.4995070000,271,0.2068820000,272,1.2510000000,273,0.3814100000,274,-0.4131090000,275,0.0387770000,276,0.2131230000,277,-0.1448930000,278,-2.4297200000,279,0.7240330000,280,-0.7407480000,281,1.4771000000,282,0.0307341000,283,0.9818760000,284,-0.2411640000,285,-1.0187400000,286,-0.0358886000,287,0.0028333600,288,0.6297150000,289,0.0220470000,290,1.8979700000,291,0.6581520000,292,-0.2682930000,293,-0.1083180000,294,0.2878830000,295,1.3116900000,296,0.6123060000,297,-0.2649540000,298,0.0360845000,299,-0.2449590000,300,2.4021600000,301,-0.2845190000,302,0.9854140000,303,0.3300760000,304,-0.6537890000 +189,0,2.4470600000,344,-1.0000000000,255,7.2773100000,256,0.3597230000,257,-2.7100900000,258,1.4561800000,259,-0.7540940000,260,4.3564100000,261,1.5714300000,262,-0.0082567400,263,-0.0054323700,264,2.1832800000,265,0.2666800000,266,-0.2070400000,267,0.9196050000,268,0.1990730000,269,0.8708060000,270,0.4324800000,271,0.0302403000,272,2.1259700000,273,1.6282200000,274,0.1478750000,275,-0.0430763000,276,0.0325229000,277,-0.3951910000,278,0.6128890000,279,1.7491100000,280,-0.0115317000,281,2.0813000000,282,0.0174154000,283,5.0398900000,284,1.6867600000,285,-0.2237120000,286,-1.0891200000,287,0.0006070780,288,0.9307580000,289,-0.7982980000,290,-1.6160100000,291,1.6923200000,292,-1.0207500000,293,-0.5920030000,294,1.5819200000,295,2.7153700000,296,-0.2419760000,297,0.0916027000,298,0.0295204000,299,1.0383300000,300,1.8115800000,301,1.1930900000,302,1.4676800000,303,0.5848910000,304,3.5387300000 +190,0,2.0499000000,345,-1.0000000000,255,1.7001500000,256,-0.1249020000,257,0.2002880000,258,0.1526720000,259,0.9135840000,260,0.3403250000,261,-0.3711540000,262,2.0529100000,263,0.0446866000,264,0.7551610000,265,0.1579760000,266,0.5702650000,267,0.9690290000,268,-1.6487700000,269,0.1802640000,270,0.8552070000,271,-0.4688060000,272,-0.4673500000,273,2.0421000000,274,0.5563970000,275,0.0121746000,276,0.3850300000,277,0.4508840000,278,1.5185200000,279,-2.6738700000,280,1.4293600000,281,0.8927220000,282,0.0042694600,283,0.5760270000,284,1.7432700000,285,-0.3909500000,286,-0.3791640000,287,-0.0138847000,288,-0.8740440000,289,-0.6352210000,290,2.3649000000,291,-1.1501200000,292,0.0130773000,293,0.6351020000,294,-0.0566981000,295,-0.7761750000,296,0.2094580000,297,0.7682790000,298,0.0282257000,299,-1.4368900000,300,1.4534800000,301,-0.1322750000,302,-0.6525970000,303,-1.0739000000,304,3.6799200000 +191,0,0.6053040000,346,-1.0000000000,255,-0.8939030000,256,-0.1526960000,257,-0.2050920000,258,-0.8902820000,259,-2.0036400000,260,1.0387500000,261,-1.3262100000,262,-2.1411300000,263,0.0022123800,264,0.8122140000,265,-1.4118100000,266,-0.4200500000,267,0.4419830000,268,1.3091700000,269,0.3853890000,270,-0.5707490000,271,-0.0491568000,272,0.4821100000,273,-1.2587700000,274,-0.8097010000,275,0.0382813000,276,1.0336700000,277,-0.0714447000,278,0.8736660000,279,-0.1855900000,280,0.2372450000,281,-2.1886200000,282,-0.0339054000,283,0.0574315000,284,0.0420319000,285,-1.3401100000,286,0.1724520000,287,0.0132988000,288,-0.1744180000,289,0.3467270000,290,-3.4555600000,291,1.1199200000,292,-0.1266850000,293,-3.4544700000,294,2.5629300000,295,-1.3390500000,296,0.2324920000,297,-0.1104590000,298,-0.0094254800,299,1.4774200000,300,0.9535280000,301,-0.4294730000,302,0.2332900000,303,0.7418440000,304,-0.1632000000 +192,0,0.6725210000,347,-1.0000000000,255,-0.7114060000,256,0.1763580000,257,0.1826610000,258,1.3765100000,259,0.1712960000,260,-3.7701300000,261,0.4706890000,262,-1.1925200000,263,0.0349210000,264,-0.5450570000,265,-0.0843555000,266,-1.0176400000,267,0.7032050000,268,-0.5505640000,269,-0.2579980000,270,-0.0890003000,271,-0.0703442000,272,-2.1616000000,273,-0.2464530000,274,0.3270110000,275,-0.0387644000,276,1.2598600000,277,-0.4821310000,278,1.1602500000,279,-0.9968770000,280,1.0113900000,281,0.4545360000,282,-0.0002340130,283,-0.7646890000,284,1.1309400000,285,0.3158320000,286,-0.5189980000,287,0.0020289400,288,0.0786911000,289,-0.0180465000,290,0.7242220000,291,-2.4129400000,292,0.1074960000,293,-1.1115100000,294,0.1527600000,295,-0.2454970000,296,-0.0863020000,297,-0.8962640000,298,-0.0423129000,299,0.8903330000,300,1.2382900000,301,-0.3006610000,302,1.0273100000,303,0.9971250000,304,-0.9646050000 +193,0,0.1620520000,348,-1.0000000000,255,-1.1649500000,256,-0.3213180000,257,-0.2328780000,258,-0.8676670000,259,0.8096480000,260,0.4889900000,261,-0.2421530000,262,1.4797500000,263,0.0243499000,264,1.0505200000,265,0.3605070000,266,0.8898500000,267,1.6195700000,268,0.0395841000,269,-0.1803870000,270,1.5972700000,271,0.1004140000,272,-0.1699620000,273,0.3225320000,274,0.4040490000,275,0.0449270000,276,0.0020602500,277,-1.1372700000,278,-0.8184940000,279,-0.0246358000,280,0.4381660000,281,0.4558390000,282,0.0151633000,283,1.0916900000,284,0.1508120000,285,1.6439500000,286,0.0736603000,287,-0.0152215000,288,0.1296340000,289,-0.5584430000,290,-2.6955900000,291,0.4251790000,292,-0.4538430000,293,0.3998020000,294,0.3198330000,295,0.8937010000,296,-1.2939700000,297,1.0002000000,298,0.0081303600,299,1.0273000000,300,0.3630570000,301,0.7768420000,302,0.0699263000,303,0.4170530000,304,0.6710060000 +194,0,0.4079080000,349,-1.0000000000,255,4.1366500000,256,0.0500456000,257,-1.3464200000,258,1.2422100000,259,0.8298180000,260,-1.4518800000,261,0.6569660000,262,0.8880030000,263,-0.0373889000,264,2.6555800000,265,0.2523980000,266,-2.2485200000,267,2.9251800000,268,2.7167600000,269,-0.9876540000,270,2.3864400000,271,-0.0843790000,272,1.0439300000,273,2.4540000000,274,1.5074700000,275,0.0677694000,276,2.1344900000,277,0.0161315000,278,1.2173700000,279,2.5014100000,280,2.7271500000,281,2.7001200000,282,0.0313854000,283,1.9380200000,284,-0.0637446000,285,-1.1780800000,286,-1.3302200000,287,-0.0209000000,288,-0.2699600000,289,0.5274600000,290,0.4979820000,291,-0.2345010000,292,-0.4937260000,293,0.3855760000,294,0.4839830000,295,1.3663300000,296,0.5071540000,297,-1.4076700000,298,0.0359732000,299,0.9368940000,300,1.1585800000,301,0.6193890000,302,0.5168150000,303,0.5236600000,304,-3.1479700000 +195,0,-0.5806770000,350,-1.0000000000,255,-1.1731400000,256,0.1725760000,257,-1.3105900000,258,0.3002770000,259,-1.0305300000,260,0.7504120000,261,0.5346060000,262,-0.0127339000,263,0.0122410000,264,-0.3176510000,265,-0.2488580000,266,0.0419978000,267,1.0375700000,268,1.1133200000,269,0.3027770000,270,-0.3952290000,271,-0.1750810000,272,-0.4701240000,273,0.5396800000,274,0.1427020000,275,-0.0238310000,276,-0.0203789000,277,-0.0296087000,278,0.2741270000,279,0.3327220000,280,1.3853200000,281,0.4914080000,282,0.0100706000,283,0.1734340000,284,-0.1895060000,285,1.5072200000,286,-0.1287290000,287,0.0300097000,288,0.6928760000,289,0.3963450000,290,0.9361950000,291,0.3101220000,292,-0.2011740000,293,1.3142400000,294,0.6406480000,295,0.6018060000,296,-0.6555860000,297,-0.3690630000,298,-0.0191212000,299,-0.6214530000,300,1.0808200000,301,-0.6199320000,302,0.2323330000,303,0.8948680000,304,0.9511110000 +196,0,1.0716100000,351,-1.0000000000,255,1.2956300000,256,-0.2920840000,257,-0.3190460000,258,-0.1714480000,259,0.6349680000,260,-0.5717300000,261,-0.2260990000,262,0.3808150000,263,-0.0416583000,264,0.3956720000,265,-0.1322310000,266,0.4483310000,267,0.4873610000,268,-0.7381030000,269,0.7349060000,270,-1.3874700000,271,-1.1624200000,272,0.9127170000,273,-4.9326200000,274,-0.5209840000,275,0.0275182000,276,0.5186640000,277,0.0386817000,278,1.1611700000,279,0.2082860000,280,1.2524700000,281,-1.2310200000,282,0.0259824000,283,-1.5001200000,284,-1.9000300000,285,-0.4505140000,286,0.2076500000,287,0.0175540000,288,-0.4962740000,289,0.2818420000,290,-0.1059560000,291,0.1369570000,292,0.0610551000,293,1.2284800000,294,-0.7190810000,295,-1.0281400000,296,-0.3276080000,297,-0.5801420000,298,0.0212632000,299,1.0503300000,300,0.3037570000,301,-0.4130650000,302,0.7358690000,303,-0.7746910000,304,-0.7413660000 +197,0,0.2636240000,352,-1.0000000000,255,-0.4855440000,256,-0.4877800000,257,0.7393050000,258,0.1192730000,259,0.5649440000,260,0.5051060000,261,-0.2884350000,262,-0.6350800000,263,-0.0052240600,264,0.2303680000,265,-0.0096501600,266,0.2842490000,267,0.0217434000,268,-0.8825830000,269,0.0509507000,270,-4.4577900000,271,0.2867540000,272,-0.9018040000,273,-0.9933590000,274,0.1606780000,275,-0.0149932000,276,-0.3772010000,277,-0.0434444000,278,1.0230600000,279,-4.1683900000,280,-0.7454530000,281,-2.1944800000,282,-0.0407771000,283,-0.2221410000,284,0.2573910000,285,3.3936400000,286,0.1834470000,287,0.0119297000,288,-0.5967440000,289,-0.2130090000,290,-1.0995500000,291,-0.4749610000,292,0.1019820000,293,-0.9872800000,294,0.4593850000,295,0.4495750000,296,-0.8605690000,297,-0.1731710000,298,0.0020108200,299,-0.0818041000,300,-0.8002280000,301,-0.2128280000,302,0.0017937100,303,0.0948147000,304,0.6323440000 +198,0,0.9426390000,353,-1.0000000000,255,-0.9388570000,256,0.3073130000,257,-0.6383070000,258,0.6656980000,259,-0.1944530000,260,0.6247900000,261,0.3710000000,262,-0.0453712000,263,-0.0447095000,264,-0.3898900000,265,-0.6274830000,266,-0.0628534000,267,-0.0266001000,268,1.2071100000,269,0.0492953000,270,0.6629530000,271,-0.0610669000,272,-0.3566980000,273,-0.4612480000,274,-0.0637539000,275,0.0117070000,276,0.5240440000,277,0.2818600000,278,0.4946090000,279,-0.1276830000,280,-0.2523040000,281,-1.7861900000,282,-0.0230144000,283,-2.1741200000,284,-0.9064870000,285,0.0262667000,286,-0.1591530000,287,-0.0496529000,288,0.2433770000,289,0.1804580000,290,0.2314700000,291,-0.2650900000,292,0.0209612000,293,0.1636520000,294,-0.0765819000,295,0.8516660000,296,-0.5591050000,297,-0.1332190000,298,-0.0232266000,299,0.1757530000,300,0.8457070000,301,0.1341430000,302,0.5739850000,303,-0.2672620000,304,-0.0453426000 +199,0,1.2805200000,354,-1.0000000000,255,-4.4080700000,256,1.3593700000,257,0.4546680000,258,-0.4152280000,259,0.5325270000,260,0.2390340000,261,0.4482790000,262,-1.3599200000,263,0.0082061200,264,-0.4054110000,265,0.2944990000,266,0.4659900000,267,0.2306300000,268,-1.0047100000,269,-0.5928860000,270,-2.5685800000,271,-0.0630214000,272,-0.4779350000,273,-0.7727200000,274,-12.3143000000,275,-0.0156835000,276,-2.5848500000,277,1.7641300000,278,1.1334000000,279,0.3767390000,280,0.3441020000,281,2.0763400000,282,-0.0205071000,283,0.6206660000,284,-1.5084000000,285,1.2578000000,286,-0.1182770000,287,-0.0506599000,288,1.6103700000,289,0.1377090000,290,1.4977000000,291,0.1078820000,292,0.2087110000,293,-1.0738400000,294,-0.0529449000,295,0.4439340000,296,-10.9310000000,297,0.7094500000,298,0.0435541000,299,-0.3073610000,300,-5.1685300000,301,0.3621190000,302,-7.7656500000,303,-0.7582470000,304,0.3749780000 +200,0,1.9120800000,405,-1.0000000000,355,0.0519136000,356,-0.2002690000,357,-0.0426229000,358,-0.1590310000,359,-0.2677510000,360,0.4403660000,361,1.3448900000,362,-1.4749800000,363,0.0608712000,364,-0.0474853000,365,0.6606590000,366,0.5663300000,367,0.0993548000,368,-1.1606900000,369,0.0282389000,370,0.0251944000,371,-0.1590980000,372,-0.3229510000,373,-1.2967100000,374,0.9574870000,375,0.0803549000,376,0.4405090000,377,0.3611660000,378,-0.4795540000,379,-0.0621588000,380,-0.5572760000,381,-0.0380450000,382,-0.0543562000,383,-0.1303780000,384,-5.6240700000,385,0.4260180000,386,1.1947200000,387,0.0534488000,388,-0.0669682000,389,-0.0549141000,390,-0.0642156000,391,0.0005682770,392,-0.8404010000,393,1.0889100000,394,-1.4746200000,395,-0.6138820000,396,-1.2466800000,397,-0.5537770000,398,0.7887610000,399,0.3376770000,400,0.0757222000,401,0.2946800000,402,0.7099580000,403,0.9684450000,404,0.2414090000 +201,0,-1.2460500000,406,-1.0000000000,355,0.2346290000,356,-0.0597305000,357,-0.4474310000,358,1.5600200000,359,0.6088550000,360,0.8286960000,361,-0.0365554000,362,0.4309200000,363,1.1404900000,364,-0.0118192000,365,1.9921100000,366,-0.2031800000,367,-0.9060730000,368,-0.2259070000,369,-0.0209790000,370,-0.4733430000,371,1.6232100000,372,0.7309860000,373,-1.1929400000,374,1.6744300000,375,0.0008199470,376,1.5463600000,377,0.3903240000,378,-2.0892400000,379,-0.6366190000,380,-0.9411920000,381,0.0401461000,382,-1.5694700000,383,1.1706400000,384,0.2442830000,385,-0.2153970000,386,-0.1388850000,387,0.0252701000,388,-0.7367500000,389,0.1629970000,390,0.2173720000,391,-1.3141600000,392,1.7217500000,393,0.6407520000,394,0.3036050000,395,-0.1125480000,396,0.1930110000,397,-0.0504185000,398,-1.8020100000,399,0.4787680000,400,0.5296030000,401,-1.6673800000,402,-0.4490700000,403,0.0256425000,404,-0.1319330000 +202,0,-2.8561500000,407,-1.0000000000,355,-0.7929530000,356,-0.0538976000,357,0.4402940000,358,-0.4969730000,359,-0.2719600000,360,0.6151320000,361,-0.0730991000,362,-1.1594900000,363,-0.1475990000,364,0.4974400000,365,-1.1296400000,366,-0.4280200000,367,-0.3044300000,368,-0.4850400000,369,-0.0054985700,370,0.6072070000,371,0.1987860000,372,0.9665280000,373,0.0942709000,374,-1.5638500000,375,0.1619060000,376,-0.4827610000,377,0.4422210000,378,1.4133100000,379,0.6867390000,380,-1.5970200000,381,-2.4611100000,382,-0.2893000000,383,-0.4026570000,384,-3.8846800000,385,0.5630070000,386,0.6324920000,387,-0.0418108000,388,0.8316950000,389,-0.7503900000,390,-0.2054120000,391,0.5858540000,392,0.3109900000,393,-1.7222900000,394,-2.6805000000,395,-1.5583600000,396,0.7928070000,397,-2.1362300000,398,0.0271420000,399,-0.7336060000,400,-0.7788700000,401,-0.1090830000,402,0.3123450000,403,-2.4806700000,404,0.8267880000 +203,0,1.1582000000,408,-1.0000000000,355,0.3512160000,356,0.9214820000,357,-3.0694100000,358,-0.0474490000,359,-0.2419580000,360,0.7122360000,361,-1.4732600000,362,0.5092780000,363,0.7623470000,364,0.7423930000,365,-0.2613010000,366,0.3122860000,367,0.0787030000,368,0.2058000000,369,0.0198414000,370,-0.8335240000,371,-0.3273400000,372,1.1717600000,373,-3.4096900000,374,-0.3141030000,375,-0.2595590000,376,0.9189950000,377,-0.0720834000,378,-0.7897020000,379,-0.2509950000,380,-0.2395980000,381,-0.1576770000,382,-0.8673710000,383,0.6489340000,384,0.4257970000,385,-0.5474170000,386,-0.9185240000,387,0.0179248000,388,-0.1844610000,389,0.1563390000,390,-0.3603050000,391,-0.3780130000,392,0.1498980000,393,0.6099860000,394,-0.1410970000,395,-0.7279580000,396,-1.2866000000,397,-1.0471800000,398,-2.1033800000,399,-0.0595467000,400,0.9277740000,401,3.0765800000,402,0.1957670000,403,1.1097700000,404,-0.7607390000 +204,0,3.2663500000,409,-1.0000000000,355,-2.6618600000,356,1.2438400000,357,-0.5390790000,358,0.3357020000,359,-0.1317530000,360,-0.2799160000,361,1.1285300000,362,-1.5196400000,363,0.6953320000,364,0.9692140000,365,0.6855640000,366,0.1224170000,367,0.0116017000,368,1.2885300000,369,-0.0182089000,370,0.6752190000,371,0.9251580000,372,-0.8493960000,373,0.5756450000,374,1.0804800000,375,0.5099500000,376,-1.0758400000,377,-1.1641600000,378,0.8161720000,379,0.4523500000,380,-1.9647000000,381,0.3163090000,382,0.3776160000,383,-0.1074240000,384,-3.2748500000,385,0.5094710000,386,1.7071800000,387,0.0105838000,388,-1.3021800000,389,-0.8581860000,390,0.2326110000,391,0.3060050000,392,1.2187800000,393,-0.4480300000,394,0.3421650000,395,1.0334300000,396,-3.0518100000,397,-0.7177950000,398,0.2942560000,399,0.9795870000,400,0.6781610000,401,0.3708070000,402,1.5560900000,403,0.8368300000,404,-0.5296290000 +205,0,2.8689400000,410,-1.0000000000,355,0.1618990000,356,-1.0016400000,357,2.4508100000,358,0.7800500000,359,-0.5884680000,360,-0.2963940000,361,1.3949700000,362,-1.3422500000,363,1.1819000000,364,-1.3784700000,365,0.2948260000,366,-0.2601750000,367,-0.4085420000,368,0.2305650000,369,0.0200603000,370,-0.2946920000,371,-0.1143560000,372,0.9665760000,373,1.7690300000,374,1.5795800000,375,0.3031680000,376,0.9308260000,377,0.2636280000,378,-2.6947000000,379,-0.3172720000,380,-0.7477810000,381,0.4565880000,382,0.0343413000,383,1.4141700000,384,-1.8957500000,385,-0.2268780000,386,0.2125010000,387,0.0355054000,388,1.0045100000,389,0.1261140000,390,0.6456140000,391,-0.7398850000,392,0.0512281000,393,0.3646750000,394,0.6144920000,395,0.9754860000,396,-0.4593420000,397,1.3451000000,398,0.8377720000,399,-0.5296840000,400,0.0128574000,401,0.5766750000,402,0.0202144000,403,1.8504500000,404,0.1318700000 +206,0,0.3224390000,411,-1.0000000000,355,0.7923570000,356,-1.0802700000,357,-0.9952680000,358,0.2765200000,359,-1.9223400000,360,0.3284220000,361,1.1512900000,362,-0.6239600000,363,-1.1061500000,364,-3.6228800000,365,-0.7534150000,366,-1.1314600000,367,-0.0075493200,368,1.1911800000,369,0.0298430000,370,0.2882100000,371,-2.3319600000,372,1.5103900000,373,-6.9740000000,374,-0.5257260000,375,0.4188600000,376,-1.0989500000,377,-0.3436970000,378,-7.9012200000,379,0.0179745000,380,-1.3940300000,381,0.1713420000,382,0.2690270000,383,-0.2642740000,384,-8.7838900000,385,0.1430110000,386,2.5253000000,387,-0.0189404000,388,1.4215200000,389,-0.4337340000,390,-0.8335810000,391,0.2122780000,392,1.8361200000,393,-3.2296700000,394,-6.7361100000,395,-0.0226239000,396,-0.1513580000,397,-3.3863400000,398,-1.9702300000,399,-1.6526400000,400,0.9132620000,401,-0.0491003000,402,0.5906260000,403,-2.2713000000,404,-0.3969530000 +207,0,4.8585200000,412,-1.0000000000,355,0.8994320000,356,-0.2382600000,357,-1.1037400000,358,-0.1727440000,359,-0.4810430000,360,0.4120010000,361,-2.5196400000,362,1.0482900000,363,-0.0013250400,364,-0.4127400000,365,1.0482400000,366,-0.5069580000,367,-0.5093180000,368,-0.5883920000,369,0.0100758000,370,-0.5080500000,371,-1.0365600000,372,1.1564600000,373,0.9318080000,374,1.7559400000,375,-0.0187330000,376,0.5373140000,377,1.0731500000,378,0.5231730000,379,0.1841690000,380,0.7050520000,381,2.2629600000,382,0.1059950000,383,0.3195630000,384,-0.3822940000,385,0.3317650000,386,0.4652930000,387,0.0144300000,388,0.0640664000,389,-0.6470590000,390,-0.4979110000,391,0.4794610000,392,0.9569160000,393,0.2173240000,394,-0.8620180000,395,0.6875550000,396,2.1707000000,397,-0.4631160000,398,2.1871100000,399,-0.6136570000,400,0.5842180000,401,0.8316260000,402,1.3810300000,403,2.7221600000,404,0.2649430000 +208,0,-0.0082677600,413,-1.0000000000,355,-0.0967107000,356,0.1993670000,357,0.2550670000,358,-0.1145950000,359,-0.5711010000,360,-0.6319180000,361,-0.1612560000,362,0.1742150000,363,-0.0002878460,364,0.1835980000,365,0.4062760000,366,0.0970419000,367,0.0259328000,368,-0.3617770000,369,0.0225990000,370,-0.1791960000,371,0.1979510000,372,-0.5113270000,373,-0.8524700000,374,0.2573010000,375,0.0238646000,376,-0.7179890000,377,0.0434110000,378,0.3427780000,379,0.0169665000,380,-0.9975770000,381,0.8015790000,382,-0.2598770000,383,0.1224340000,384,0.5885020000,385,-0.0703006000,386,0.1138220000,387,0.0428795000,388,-0.1140260000,389,0.0959111000,390,0.0107144000,391,0.4038230000,392,0.2315630000,393,0.2137720000,394,-0.3547800000,395,0.1106680000,396,0.2062930000,397,-0.1066690000,398,0.3264700000,399,-0.0767990000,400,-0.3266980000,401,0.6128750000,402,-1.1437300000,403,0.6858330000,404,-0.0743472000 +209,0,-1.1786600000,414,-1.0000000000,355,-0.5880800000,356,0.7716460000,357,-0.1003440000,358,0.0208753000,359,0.1656310000,360,-0.4380350000,361,-0.1477150000,362,0.4967970000,363,0.8514210000,364,0.1064800000,365,-1.3882300000,366,-1.0494100000,367,-0.3100890000,368,-0.4546860000,369,0.0394746000,370,0.2693180000,371,0.0069269500,372,-2.8153800000,373,1.3597500000,374,0.4293990000,375,-0.0632238000,376,0.3915650000,377,0.1620100000,378,-0.0262083000,379,-0.1137500000,380,0.3198890000,381,-3.5268200000,382,-0.3026320000,383,-4.0089900000,384,-2.4922900000,385,0.2472440000,386,-0.7153670000,387,0.0356732000,388,-1.2802200000,389,-0.0715408000,390,-0.0817780000,391,0.3461200000,392,0.4920680000,393,-2.7182500000,394,-0.5262280000,395,0.1382230000,396,-0.8124980000,397,-1.9681200000,398,-0.1208750000,399,-0.4351200000,400,-1.6979500000,401,0.1826800000,402,-0.2593280000,403,-1.6782200000,404,0.5222200000 +210,0,-1.7017000000,415,-1.0000000000,355,0.3811230000,356,-0.7626660000,357,-2.5699200000,358,0.2386030000,359,0.1820840000,360,-0.3168240000,361,-1.3281300000,362,1.0876400000,363,-1.5374000000,364,-0.0149292000,365,0.2991660000,366,-0.1863310000,367,-0.0986073000,368,1.0262300000,369,-0.0251322000,370,-0.2474880000,371,0.0147495000,372,-0.0193742000,373,-1.9761000000,374,-0.8711270000,375,-0.3755600000,376,-0.7046420000,377,-1.5633900000,378,-1.2727100000,379,0.2700270000,380,0.5038040000,381,0.4856160000,382,0.0800128000,383,-1.6693900000,384,-1.1429600000,385,-0.5759090000,386,0.6910280000,387,0.0377852000,388,-1.7941500000,389,0.1974730000,390,0.7209920000,391,0.1851860000,392,-1.0073000000,393,0.4951890000,394,0.0778345000,395,0.0573745000,396,-1.0820900000,397,0.3983310000,398,0.2451030000,399,0.2262910000,400,-0.0798801000,401,-0.7126620000,402,-0.6968400000,403,-1.4927400000,404,-0.0924998000 +211,0,-0.3308820000,416,-1.0000000000,355,0.0289452000,356,0.3083960000,357,0.0740503000,358,0.3738640000,359,-0.3198860000,360,1.1241300000,361,-0.4864970000,362,-0.5316230000,363,0.9353640000,364,0.4437070000,365,0.3016620000,366,0.3946000000,367,-1.1518500000,368,-0.8140120000,369,-0.0094641100,370,-0.0967283000,371,0.9835820000,372,0.4475380000,373,-0.2194400000,374,0.9076110000,375,-0.0286903000,376,-0.0590789000,377,0.4999390000,378,0.0052367300,379,-0.1783650000,380,0.0565684000,381,1.1608100000,382,0.2092400000,383,0.2145910000,384,-0.8240150000,385,-0.4926150000,386,1.5981000000,387,0.0015798400,388,-0.0728647000,389,-0.3804590000,390,-0.3458400000,391,-0.4445000000,392,0.2433170000,393,2.1391800000,394,0.1891450000,395,0.2275500000,396,1.2983600000,397,-0.4005410000,398,0.2446530000,399,0.4595360000,400,1.0433400000,401,0.8832910000,402,1.6239900000,403,1.7574300000,404,-0.4892000000 +212,0,-3.3504200000,417,-1.0000000000,355,0.4460970000,356,1.1529700000,357,-2.2609800000,358,0.3075680000,359,0.2087760000,360,-0.1974590000,361,-2.1586800000,362,0.9622860000,363,0.2064510000,364,-0.2026730000,365,-1.1442200000,366,-0.1103620000,367,0.0765107000,368,-1.4123800000,369,0.0010822300,370,0.3723600000,371,0.3160690000,372,-0.5741360000,373,2.2054600000,374,-0.5570320000,375,-0.3834510000,376,0.3062050000,377,1.1936600000,378,0.2649310000,379,0.1435740000,380,0.1800070000,381,-1.3636700000,382,0.3490730000,383,-1.2112600000,384,-5.2161600000,385,-0.9401710000,386,-5.1566600000,387,0.0214439000,388,-1.5611000000,389,-0.1114220000,390,0.7602570000,391,0.4857250000,392,-0.0606020000,393,-0.4837930000,394,-0.2750260000,395,0.1486530000,396,0.3868660000,397,-1.2091300000,398,-2.9480900000,399,0.9804900000,400,-0.3399970000,401,-3.6277800000,402,0.0427257000,403,0.7394810000,404,0.7836260000 +213,0,3.9280500000,418,-1.0000000000,355,-0.3299680000,356,-1.6281900000,357,1.6605900000,358,0.2161110000,359,0.3294600000,360,0.8894780000,361,3.8618100000,362,-0.2259010000,363,2.3716100000,364,0.1338390000,365,1.0887200000,366,-1.4697300000,367,-0.0473800000,368,0.1258320000,369,-0.0164973000,370,-0.2475640000,371,1.2312000000,372,0.0879122000,373,2.7273800000,374,1.3316800000,375,0.0234054000,376,0.7413400000,377,0.4231180000,378,1.0029000000,379,-0.3924860000,380,0.2455310000,381,1.5470700000,382,-0.9717500000,383,0.8713070000,384,-4.4280800000,385,-0.2087790000,386,4.6345700000,387,-0.0237739000,388,-0.6570450000,389,-0.6308110000,390,0.1713500000,391,0.0503536000,392,-1.1366200000,393,1.7679700000,394,0.2859860000,395,1.1432500000,396,0.8608000000,397,2.2819000000,398,0.4342130000,399,0.0994010000,400,1.3179300000,401,1.5646700000,402,1.5582400000,403,3.9122200000,404,-0.4298130000 +214,0,-0.6511030000,419,-1.0000000000,355,-2.4514500000,356,-1.7343700000,357,0.1292060000,358,-0.2715190000,359,0.5553310000,360,0.4681210000,361,-1.4696600000,362,0.9360530000,363,1.0227500000,364,0.7875980000,365,0.1749930000,366,0.3541130000,367,-0.0902060000,368,-0.0875590000,369,0.0471745000,370,0.3011350000,371,-0.9107800000,372,0.0094551600,373,-0.4374580000,374,1.3384900000,375,-0.0453462000,376,-2.2366600000,377,-2.0614900000,378,-0.0057080900,379,-0.2301990000,380,-1.2708100000,381,0.7154940000,382,-0.2896700000,383,0.7770350000,384,-2.6000800000,385,0.3755450000,386,-1.1496400000,387,-0.0056271400,388,-2.0421900000,389,0.2632110000,390,0.4806380000,391,-0.9797270000,392,-2.0257100000,393,-0.3273400000,394,0.0292223000,395,-2.0677100000,396,-1.1336700000,397,-2.8000300000,398,0.7447470000,399,0.0701769000,400,-0.4497360000,401,-1.1694500000,402,1.3212800000,403,-1.9579000000,404,0.4211290000 +215,0,-2.0386000000,420,-1.0000000000,355,-0.2308540000,356,-1.7540000000,357,4.1967700000,358,-0.8868990000,359,-2.1068600000,360,0.3730390000,361,-0.9017620000,362,-0.2536760000,363,1.6505800000,364,0.1708820000,365,0.8090020000,366,-1.1453500000,367,0.2638290000,368,-2.7110100000,369,-0.0264349000,370,-0.1269340000,371,1.4911300000,372,-3.9687400000,373,-0.2110800000,374,1.4987500000,375,-0.0236562000,376,-0.1824140000,377,2.2114400000,378,-0.1123370000,379,-0.0886934000,380,-2.2952500000,381,1.2653500000,382,-0.1240350000,383,1.1292500000,384,-3.2525000000,385,0.3635210000,386,-2.0826900000,387,-0.0207515000,388,0.0893328000,389,-0.0458185000,390,-0.9987160000,391,-1.1458100000,392,-1.9052000000,393,-0.9620130000,394,-2.1704400000,395,1.8629200000,396,-0.6631140000,397,-1.0628200000,398,-0.8120840000,399,0.1730620000,400,-0.7695330000,401,1.2038100000,402,-1.1101600000,403,-1.2696200000,404,1.9205500000 +216,0,-0.1224270000,421,-1.0000000000,355,0.6170070000,356,-0.3104960000,357,-1.1530200000,358,0.3910620000,359,0.0886864000,360,0.5460700000,361,-0.5880400000,362,0.4734460000,363,0.3806900000,364,-0.2947590000,365,-1.7465300000,366,-0.2662670000,367,0.1289870000,368,-0.0126078000,369,0.0335644000,370,0.1304240000,371,0.2565380000,372,-0.6374820000,373,0.9610270000,374,0.6837410000,375,-0.3601840000,376,-0.4413120000,377,0.9511810000,378,-0.6912950000,379,-0.1770430000,380,-6.1983900000,381,-1.2195200000,382,-1.0336400000,383,1.5294000000,384,1.3857300000,385,-0.4377890000,386,-0.9142650000,387,0.0072021800,388,0.4438890000,389,0.1458700000,390,0.5857670000,391,-1.3262000000,392,-1.0363700000,393,1.3435400000,394,-3.1486100000,395,0.1004190000,396,0.2766990000,397,-0.1933660000,398,0.1973120000,399,-0.2755970000,400,1.2283500000,401,-0.8451860000,402,0.0085843400,403,0.4418030000,404,0.1167450000 +217,0,0.7051980000,422,-1.0000000000,355,-1.5099600000,356,0.3292010000,357,0.4742350000,358,0.3292400000,359,0.4211060000,360,0.7586470000,361,-1.3402900000,362,-1.5034200000,363,-3.9521500000,364,-1.0348300000,365,0.2047580000,366,-0.5085810000,367,0.1301250000,368,-5.8111100000,369,0.0037392400,370,-0.0711796000,371,0.6050360000,372,0.5788120000,373,0.2978430000,374,-0.9731120000,375,-0.0680963000,376,-3.0925800000,377,-0.1700710000,378,-3.1975400000,379,-0.0554803000,380,-1.0558900000,381,-0.2376010000,382,0.7087900000,383,0.7347880000,384,-3.3432900000,385,0.1603960000,386,0.4335590000,387,0.0420911000,388,0.8898010000,389,-0.1543410000,390,-1.4541900000,391,-4.0753900000,392,-0.5391320000,393,1.0290600000,394,0.3981720000,395,-0.7269740000,396,1.0651900000,397,-3.0680600000,398,-0.8084030000,399,-0.6091880000,400,0.3347170000,401,-0.3234990000,402,-2.0125600000,403,1.1820000000,404,-0.4129680000 +218,0,-1.2552600000,423,-1.0000000000,355,0.4172770000,356,0.4701570000,357,-0.3047340000,358,0.2542550000,359,-0.0647457000,360,0.6995370000,361,1.2792200000,362,-0.2922140000,363,0.9792840000,364,-0.5995660000,365,0.1801360000,366,0.0607470000,367,0.1715530000,368,-0.3592020000,369,-0.0027003500,370,0.5220720000,371,-0.4048630000,372,2.0198100000,373,1.1421400000,374,1.1758900000,375,-0.2141590000,376,0.6247970000,377,0.4976140000,378,-0.0588212000,379,0.3279340000,380,-0.2273210000,381,0.1335070000,382,0.6720090000,383,-0.8472810000,384,-1.0370100000,385,0.3737670000,386,-0.3782450000,387,0.0419896000,388,0.6381020000,389,-1.0522100000,390,-0.3497150000,391,0.1901830000,392,1.8442700000,393,0.9453280000,394,-0.0488974000,395,0.0728723000,396,0.7436130000,397,-0.2723400000,398,0.2713420000,399,-0.0767347000,400,1.9129000000,401,0.3928810000,402,1.5281300000,403,2.2170300000,404,-0.1470280000 +219,0,0.7938700000,424,-1.0000000000,355,0.9029810000,356,0.7758810000,357,5.1049100000,358,-1.6033500000,359,-2.0966300000,360,0.3440660000,361,1.7167200000,362,0.5399060000,363,1.4393700000,364,1.5523500000,365,2.2129200000,366,-1.1683900000,367,1.2588900000,368,-3.6549400000,369,-0.0182842000,370,0.1565030000,371,3.3182200000,372,1.1011400000,373,3.1912500000,374,-0.5213360000,375,0.6137610000,376,1.4952300000,377,5.8107400000,378,3.2540600000,379,0.4238190000,380,-4.6470500000,381,2.8232500000,382,0.1827370000,383,3.5258700000,384,-0.1521010000,385,1.7133700000,386,0.5401210000,387,0.0085990800,388,0.8414620000,389,-0.6737450000,390,-1.5411500000,391,-1.8622100000,392,-0.6050830000,393,-0.4202090000,394,-3.8017900000,395,1.5963500000,396,2.5397000000,397,-0.3286120000,398,1.6694100000,399,-1.5991600000,400,-0.3114410000,401,3.6320300000,402,0.9891330000,403,2.0923000000,404,4.1089500000 +220,0,0.0451509000,425,-1.0000000000,355,0.2236250000,356,-0.3803320000,357,1.4393400000,358,0.1191670000,359,-0.0348384000,360,-0.4371140000,361,0.2410640000,362,-0.8174660000,363,-0.2804470000,364,-0.0248287000,365,-0.4017260000,366,-0.2857950000,367,-0.0385839000,368,-0.5134840000,369,0.0328726000,370,-0.2806410000,371,0.4717270000,372,-0.2217270000,373,1.6905900000,374,0.4456620000,375,0.0724608000,376,-0.2601170000,377,0.1892670000,378,-0.6868890000,379,-0.0582602000,380,-0.4507030000,381,-0.3778510000,382,0.3264670000,383,0.4005180000,384,-0.8242330000,385,0.4373850000,386,-0.4359480000,387,0.0186817000,388,0.4713100000,389,0.0446839000,390,0.0442628000,391,-0.4133360000,392,-0.3739270000,393,0.8231530000,394,0.0807048000,395,0.1487890000,396,0.2630430000,397,0.1555060000,398,0.6796010000,399,-0.1030350000,400,0.0404905000,401,0.0240346000,402,0.0478522000,403,0.1203380000,404,-0.1036560000 +221,0,0.4782740000,426,-1.0000000000,355,0.2873410000,356,-0.1404510000,357,1.8881700000,358,0.2773050000,359,0.0147120000,360,-0.5346490000,361,1.5606700000,362,1.0572000000,363,1.6242400000,364,-3.4342200000,365,0.7172360000,366,-0.0390227000,367,-0.3674360000,368,-1.6101800000,369,0.0223958000,370,0.8206540000,371,-0.9704750000,372,-0.7615370000,373,0.7833740000,374,1.0228000000,375,-0.1038060000,376,0.4344780000,377,0.9538530000,378,0.0839122000,379,-0.1020870000,380,-0.4056210000,381,1.1152200000,382,-0.1595580000,383,-1.6237800000,384,-4.3036800000,385,0.7214540000,386,0.3890780000,387,0.0246398000,388,0.2275410000,389,-0.3236540000,390,-5.6187100000,391,-1.0531400000,392,-0.6453740000,393,-1.2937200000,394,0.0900936000,395,0.1310300000,396,-5.8630200000,397,-2.5777000000,398,-3.5001000000,399,-0.5574430000,400,1.0487600000,401,-0.7406010000,402,1.2149400000,403,-1.4393000000,404,0.3476220000 +222,0,1.8605700000,427,-1.0000000000,355,0.2432610000,356,-0.6497930000,357,-7.2019100000,358,-0.6867810000,359,-0.1643400000,360,-0.3258990000,361,-0.1144270000,362,-1.1047700000,363,-3.3192300000,364,0.1080870000,365,-0.2919780000,366,0.4163900000,367,0.1272130000,368,-1.0113400000,369,0.0273625000,370,0.2579580000,371,0.0441839000,372,-0.5574520000,373,-1.8578800000,374,-0.9396080000,375,-0.1671630000,376,-1.6109700000,377,-0.3955720000,378,0.1317990000,379,0.0126379000,380,0.0611791000,381,1.3984400000,382,-0.0937690000,383,1.3656000000,384,-4.3193000000,385,-0.0757487000,386,1.1367300000,387,0.0052143700,388,-0.2557350000,389,0.0596366000,390,0.3675130000,391,0.4573970000,392,-0.5807490000,393,0.6989440000,394,-1.3231800000,395,-1.3955100000,396,-0.4268060000,397,0.4676780000,398,-0.1415070000,399,-1.7344600000,400,0.0128847000,401,-1.9460100000,402,-4.8289100000,403,-2.3015200000,404,0.2139770000 +223,0,-2.5016500000,428,-1.0000000000,355,0.6527610000,356,-1.0550400000,357,-3.8481400000,358,1.7325900000,359,-0.5990510000,360,0.2293240000,361,-0.5641980000,362,-2.0399300000,363,-3.0980800000,364,-0.9011880000,365,-0.8243660000,366,-0.5828020000,367,-1.0861300000,368,-0.3514080000,369,0.0187686000,370,-0.8141170000,371,-0.8264840000,372,0.4301690000,373,-3.8836000000,374,0.2571220000,375,-0.5875050000,376,-0.0612579000,377,0.1630730000,378,-0.0128193000,379,-0.7710300000,380,1.4035600000,381,-2.9933300000,382,-1.3841300000,383,-0.2408290000,384,-4.5465700000,385,0.0867253000,386,-3.7836600000,387,0.0419323000,388,-0.5072270000,389,0.0936123000,390,0.7937680000,391,-0.5601760000,392,0.6259160000,393,-0.6530860000,394,-5.5833700000,395,-1.3835900000,396,-2.5479400000,397,1.9537200000,398,-6.5516500000,399,0.9277200000,400,0.1850940000,401,-2.3819700000,402,-1.4805600000,403,-1.6449900000,404,0.8603770000 +224,0,2.9654400000,429,-1.0000000000,355,-0.6287700000,356,-0.7203510000,357,-2.2628000000,358,0.7607520000,359,-0.7010010000,360,0.5686580000,361,0.3870500000,362,-0.2555870000,363,0.3972360000,364,0.1166210000,365,0.4447260000,366,-0.2001860000,367,0.0548190000,368,-0.7106060000,369,-0.0021970800,370,-0.7121770000,371,0.7869790000,372,0.6141330000,373,0.7495840000,374,1.1131700000,375,-0.2008120000,376,0.5413600000,377,0.5914520000,378,-0.2377360000,379,-0.0201930000,380,-0.0850972000,381,0.7487350000,382,0.3314150000,383,-0.0694473000,384,-7.2313800000,385,1.0390900000,386,-0.4183550000,387,-0.0043443100,388,-2.4486300000,389,-0.4029120000,390,0.4982610000,391,-0.3321220000,392,1.1047800000,393,3.2923600000,394,1.0221300000,395,0.4393200000,396,0.8547660000,397,-1.2200000000,398,0.0934070000,399,-0.1358380000,400,0.7214010000,401,0.6071220000,402,0.4611270000,403,1.2561400000,404,0.0021729500 +225,0,0.5689300000,430,-1.0000000000,355,0.2925540000,356,0.0641855000,357,0.7330200000,358,-0.1592830000,359,-0.6685260000,360,-1.5930800000,361,0.5836110000,362,0.7373180000,363,-0.0189734000,364,-0.1743480000,365,0.2714930000,366,-0.0113856000,367,0.0693693000,368,-0.6117260000,369,-0.0362093000,370,0.1836760000,371,0.3696500000,372,0.4468720000,373,1.1384500000,374,0.8258460000,375,-0.1176950000,376,0.4256020000,377,-0.5568670000,378,0.6781020000,379,0.1360700000,380,-0.5143980000,381,-0.0178835000,382,-0.1030730000,383,0.4143160000,384,-0.0078221300,385,0.7923440000,386,0.3072110000,387,0.0085957500,388,-0.2869180000,389,-0.0759876000,390,-0.0590779000,391,0.1337860000,392,-0.7154830000,393,0.2684280000,394,-0.4336590000,395,0.8052210000,396,1.9033600000,397,-0.2556380000,398,0.4994040000,399,-0.3933560000,400,0.1132630000,401,1.1314700000,402,-0.2092740000,403,0.1752770000,404,-0.6628560000 +226,0,1.4840900000,431,-1.0000000000,355,-2.2974900000,356,-1.1934100000,357,1.0353900000,358,-2.1291300000,359,-2.9281500000,360,-3.7670800000,361,-4.6915800000,362,-4.9670100000,363,-4.8025400000,364,-0.7340700000,365,-1.4466500000,366,-4.2725800000,367,2.1626500000,368,0.4777640000,369,0.0206256000,370,-3.8762200000,371,2.5031600000,372,-1.4460300000,373,-9.7931100000,374,-3.5652400000,375,-0.2862980000,376,1.2508000000,377,4.5170500000,378,-2.8235700000,379,-0.3139440000,380,-1.8420400000,381,-4.7204000000,382,-2.0906200000,383,0.5809380000,384,0.2861900000,385,-2.7362500000,386,-2.2209100000,387,-0.0263748000,388,1.1836300000,389,0.8022720000,390,-3.1196400000,391,-4.0572000000,392,-1.6966600000,393,-1.0578600000,394,0.0768099000,395,0.7975250000,396,-1.2172500000,397,-1.7599500000,398,-0.0646924000,399,-1.9185000000,400,-2.6461200000,401,-2.2384000000,402,-0.1872010000,403,-1.2163600000,404,-2.1665100000 +227,0,0.9482680000,432,-1.0000000000,355,-1.3836400000,356,0.2140140000,357,-4.0909100000,358,0.6236180000,359,-0.7693980000,360,0.1541830000,361,1.6227900000,362,1.2502900000,363,-1.3517700000,364,-0.0266252000,365,0.5362680000,366,-0.8016680000,367,0.3942860000,368,0.0217980000,369,0.0210118000,370,-0.5066200000,371,0.3422230000,372,0.1943220000,373,2.3992500000,374,-3.9208500000,375,0.3281730000,376,1.1058500000,377,0.0122206000,378,-1.4000200000,379,0.0182672000,380,-0.6019440000,381,-1.2849100000,382,-0.5514950000,383,-2.3801400000,384,1.8712400000,385,-0.0371008000,386,0.4109150000,387,0.0327690000,388,-0.2681270000,389,-0.0972669000,390,0.0396579000,391,-0.1075700000,392,-0.0427204000,393,-1.4633900000,394,-0.8342210000,395,-0.8463820000,396,-1.3385500000,397,-0.0253558000,398,1.3486100000,399,0.7381520000,400,-1.1822700000,401,1.5326700000,402,0.3014200000,403,-1.2687800000,404,0.2249920000 +228,0,0.7176630000,433,-1.0000000000,355,-0.2443720000,356,-0.9420110000,357,-0.8499150000,358,-0.1138830000,359,-0.1996360000,360,0.1963370000,361,0.2073200000,362,0.0474925000,363,-0.3616150000,364,0.1015490000,365,0.8444780000,366,0.3165310000,367,-0.1923160000,368,-0.1170130000,369,-0.0446175000,370,-0.4040680000,371,0.3849710000,372,-0.1610050000,373,0.2989380000,374,-1.0113700000,375,-0.0946489000,376,0.7533850000,377,-0.7567610000,378,0.1880450000,379,-0.1911920000,380,-1.1156400000,381,0.3557400000,382,-0.0996113000,383,-0.1066670000,384,1.2885500000,385,-0.2944770000,386,1.9121900000,387,-0.0154850000,388,-1.4186200000,389,0.2763560000,390,0.1734530000,391,-0.1288370000,392,0.8449880000,393,-5.3248400000,394,0.2860830000,395,0.3345910000,396,-1.1645300000,397,-0.1424880000,398,-1.4851000000,399,-0.5088930000,400,-0.9075520000,401,-1.3213800000,402,0.1912800000,403,-2.1534700000,404,0.1566410000 +229,0,-0.2724950000,434,-1.0000000000,355,-4.9285600000,356,0.2306870000,357,2.3750600000,358,0.1078530000,359,0.8139790000,360,0.8130040000,361,-1.0062400000,362,0.0031198500,363,-1.3271400000,364,-0.7524170000,365,-0.5367760000,366,-0.6851840000,367,-0.1983800000,368,-0.7590270000,369,-0.0317200000,370,-0.2554500000,371,-0.2141420000,372,-6.2758600000,373,-6.6769300000,374,0.2714660000,375,0.1725690000,376,-1.0551300000,377,-1.6174700000,378,0.2495110000,379,0.1197280000,380,-1.8860600000,381,1.2640300000,382,-0.1133890000,383,-0.3551100000,384,-0.2072690000,385,0.2298230000,386,0.6901320000,387,-0.0101198000,388,-1.0414100000,389,-0.0755718000,390,0.4576130000,391,-0.9105140000,392,-0.9150750000,393,-2.3658700000,394,-5.4761900000,395,-0.9585480000,396,0.6543380000,397,-2.6464600000,398,-0.8693130000,399,-1.8155200000,400,-1.5910700000,401,-0.4231270000,402,-0.1734170000,403,-2.6594700000,404,-0.0524648000 +230,0,-0.8962380000,435,-1.0000000000,355,-0.4376120000,356,0.1621870000,357,-0.3105040000,358,-0.3947550000,359,0.1674680000,360,0.0597277000,361,0.4994770000,362,0.0749049000,363,-0.0928085000,364,0.2332250000,365,0.3398260000,366,-0.0096946500,367,-0.0913566000,368,0.1092750000,369,-0.0141858000,370,0.1812210000,371,-0.1398530000,372,0.6017560000,373,0.7193460000,374,-0.8441820000,375,0.1519780000,376,0.1662610000,377,0.0329762000,378,0.3090990000,379,0.0180120000,380,-0.1007890000,381,0.5660510000,382,-0.1393830000,383,-0.7341740000,384,-0.0842189000,385,-0.3239060000,386,-0.6146630000,387,-0.0440075000,388,0.6296700000,389,-0.0056736100,390,-0.0724020000,391,0.3217180000,392,-0.2581620000,393,-0.6100400000,394,0.1332840000,395,-0.1378260000,396,0.4299320000,397,0.9023690000,398,-0.9097490000,399,-0.2027920000,400,-0.6659170000,401,-1.0825300000,402,-0.1041900000,403,0.2808330000,404,-0.2249820000 +231,0,-3.0052900000,436,-1.0000000000,355,1.1496200000,356,-0.7755110000,357,-3.9111600000,358,-3.2637600000,359,-1.5525500000,360,-1.0086100000,361,-8.2970100000,362,-2.2034200000,363,1.7952700000,364,-0.1445710000,365,-0.8549350000,366,-2.2752200000,367,-0.1724880000,368,-1.2922000000,369,0.0054548400,370,0.0717895000,371,0.4047620000,372,1.0561600000,373,-3.7006100000,374,4.2375900000,375,0.7291090000,376,-3.0648300000,377,-1.6122200000,378,-1.5845700000,379,-0.8771020000,380,-5.0468800000,381,-3.0596900000,382,-0.9531240000,383,-3.6798200000,384,-0.9967330000,385,-4.0155100000,386,-1.1545700000,387,0.0456674000,388,0.8780150000,389,-0.7145780000,390,0.8643220000,391,-0.3288290000,392,-1.9584500000,393,-2.8473900000,394,-2.9954200000,395,0.1631100000,396,2.3988200000,397,-0.4069620000,398,-2.4226800000,399,-0.4106790000,400,-5.3111400000,401,-2.4443600000,402,-0.9298140000,403,-3.5835500000,404,0.2450410000 +232,0,-0.3286130000,437,-1.0000000000,355,-2.2904600000,356,1.6631800000,357,0.9278510000,358,-0.4589690000,359,-1.5107700000,360,0.1777960000,361,-6.2626900000,362,-0.1816480000,363,1.9139700000,364,0.3182190000,365,0.1340180000,366,-2.1764400000,367,-1.0583500000,368,-1.7696600000,369,-0.0262099000,370,-0.4127780000,371,-3.7929100000,372,-2.0751700000,373,0.7449140000,374,2.3969200000,375,0.0194958000,376,0.7098610000,377,-1.6546300000,378,1.1237000000,379,0.2086750000,380,-1.8806700000,381,0.7908990000,382,-1.5041700000,383,-3.6359200000,384,-0.5045070000,385,-0.8832950000,386,-3.4557100000,387,0.0224585000,388,2.1250100000,389,-0.0169675000,390,-0.0012650300,391,-1.6835300000,392,-1.2027700000,393,2.1821700000,394,-0.4685810000,395,0.6412190000,396,-5.3827600000,397,0.4742740000,398,-3.5241400000,399,-3.6457000000,400,-0.2434700000,401,-1.0678800000,402,0.7281650000,403,1.8542800000,404,2.6581400000 +233,0,0.6353250000,438,-1.0000000000,355,-0.4395170000,356,-0.4019390000,357,-4.6535400000,358,-0.2704050000,359,-3.9372300000,360,-0.0645251000,361,-0.9648430000,362,-0.4302790000,363,-1.9407900000,364,0.3016730000,365,0.2119900000,366,-0.3199250000,367,0.1834500000,368,-0.0880257000,369,0.0021558900,370,-0.0709775000,371,-0.1619210000,372,0.7088500000,373,-2.5931600000,374,-1.1055100000,375,-0.3561650000,376,0.7896820000,377,-0.6534710000,378,-1.0906800000,379,-0.3790210000,380,-5.9053600000,381,-2.2669600000,382,0.3796030000,383,0.5822300000,384,-2.5540600000,385,-0.2741570000,386,0.6551880000,387,-0.0274450000,388,-2.4114600000,389,0.2904790000,390,-0.0954303000,391,0.1518020000,392,-0.0176250000,393,1.3355000000,394,-1.9261300000,395,-0.2713100000,396,0.4321180000,397,-3.0002200000,398,-0.0727421000,399,0.6116450000,400,0.7307220000,401,-0.3686210000,402,-0.6034900000,403,2.0129100000,404,0.0839722000 +234,0,4.0587400000,439,-1.0000000000,355,-0.5380220000,356,-3.7828400000,357,-5.5942200000,358,-0.4994220000,359,-3.3723200000,360,-1.7969000000,361,-2.6325100000,362,-2.2247300000,363,-7.0180900000,364,-0.8025000000,365,-1.6396800000,366,-2.7844700000,367,-0.4502110000,368,-2.7675100000,369,-0.0029370700,370,0.4444180000,371,0.1105210000,372,-7.4046300000,373,-8.0948400000,374,-4.6905400000,375,-0.1279050000,376,-1.7478900000,377,3.7506400000,378,-1.0085100000,379,1.3240300000,380,-10.8826000000,381,-2.3733900000,382,-0.1020440000,383,-7.9961900000,384,-4.0911200000,385,-1.7578200000,386,-6.0430800000,387,0.0381204000,388,0.1306080000,389,-1.5943100000,390,-1.5986100000,391,-2.7336800000,392,-4.0308100000,393,-4.4452000000,394,-5.4910600000,395,-0.6391090000,396,-2.8594200000,397,-4.8706700000,398,-7.6001200000,399,-6.7510000000,400,-0.0881523000,401,-2.3616500000,402,-5.7864800000,403,0.0451630000,404,-0.0748172000 +235,0,-0.5272790000,440,-1.0000000000,355,0.2487990000,356,-2.3802000000,357,0.2690210000,358,1.0630600000,359,-0.8829790000,360,-1.2725200000,361,-3.8849600000,362,2.3116200000,363,-1.0615200000,364,0.0247584000,365,1.4759100000,366,-0.1395480000,367,-0.1103050000,368,0.8777770000,369,-0.0164891000,370,0.0893357000,371,-0.4352050000,372,-3.8427500000,373,-3.8982500000,374,0.5134380000,375,0.1893030000,376,-1.5963700000,377,-0.2224330000,378,-1.3100500000,379,0.0384625000,380,-0.0110274000,381,1.2072900000,382,0.5851640000,383,-0.7305140000,384,-4.9783700000,385,-0.3729890000,386,0.2967820000,387,0.0125307000,388,-1.3798900000,389,-0.6396550000,390,-0.1940680000,391,-0.5091680000,392,-0.8832620000,393,-1.9090700000,394,-1.4002500000,395,-0.9132670000,396,-0.9523930000,397,-1.2375200000,398,-3.1104200000,399,-0.1631600000,400,-0.2254180000,401,-6.4871100000,402,0.6296740000,403,-0.6996340000,404,0.5896920000 +236,0,1.0708700000,441,-1.0000000000,355,-0.8154460000,356,1.0312500000,357,-0.0339009000,358,-0.2738390000,359,-1.0224000000,360,-0.2213120000,361,-0.2315350000,362,-1.6041800000,363,2.2641700000,364,-0.3516160000,365,-0.7767740000,366,-0.9373670000,367,-0.2677740000,368,0.2478490000,369,-0.0407670000,370,0.3499800000,371,-0.2589980000,372,1.5121500000,373,1.9189800000,374,2.3275400000,375,-0.1882830000,376,-0.0345112000,377,0.9647150000,378,0.8198270000,379,-0.7544900000,380,0.3326230000,381,-0.2796790000,382,0.6916140000,383,-0.5384460000,384,-2.4960700000,385,0.7535620000,386,1.7488700000,387,0.0361338000,388,1.5836900000,389,-0.2385190000,390,-0.2602360000,391,-0.8691280000,392,0.7866680000,393,2.3100100000,394,0.6329540000,395,1.1918800000,396,0.5886980000,397,1.6934100000,398,2.0370700000,399,0.4466280000,400,1.9874800000,401,-0.9101950000,402,1.5343400000,403,4.2825000000,404,-0.1589120000 +237,0,-0.0736461000,442,-1.0000000000,355,-0.0871644000,356,0.2636640000,357,0.5585450000,358,0.5651800000,359,-0.5632020000,360,0.8690600000,361,-0.4504580000,362,-0.2926950000,363,-0.6369070000,364,0.5501680000,365,0.3494670000,366,-0.3414960000,367,-0.3702250000,368,0.0024689900,369,0.0158142000,370,0.3469800000,371,0.1115730000,372,0.7329650000,373,-1.2479100000,374,-0.5905110000,375,-0.2752090000,376,-0.6671880000,377,-0.2640060000,378,-0.1290380000,379,-1.0170000000,380,-1.0458600000,381,0.2301300000,382,-0.5708900000,383,0.3929430000,384,-0.2843000000,385,0.5759490000,386,1.2669300000,387,0.0159586000,388,0.8235530000,389,0.0069972200,390,-0.2318250000,391,-0.3687050000,392,1.4798900000,393,0.9387660000,394,-0.0408498000,395,0.3813650000,396,0.2080340000,397,-2.7463300000,398,1.4370300000,399,0.5012280000,400,2.3316900000,401,-1.4600500000,402,1.8387100000,403,-1.7946100000,404,0.1919860000 +238,0,-0.2604850000,443,-1.0000000000,355,0.1193620000,356,-0.6988200000,357,-0.0960015000,358,0.5027640000,359,-0.0867966000,360,0.2549150000,361,1.9128000000,362,1.3616900000,363,-0.4095330000,364,-0.1905680000,365,-0.3149820000,366,-0.0457549000,367,0.2059580000,368,-0.1405170000,369,0.0556401000,370,-0.2029240000,371,0.3049910000,372,0.7219100000,373,-0.9828330000,374,-0.2638470000,375,-0.1756390000,376,0.1188620000,377,0.8399020000,378,-0.9107820000,379,-0.2614540000,380,-0.3915360000,381,0.0958718000,382,0.5551360000,383,1.7087700000,384,0.4250470000,385,0.1634740000,386,0.1350560000,387,-0.0479234000,388,-4.0849200000,389,-0.3796430000,390,0.1320350000,391,-0.0005148090,392,0.3153140000,393,-0.4144900000,394,-0.1291260000,395,0.7863130000,396,-1.0701700000,397,-0.3289020000,398,0.5266550000,399,0.4364130000,400,0.9352370000,401,-0.1434700000,402,-0.1333950000,403,0.0407560000,404,0.0397460000 +239,0,-0.5587030000,444,-1.0000000000,355,-3.6657300000,356,-2.9898900000,357,-3.0110700000,358,-1.6379400000,359,-1.7545200000,360,0.0789156000,361,-3.6599600000,362,-6.1778300000,363,0.2552300000,364,-1.8736400000,365,-6.9272900000,366,0.3564330000,367,-0.9364050000,368,-0.2697110000,369,0.0316942000,370,1.7545700000,371,0.3220670000,372,-5.7771800000,373,0.1106480000,374,0.3781510000,375,0.2242470000,376,-2.8716600000,377,0.3080730000,378,0.4929340000,379,0.2500730000,380,-1.1506300000,381,-3.3079900000,382,-0.8241780000,383,-4.2466600000,384,-1.6424200000,385,-5.8480500000,386,-11.7591000000,387,0.0165436000,388,-4.0785100000,389,-0.7150500000,390,0.4755190000,391,0.8901730000,392,-0.6799300000,393,-5.7674700000,394,1.6108300000,395,-5.6041400000,396,0.3473770000,397,-6.5660000000,398,-3.7810900000,399,-7.3179700000,400,-1.8693100000,401,-0.8333400000,402,-4.9911100000,403,-9.3478900000,404,0.6852110000 +240,0,-0.1783880000,445,-1.0000000000,355,-0.1742610000,356,-0.2775080000,357,-0.3741080000,358,0.0152424000,359,-0.2364950000,360,0.3854160000,361,0.4725150000,362,0.1370040000,363,-0.3701490000,364,-1.2945300000,365,-0.0717721000,366,-0.1927770000,367,-0.2117820000,368,-0.6739470000,369,-0.0195487000,370,0.0785269000,371,-0.2458720000,372,0.5131290000,373,-0.4261360000,374,-0.0339272000,375,0.0301613000,376,0.5083540000,377,-1.0719500000,378,0.4252530000,379,-0.4599220000,380,0.3419380000,381,0.5240370000,382,-0.0914013000,383,-0.4099550000,384,0.3906850000,385,0.0725692000,386,-0.3336560000,387,0.0549086000,388,-2.3916100000,389,-0.0572265000,390,-0.6057960000,391,-0.5077460000,392,0.7229940000,393,-0.1189770000,394,-0.0690312000,395,0.7410070000,396,0.4654040000,397,1.8469000000,398,-0.3060960000,399,0.0801279000,400,-0.7995920000,401,0.0001339100,402,-0.2213850000,403,-0.6759380000,404,0.3678270000 +241,0,2.4813100000,446,-1.0000000000,355,-0.0666876000,356,1.3247000000,357,0.9405200000,358,0.5716470000,359,-1.3544400000,360,0.1648620000,361,4.5342900000,362,1.2029700000,363,3.0107800000,364,-0.1014070000,365,-2.3238800000,366,-0.7007810000,367,0.5992300000,368,-0.1776880000,369,0.0107009000,370,-0.4211380000,371,1.6315000000,372,1.1192000000,373,4.0549700000,374,-0.4507960000,375,-0.0705118000,376,1.6545700000,377,1.3582600000,378,0.4663550000,379,-0.5989640000,380,0.8739920000,381,2.6890500000,382,0.5873390000,383,-0.6398920000,384,-4.6828100000,385,-2.0202000000,386,3.8014600000,387,0.0404847000,388,2.5445300000,389,-0.2142450000,390,-0.4343990000,391,-1.9919400000,392,0.7232630000,393,-0.5779730000,394,0.8545870000,395,-0.1768430000,396,-2.2762000000,397,0.0411614000,398,1.2738500000,399,-0.2933330000,400,2.4130500000,401,-0.2568840000,402,2.3801300000,403,-2.6895500000,404,-0.6267090000 +242,0,3.9922800000,447,-1.0000000000,355,-0.6640530000,356,1.8321400000,357,2.5475700000,358,-1.1465200000,359,-0.7677340000,360,-0.3772240000,361,0.3403460000,362,-0.7376740000,363,0.2130070000,364,0.0780288000,365,-0.8490650000,366,0.1040290000,367,0.1065260000,368,-0.9263800000,369,0.0223856000,370,0.3381210000,371,1.0004600000,372,0.2997600000,373,2.7318700000,374,0.1628150000,375,0.1593520000,376,0.4701980000,377,-0.5468010000,378,2.0519700000,379,0.3028580000,380,-1.3292500000,381,0.3151120000,382,-1.4138500000,383,-0.2024840000,384,-7.3828000000,385,-0.0326676000,386,2.7709200000,387,0.0401513000,388,1.1919900000,389,-0.4846550000,390,-0.4616290000,391,0.1440200000,392,1.5055000000,393,-0.6026050000,394,-1.8613700000,395,-0.7567120000,396,3.2556800000,397,1.3656000000,398,1.2808600000,399,0.0945147000,400,1.2902700000,401,2.1098700000,402,2.7831500000,403,1.0364200000,404,-0.0994671000 +243,0,-0.4485510000,448,-1.0000000000,355,0.5013650000,356,0.7836970000,357,-4.2948600000,358,-1.7253800000,359,0.2190970000,360,-0.2756980000,361,0.8279050000,362,3.1905000000,363,0.3525150000,364,0.5980900000,365,-1.9768000000,366,-0.4302040000,367,-0.6459830000,368,0.1600160000,369,0.0142275000,370,0.2742760000,371,0.7446520000,372,1.2390500000,373,1.4247100000,374,-1.7068100000,375,-0.1593290000,376,-0.5836860000,377,0.1843230000,378,-1.6423300000,379,-0.5873340000,380,-2.2176700000,381,2.4287500000,382,0.2630130000,383,0.5519010000,384,-5.0930700000,385,0.4153550000,386,-0.8908130000,387,0.0306640000,388,-3.1260500000,389,0.2411480000,390,-0.8432090000,391,-3.3339900000,392,-2.5771200000,393,-2.7084400000,394,-0.9517190000,395,-1.8754900000,396,-2.8864600000,397,0.5762500000,398,0.4468410000,399,1.2058100000,400,-2.5891500000,401,0.6288120000,402,-1.4425500000,403,-1.6910500000,404,-0.0511532000 +244,0,1.1849700000,449,-1.0000000000,355,-4.3684200000,356,-0.7804470000,357,-3.1370600000,358,-0.1847540000,359,0.2500050000,360,-0.1744590000,361,-1.8051200000,362,0.1869120000,363,-0.5314860000,364,0.5489270000,365,-0.0308020000,366,-0.0389521000,367,-0.0113974000,368,0.8293660000,369,0.0127621000,370,-0.1805230000,371,-1.3598300000,372,-0.3493510000,373,-0.8738280000,374,0.6513190000,375,-0.2066480000,376,0.7557980000,377,-4.5972700000,378,-3.6691100000,379,0.2956980000,380,-1.1273200000,381,0.7710730000,382,-2.1915700000,383,-1.1695400000,384,0.6473280000,385,0.7010360000,386,-0.4710210000,387,0.0393557000,388,-3.6121700000,389,-0.3230650000,390,-0.2888020000,391,0.1992270000,392,-0.1346210000,393,0.5504020000,394,-1.0332800000,395,0.7503860000,396,-6.1322700000,397,-0.3703240000,398,-0.2867060000,399,-0.7136210000,400,-0.6196860000,401,-0.7805310000,402,0.7817670000,403,-2.6762700000,404,0.2708170000 +245,0,-3.7723400000,450,-1.0000000000,355,-1.5748600000,356,1.2854100000,357,0.4584480000,358,-0.0510947000,359,-0.2209070000,360,-0.0784568000,361,-0.5218280000,362,-0.5735460000,363,0.4742250000,364,0.5957800000,365,-0.6035490000,366,-0.4357290000,367,0.4511410000,368,-2.1044600000,369,-0.0092932000,370,-0.2812810000,371,1.4165700000,372,-2.6550300000,373,1.2851800000,374,-0.0108327000,375,0.1143590000,376,2.3794700000,377,3.5910300000,378,-1.9664100000,379,0.0161679000,380,-6.6157800000,381,0.0198337000,382,-1.2325500000,383,0.0300200000,384,-1.5145300000,385,0.6155520000,386,0.6062170000,387,0.0454486000,388,1.2838000000,389,-0.2954260000,390,-0.8004680000,391,0.1139390000,392,-3.0990600000,393,1.4395200000,394,-6.4851500000,395,1.0155500000,396,0.5412740000,397,-0.6684770000,398,-3.9967300000,399,0.7478750000,400,-1.2021200000,401,-0.6793640000,402,-0.0335328000,403,-1.1830000000,404,1.3556700000 +246,0,-2.0119800000,451,-1.0000000000,355,1.2482100000,356,-2.6469800000,357,-3.1675500000,358,-2.0253000000,359,-0.9332890000,360,-1.8668700000,361,-2.5408400000,362,2.0139500000,363,-1.6837100000,364,-0.2514130000,365,0.2976940000,366,0.9868520000,367,-0.1770830000,368,-0.0603883000,369,-0.0267881000,370,0.2197720000,371,-0.7495540000,372,-1.6123200000,373,0.1322520000,374,-1.3225100000,375,-0.0587595000,376,1.6304100000,377,0.5860080000,378,0.9525440000,379,-0.7302580000,380,-1.5209900000,381,0.4276140000,382,0.6919690000,383,0.0970787000,384,-0.1293460000,385,0.5214650000,386,-1.5540200000,387,-0.0255829000,388,-1.6633300000,389,0.1901060000,390,-1.0892500000,391,-0.0182907000,392,-0.3157020000,393,-5.4996700000,394,-2.9371400000,395,-2.5754900000,396,0.7580740000,397,-0.2281130000,398,-1.3076700000,399,1.7358700000,400,0.0147924000,401,1.1506400000,402,-0.7419410000,403,-4.1818000000,404,-0.2409910000 +247,0,-1.1504400000,452,-1.0000000000,355,-7.1807500000,356,-1.8461200000,357,-0.4366770000,358,-1.5364300000,359,-3.4085000000,360,-5.9739200000,361,-0.1797950000,362,-2.8752200000,363,2.6957400000,364,1.7012000000,365,-0.4865700000,366,-0.6529040000,367,-1.4495800000,368,1.3645400000,369,-0.0373875000,370,-4.3403800000,371,0.3940500000,372,-5.5049500000,373,3.0538400000,374,-3.4126500000,375,0.7446180000,376,-6.4328500000,377,2.6243200000,378,-7.3684200000,379,-0.5614020000,380,-0.4279630000,381,-5.2993400000,382,1.2475900000,383,5.3647100000,384,-1.3449400000,385,1.1412800000,386,-3.5324800000,387,-0.0404875000,388,-0.6459200000,389,0.0823690000,390,-4.4253600000,391,-5.3752200000,392,2.0514300000,393,-2.0179300000,394,-3.1117200000,395,-5.2571600000,396,-1.6422700000,397,0.3170410000,398,-5.3439000000,399,-2.0700200000,400,-7.2703200000,401,-2.4510000000,402,-0.7302350000,403,-4.2416700000,404,-2.2323900000 +248,0,4.2830000000,453,-1.0000000000,355,-0.9179690000,356,0.0847078000,357,-2.1204900000,358,1.0311600000,359,-0.8766900000,360,0.3907490000,361,2.5155800000,362,0.5404420000,363,1.7523200000,364,-0.9016480000,365,0.4249330000,366,-0.2634280000,367,-0.1616190000,368,-0.5895010000,369,-0.0240157000,370,-0.1228100000,371,0.6161920000,372,0.3372500000,373,3.2596100000,374,-0.5229650000,375,0.4261050000,376,-0.4886020000,377,0.9400040000,378,1.6585100000,379,-0.1865090000,380,0.5027680000,381,-0.7749560000,382,0.1992470000,383,1.0985100000,384,-2.9415300000,385,-2.2648200000,386,0.1736670000,387,0.0261898000,388,1.3549200000,389,-0.3159550000,390,0.1878890000,391,-0.4609190000,392,0.5546810000,393,-0.6647280000,394,-0.8144540000,395,1.0425600000,396,-0.4943260000,397,0.2148670000,398,-1.2140800000,399,0.6039430000,400,0.2967040000,401,-0.1499020000,402,1.3424100000,403,2.1562600000,404,-0.4308890000 +249,0,1.9330400000,454,-1.0000000000,355,0.7771680000,356,-0.2340620000,357,1.0264600000,358,-0.5043170000,359,-0.0741322000,360,0.2808060000,361,1.2857500000,362,-0.5512980000,363,0.0369624000,364,-0.1520700000,365,0.4987440000,366,-0.1676230000,367,-0.3707100000,368,0.3219910000,369,-0.0206554000,370,0.1150000000,371,-1.7751600000,372,-0.5585690000,373,-1.1671100000,374,0.8227880000,375,-0.2175010000,376,-0.4386440000,377,0.5304740000,378,-0.3564220000,379,0.2110240000,380,-0.8329800000,381,0.7461990000,382,-0.0492386000,383,0.1164150000,384,-0.1827830000,385,0.2924390000,386,0.5735920000,387,-0.0444169000,388,0.3075190000,389,-0.2860020000,390,-0.0350511000,391,-0.4441720000,392,-1.0465500000,393,-2.3971600000,394,0.2982790000,395,0.3415720000,396,0.9497550000,397,0.1967260000,398,-0.6661470000,399,0.8945990000,400,-0.8344470000,401,0.4650650000,402,-0.4111740000,403,0.4696710000,404,0.2137720000 +250,0,0.4454620000,505,-1.0000000000,455,0.1238550000,456,-0.0299898000,457,-0.0343471000,458,0.2356820000,459,0.0516264000,460,0.1855340000,461,0.1705250000,462,0.2168460000,463,-0.0963596000,464,0.2994630000,465,-0.2271080000,466,0.0258500000,467,-0.1087110000,468,-0.0265335000,469,0.0388110000,470,0.0318146000,471,0.0329355000,472,0.1251230000,473,-0.2101730000,474,-0.0703912000,475,0.2400420000,476,0.3070590000,477,0.1526780000,478,0.1086250000,479,0.1703320000,480,0.1362560000,481,-0.0505293000,482,0.0726599000,483,-0.0820902000,484,-0.0419387000,485,-0.1428130000,486,0.0955707000,487,-0.0487213000,488,0.0921361000,489,0.1141470000,490,0.1647400000,491,0.1307360000,492,0.0803449000,493,0.0892799000,494,0.1510440000,495,-0.0494331000,496,0.0908337000,497,0.1347770000,498,-0.0603749000,499,0.2725770000,500,-0.0481289000,501,0.0083200800,502,-0.0435336000,503,0.0363770000,504,0.3353540000 +251,0,-0.0056240000,506,-1.0000000000,455,0.6161400000,456,-0.7979870000,457,-1.0900400000,458,0.0218984000,459,-1.0981100000,460,-0.7664490000,461,0.3354190000,462,-0.4259390000,463,-2.1713400000,464,0.4350600000,465,-0.2099320000,466,0.7476980000,467,-1.4025500000,468,-0.4993950000,469,-0.0470160000,470,-0.3799430000,471,-0.9529550000,472,0.0372594000,473,-1.4505300000,474,0.0403876000,475,-1.4961500000,476,-0.6325660000,477,-2.2029800000,478,-0.2069580000,479,-2.6797000000,480,-0.2673130000,481,-0.1895270000,482,-3.1203100000,483,-0.4515790000,484,-0.5213630000,485,-1.9816800000,486,0.0389472000,487,-1.5249500000,488,-4.0354000000,489,-0.0212557000,490,-0.1900090000,491,0.7266040000,492,-0.0100266000,493,-0.4585880000,494,0.7388780000,495,0.2672630000,496,-0.1416660000,497,-0.6024110000,498,0.3391950000,499,0.3105460000,500,-3.1003400000,501,-0.2554060000,502,-0.5237850000,503,-0.5823780000,504,-1.0820700000 +252,0,-5.8906800000,507,-1.0000000000,455,-0.9344630000,456,-4.0384600000,457,-0.4586390000,458,-1.4557400000,459,0.4560410000,460,-1.4868100000,461,0.0862829000,462,-2.3513500000,463,-0.5868160000,464,-1.8803900000,465,-0.5739760000,466,-2.2661500000,467,-0.9611800000,468,-1.6113000000,469,0.5555890000,470,-0.7554940000,471,-3.5682600000,472,0.4648080000,473,-1.6838900000,474,-0.1674300000,475,-0.9946040000,476,-2.2334200000,477,-2.7118900000,478,-0.2435340000,479,-6.9817800000,480,-1.9641500000,481,-1.0758500000,482,0.1192880000,483,-2.4940000000,484,-0.5421280000,485,-0.4612990000,486,1.0870400000,487,-2.4354500000,488,-4.0806600000,489,-1.1370000000,490,0.4556880000,491,-3.0550600000,492,-8.4506700000,493,-2.5929300000,494,-1.6721700000,495,-4.6906400000,496,-0.6728840000,497,-2.5495800000,498,0.0702966000,499,-2.0687800000,500,-0.2238590000,501,-3.0021800000,502,-1.8215100000,503,0.6242970000,504,-8.0031300000 +253,0,-0.2778410000,508,-1.0000000000,455,-1.1095600000,456,0.0916141000,457,-1.4934500000,458,-2.7787900000,459,-2.4746200000,460,-0.6076460000,461,-3.6214500000,462,0.9613190000,463,-0.9732820000,464,2.4115600000,465,-0.9038970000,466,-0.2688010000,467,-0.9911200000,468,0.8211540000,469,1.1230700000,470,-0.4040020000,471,0.2631770000,472,-0.0865671000,473,-1.7233700000,474,-0.3307450000,475,-4.3001800000,476,0.6278720000,477,-0.0930876000,478,0.8575160000,479,-1.8931100000,480,0.2080590000,481,-0.3539510000,482,-0.3569490000,483,-0.6931320000,484,-0.0200537000,485,-1.3915900000,486,-0.3595000000,487,-0.4093110000,488,-0.3032250000,489,-0.0528270000,490,-0.6677490000,491,-0.7137860000,492,-0.3175940000,493,-1.1382700000,494,-0.3647540000,495,1.7424200000,496,1.0479400000,497,0.8174330000,498,-0.3314310000,499,-0.2470770000,500,0.0468902000,501,0.3851750000,502,-1.8536100000,503,1.8786200000,504,0.3999410000 +254,0,-1.4084000000,509,-1.0000000000,455,-0.1406150000,456,-0.0328776000,457,0.0619580000,458,0.2707630000,459,-0.0507667000,460,0.2641210000,461,-0.4112120000,462,0.1034080000,463,0.4808760000,464,-0.3564150000,465,0.0355590000,466,0.1777810000,467,0.0658863000,468,0.0965507000,469,-0.0856782000,470,-0.0320842000,471,-0.2126090000,472,-0.4082190000,473,0.0120666000,474,-0.0820868000,475,0.4486430000,476,-0.2271200000,477,-0.4124040000,478,-0.3668460000,479,-0.1014470000,480,0.2376930000,481,-0.0670232000,482,0.0720805000,483,-0.2578650000,484,-0.1902440000,485,0.1271860000,486,-0.2803260000,487,-0.0366733000,488,-0.4743690000,489,-0.0405002000,490,-0.2489210000,491,0.1557820000,492,0.2550190000,493,0.2699620000,494,-0.3018620000,495,0.1377650000,496,0.1108570000,497,0.1026780000,498,-0.1962650000,499,-0.3172400000,500,-0.1187660000,501,-0.3489610000,502,-0.1068190000,503,0.1034400000,504,0.2109100000 +255,0,-0.0146208000,510,-1.0000000000,455,0.0154575000,456,-0.0152747000,457,0.0624913000,458,-0.1036110000,459,-0.0783141000,460,0.1326920000,461,0.0058271700,462,0.0243111000,463,0.2579910000,464,-0.4117870000,465,0.0254967000,466,-0.0017137800,467,0.0362288000,468,0.1163870000,469,0.0482657000,470,-0.1510130000,471,-0.6426370000,472,0.1174780000,473,-0.0144038000,474,-0.0505639000,475,0.2721930000,476,0.0273754000,477,-0.0722237000,478,-0.1457650000,479,0.1492110000,480,0.2293660000,481,-0.0683848000,482,0.1717320000,483,0.0438960000,484,-0.0468250000,485,0.0470827000,486,-0.0065321700,487,0.0208570000,488,-0.6418730000,489,-0.1966920000,490,-0.0122191000,491,0.0582709000,492,0.2004970000,493,0.1227130000,494,-0.0611927000,495,-0.0266303000,496,0.0438350000,497,0.0101869000,498,-0.0569911000,499,-0.0586743000,500,-0.0530150000,501,0.1383880000,502,-0.0720266000,503,0.2975810000,504,0.4959510000 +256,0,-3.3904600000,511,-1.0000000000,455,-5.0290900000,456,-0.9895800000,457,0.2690590000,458,-0.5212490000,459,0.6818360000,460,-4.2730500000,461,-2.8553300000,462,-1.2562200000,463,-1.6386000000,464,-0.8039680000,465,-2.2897900000,466,-4.9544000000,467,0.2422350000,468,-3.2774500000,469,0.0789089000,470,0.5985030000,471,0.1899920000,472,-0.9512540000,473,-3.3396900000,474,-0.4380180000,475,-1.0299200000,476,-1.3295000000,477,-1.9897000000,478,-3.1380300000,479,-5.2238800000,480,-6.1268900000,481,-0.0811725000,482,-2.4697600000,483,-3.1553600000,484,0.2627640000,485,0.1238730000,486,0.1697600000,487,-0.5963500000,488,0.0897965000,489,-0.6709790000,490,-1.9853500000,491,-1.7004600000,492,-3.8467700000,493,-1.6339700000,494,0.1119620000,495,-1.8031100000,496,-0.9523150000,497,-3.8854800000,498,-2.8961100000,499,-0.2951070000,500,-0.7382260000,501,-4.0424600000,502,-0.8395950000,503,-2.9833300000,504,-0.2297860000 +257,0,5.8207200000,512,-1.0000000000,455,1.3993300000,456,0.1679740000,457,-2.4298800000,458,-3.3873800000,459,-0.6634410000,460,0.3794580000,461,0.2088610000,462,-0.1872230000,463,2.7758000000,464,2.6318200000,465,-0.4033730000,466,-1.3604400000,467,-0.1694620000,468,-0.8685900000,469,0.0388585000,470,0.3441690000,471,1.6377700000,472,-1.6441200000,473,0.1079760000,474,-0.4283820000,475,-0.4555500000,476,0.2605690000,477,-1.2263900000,478,-0.1833930000,479,0.2393930000,480,0.4506960000,481,-0.4025450000,482,-1.1124200000,483,0.1049630000,484,0.7920250000,485,-1.7864800000,486,-0.5952140000,487,-0.5486350000,488,1.3636500000,489,-0.0550493000,490,0.6344730000,491,-0.2154700000,492,0.7449040000,493,-0.0456902000,494,-0.5846490000,495,1.5870200000,496,0.2420470000,497,-2.5991800000,498,0.5228150000,499,1.9384300000,500,0.0319371000,501,0.7249460000,502,-1.1998000000,503,0.0179568000,504,0.7710900000 +258,0,7.1486400000,513,-1.0000000000,455,-0.7356810000,456,-0.0817294000,457,-3.3934400000,458,-2.8011200000,459,0.0596875000,460,0.0493505000,461,0.7444180000,462,0.5521340000,463,-1.9907400000,464,0.1512130000,465,0.4094650000,466,1.2472000000,467,-0.6085340000,468,0.2206090000,469,-0.8284470000,470,0.2478130000,471,0.6862390000,472,2.8443600000,473,-0.4368280000,474,-0.5429800000,475,0.6180840000,476,1.8577400000,477,-1.8967500000,478,1.5644200000,479,0.6216960000,480,-0.7633320000,481,-0.4625430000,482,-1.0933400000,483,0.4150400000,484,0.2830120000,485,-0.4376850000,486,-1.2564700000,487,1.2081900000,488,0.9403960000,489,-0.3668610000,490,-1.0567600000,491,-0.3951590000,492,0.8686060000,493,-0.2963240000,494,2.5924600000,495,0.0790445000,496,-0.4137370000,497,-1.7446100000,498,-1.9204500000,499,0.4575040000,500,0.1598540000,501,1.6391000000,502,0.3690590000,503,-3.4178900000,504,0.9507660000 +259,0,-4.2595200000,514,-1.0000000000,455,-1.4734000000,456,-2.1082000000,457,0.4791220000,458,-2.7391300000,459,-0.5506050000,460,-2.1536900000,461,-3.7923800000,462,-2.4268900000,463,-3.1181400000,464,-2.3970900000,465,-0.8627100000,466,-3.0833100000,467,-0.4329330000,468,-0.9896360000,469,-0.1688060000,470,-0.9596340000,471,-1.1936600000,472,-1.3665400000,473,-1.4868600000,474,0.0120901000,475,-6.7471300000,476,1.9748500000,477,-1.6311300000,478,-1.9798100000,479,-1.0563500000,480,-5.6423600000,481,-1.1410300000,482,0.0250733000,483,-1.5838000000,484,-0.7746800000,485,-0.2370410000,486,-1.9984700000,487,-2.4161300000,488,0.3417010000,489,0.0078905800,490,-2.2824000000,491,-6.2384500000,492,-0.7466680000,493,-4.2602000000,494,-2.1391600000,495,-4.5158600000,496,-0.6488410000,497,-4.7220700000,498,-3.1075400000,499,0.9546050000,500,0.3822340000,501,-2.4085600000,502,-0.1549390000,503,-3.1771600000,504,-3.5325300000 +260,0,5.8901700000,515,-1.0000000000,455,1.1901100000,456,0.5904540000,457,-0.0360044000,458,-1.8348700000,459,-1.7579200000,460,0.0888361000,461,-1.3279300000,462,1.0084900000,463,-1.4831100000,464,-0.7136760000,465,-0.1760580000,466,-1.0130300000,467,0.1856160000,468,0.2432590000,469,-0.6175020000,470,0.0361806000,471,0.4154120000,472,-4.4581000000,473,-0.8434050000,474,-0.2252100000,475,-1.4744000000,476,0.8364510000,477,-1.7931400000,478,-2.3554000000,479,1.5593300000,480,-1.0398900000,481,-0.6193160000,482,-1.6750900000,483,0.4391830000,484,0.9945430000,485,1.1321700000,486,0.7427050000,487,0.6054560000,488,-1.8538000000,489,1.0593400000,490,1.0927300000,491,-0.0409579000,492,-6.9051900000,493,0.2800310000,494,-0.8143900000,495,-3.8672900000,496,0.3396050000,497,-0.1549980000,498,1.4801200000,499,1.0863500000,500,-0.6732550000,501,-3.7111100000,502,-0.8480020000,503,1.9453800000,504,1.1153300000 +261,0,6.1283200000,516,-1.0000000000,455,2.1387200000,456,-0.3840150000,457,0.0325716000,458,2.3103500000,459,-0.7298380000,460,-2.7532800000,461,2.8075500000,462,-2.0091100000,463,1.3290300000,464,-0.9937040000,465,-0.7673470000,466,0.1021280000,467,-0.4081520000,468,-0.3199320000,469,0.1625250000,470,-1.3883800000,471,1.0831400000,472,-1.2964100000,473,-0.7549680000,474,-0.6179680000,475,-1.4860600000,476,2.8466500000,477,0.1338830000,478,-8.6737600000,479,-2.4466900000,480,1.2516500000,481,-0.7007370000,482,-0.9177750000,483,-0.5832200000,484,1.1834000000,485,0.7435880000,486,-0.7258660000,487,0.7793310000,488,-1.0998900000,489,-0.1048650000,490,-1.0003900000,491,0.9440270000,492,0.2628440000,493,0.1675020000,494,-3.7827800000,495,3.5527100000,496,0.4144950000,497,-6.7559700000,498,0.7772880000,499,1.7913000000,500,0.8378430000,501,-0.6477560000,502,0.3182280000,503,2.4364800000,504,-1.1910800000 +262,0,-0.1922750000,517,-1.0000000000,455,-0.0082320000,456,0.0102005000,457,-0.0004912710,458,0.0163872000,459,-0.0004642300,460,-0.0002434300,461,-0.0114420000,462,-0.0008885600,463,-0.0315238000,464,-0.0014814000,465,-0.0048517700,466,-0.0052456500,467,-0.0002993410,468,0.0039709100,469,0.0025253300,470,0.0013723200,471,0.0172572000,472,-0.0064972600,473,-0.0044087800,474,-0.0016347800,475,-0.0160654000,476,0.0078917600,477,0.0042124200,478,-0.0001563590,479,-0.0140977000,480,0.0073128000,481,-0.0085015200,482,-0.0012986400,483,0.0125812000,484,-0.0096588400,485,0.0075842000,486,0.0029266300,487,-0.0033545400,488,0.0061196300,489,-0.0321971000,490,-0.0087894500,491,0.0036969000,492,0.0040071100,493,0.0173491000,494,0.0017367500,495,-0.0102444000,496,-0.0003607910,497,0.0006236590,498,0.0074996300,499,0.0669804000,500,-0.0025969500,501,0.0180108000,502,0.0011620600,503,0.0130094000,504,0.0204745000 +263,0,-0.1213890000,518,-1.0000000000,455,0.0144718000,456,0.0395863000,457,-0.0408428000,458,-0.0539772000,459,-0.0224474000,460,-0.0091933400,461,0.0509164000,462,-4.3745400000,463,0.0019885000,464,0.0451722000,465,-0.0017918600,466,-0.0430613000,467,-0.0148658000,468,-0.0137742000,469,0.0425592000,470,0.0763691000,471,0.0367586000,472,-0.3000860000,473,-0.0304270000,474,-0.0388336000,475,-0.1505960000,476,0.0595673000,477,-0.2835660000,478,-0.0072300900,479,0.0262911000,480,-1.1340100000,481,-0.0126844000,482,-0.0157724000,483,0.0561185000,484,-0.0392274000,485,0.0386983000,486,-0.0198933000,487,-0.0362112000,488,0.0145130000,489,-0.2988900000,490,-0.1400810000,491,-0.0328733000,492,0.0122135000,493,0.0084718100,494,-0.0476076000,495,-0.0486345000,496,-0.0097292300,497,0.0864738000,498,-0.0092033900,499,0.0132111000,500,0.0221306000,501,0.0327418000,502,0.0202536000,503,0.0436326000,504,-0.1555860000 +264,0,5.7366000000,519,-1.0000000000,455,1.9380400000,456,-0.9983900000,457,0.9297920000,458,1.6135100000,459,-0.1255530000,460,1.3146900000,461,2.9305600000,462,0.4824630000,463,3.2739000000,464,0.6020220000,465,-3.2328000000,466,0.9698400000,467,-0.2706630000,468,1.9197500000,469,-0.4621320000,470,-1.2781400000,471,-1.4437400000,472,-0.2308920000,473,-1.7739300000,474,-0.5112840000,475,-0.9423430000,476,3.9375700000,477,2.7229200000,478,0.9202400000,479,2.2399700000,480,-9.2462200000,481,0.3101640000,482,-2.6391000000,483,-0.2381810000,484,0.1231110000,485,1.5219700000,486,-1.5292300000,487,0.2230030000,488,2.9671600000,489,-0.3419900000,490,2.0658900000,491,1.1719100000,492,0.8711080000,493,0.3341270000,494,-0.9135980000,495,-0.5609810000,496,0.1210850000,497,-1.9285000000,498,-0.5848800000,499,0.1866410000,500,0.1589590000,501,1.5636400000,502,0.1377150000,503,-1.2722000000,504,-0.7402910000 +265,0,-3.0836500000,520,-1.0000000000,455,-2.8169500000,456,0.5347680000,457,0.6051450000,458,-2.5513500000,459,-2.6827200000,460,-3.6789200000,461,-2.7459900000,462,-2.3864700000,463,-6.8214600000,464,-3.3970600000,465,-1.2261400000,466,-5.8559700000,467,0.3847980000,468,-3.3198400000,469,0.4800870000,470,-0.5983580000,471,-4.4371100000,472,-0.7413570000,473,-0.6627480000,474,0.0033692800,475,-4.8462400000,476,-2.7156500000,477,-4.6666800000,478,-0.8634830000,479,-3.7425900000,480,-5.8194000000,481,-0.1483000000,482,-3.7522300000,483,-0.3566940000,484,-4.0298300000,485,-3.8983200000,486,-1.8303800000,487,-0.6796770000,488,-1.9847600000,489,0.1987170000,490,-2.1887500000,491,-4.1283200000,492,-2.3898600000,493,-3.0996900000,494,-3.4152100000,495,-4.4950500000,496,-3.4220100000,497,-1.7352400000,498,-1.0093900000,499,2.5291000000,500,-2.1449400000,501,-4.1129500000,502,-0.1808310000,503,-2.1466000000,504,-3.3508800000 +266,0,-0.7835430000,521,-1.0000000000,455,-0.0259384000,456,0.0026732600,457,0.0167733000,458,-0.0395070000,459,-0.0128416000,460,0.0740196000,461,-0.1274600000,462,0.0870605000,463,0.1234280000,464,-0.1390360000,465,0.0145428000,466,0.0658810000,467,0.0270765000,468,0.0142159000,469,-0.0230461000,470,-0.0160471000,471,-0.0341077000,472,-0.1218960000,473,-0.0143922000,474,-0.0237965000,475,0.1556660000,476,-0.0326174000,477,-0.1267040000,478,-0.1171990000,479,-0.0661259000,480,0.0452967000,481,-0.0264141000,482,0.0129373000,483,-0.0758754000,484,-0.0799163000,485,0.0638692000,486,-0.0805736000,487,-0.0155055000,488,-0.0955451000,489,-0.0146018000,490,-0.0763941000,491,0.0599858000,492,0.0752563000,493,0.0987899000,494,-0.0659263000,495,0.0535416000,496,0.0647694000,497,0.0234577000,498,-0.0503797000,499,-0.0077684900,500,-0.0444287000,501,-0.0886129000,502,-0.0249758000,503,-0.0256339000,504,0.0309703000 +267,0,5.5809200000,522,-1.0000000000,455,-0.8244460000,456,-0.6207430000,457,-1.0137900000,458,-0.2116050000,459,0.2924180000,460,0.4829030000,461,-0.4668180000,462,0.0318788000,463,1.1119800000,464,1.5602800000,465,-0.5379520000,466,0.1712490000,467,-0.1405900000,468,-0.3947770000,469,0.6997330000,470,-0.3225900000,471,0.9255490000,472,1.1851200000,473,-0.1836410000,474,-0.1927740000,475,-1.6034200000,476,0.9852160000,477,1.2395700000,478,-0.6541090000,479,1.3973400000,480,0.6460590000,481,-1.0774900000,482,-0.9206450000,483,1.1999100000,484,0.9984090000,485,-0.4214740000,486,0.3485740000,487,-0.5939710000,488,1.3409700000,489,1.4592400000,490,0.7581080000,491,-0.1967430000,492,-0.4306950000,493,-0.1273980000,494,0.4059910000,495,2.2948900000,496,0.6151820000,497,0.7534600000,498,0.0194317000,499,1.6731900000,500,-0.0599303000,501,0.5911880000,502,-0.6680120000,503,0.7893800000,504,0.5559700000 +268,0,1.2775000000,523,-1.0000000000,455,-1.7632200000,456,-0.2594170000,457,-2.5132000000,458,-1.0286900000,459,-0.3929560000,460,0.3707270000,461,-1.6711500000,462,0.1163400000,463,0.1183500000,464,-0.8056230000,465,-0.0853358000,466,-3.1138800000,467,0.0680274000,468,-2.3856300000,469,-0.0155036000,470,-1.0735600000,471,-1.7434200000,472,0.7943240000,473,-0.2171010000,474,-0.1224990000,475,0.0411452000,476,-1.4414300000,477,-1.1055100000,478,-0.6739790000,479,0.5017170000,480,0.1636120000,481,-0.5488230000,482,-1.0907100000,483,-1.9920700000,484,-1.2222800000,485,-0.1571030000,486,-0.5036320000,487,-0.0219095000,488,-0.1693710000,489,-0.6512180000,490,-0.3010450000,491,-0.6360670000,492,-0.2978920000,493,-2.2589300000,494,-0.1759600000,495,-1.1608600000,496,-0.1343750000,497,0.0393996000,498,-1.2032900000,499,-1.2867700000,500,-1.8410500000,501,-0.4841520000,502,0.1252150000,503,-0.2159500000,504,-1.7599700000 +269,0,9.1302000000,524,-1.0000000000,455,2.9854100000,456,-8.1792200000,457,1.1568500000,458,-3.0537700000,459,0.6205630000,460,1.9280500000,461,3.0225600000,462,-0.8728020000,463,-2.7559700000,464,-0.4335230000,465,-0.7011530000,466,3.1146300000,467,-0.0286466000,468,-7.5615400000,469,-0.4563110000,470,0.1777760000,471,3.2091600000,472,2.7839300000,473,-1.8620000000,474,-0.8785330000,475,-0.4843000000,476,2.7748100000,477,0.1496790000,478,-5.5392600000,479,1.7653400000,480,-0.0508115000,481,-1.0152800000,482,2.4682500000,483,-0.3684450000,484,-0.0607801000,485,-2.5507700000,486,-1.6038500000,487,0.0424505000,488,1.7163500000,489,2.5074100000,490,-4.3050000000,491,2.6477800000,492,-6.9679000000,493,-0.0419679000,494,1.4709500000,495,0.3771650000,496,-5.5875300000,497,2.2844100000,498,0.1059420000,499,1.0518700000,500,-0.5219580000,501,-6.0107900000,502,0.4280030000,503,0.3008710000,504,3.3772400000 +270,0,1.6080000000,525,-1.0000000000,455,-6.3921500000,456,-0.5347940000,457,-3.1264900000,458,-4.7394300000,459,-3.9029200000,460,-2.2073700000,461,-1.9102700000,462,-3.0471600000,463,-2.7910300000,464,-1.4721200000,465,-0.3091670000,466,-3.8816400000,467,0.2708950000,468,-0.6685010000,469,-6.5009300000,470,-2.9485500000,471,-3.9540600000,472,-2.7416500000,473,-5.2394100000,474,0.4928420000,475,-0.8817760000,476,-0.6230090000,477,-3.0788800000,478,-2.0035500000,479,-1.0999700000,480,-7.8004200000,481,-2.5022300000,482,-2.4582300000,483,-4.5611600000,484,-2.8927400000,485,-7.5800400000,486,-4.4806700000,487,-1.7024600000,488,-1.4571300000,489,0.0814941000,490,-0.1753250000,491,-2.6286000000,492,-1.3286300000,493,-3.3954600000,494,-0.3285440000,495,-3.6138300000,496,-4.1654900000,497,-0.5203390000,498,-0.8470810000,499,-1.9789600000,500,-1.9305700000,501,-1.1701900000,502,-3.8591300000,503,-3.8829600000,504,-2.5108400000 +271,0,-3.3912800000,526,-1.0000000000,455,0.0118870000,456,0.5868170000,457,-2.1757900000,458,-0.2743310000,459,-0.5197730000,460,-1.7415400000,461,-3.8306400000,462,-0.0985378000,463,-2.0302300000,464,-0.8534860000,465,-0.8037850000,466,-2.4479600000,467,-0.3983830000,468,-1.7938900000,469,0.2561700000,470,-0.6872530000,471,-1.2169400000,472,-1.1336000000,473,-1.5086900000,474,0.0072967800,475,0.1591440000,476,-0.1403420000,477,-1.5492000000,478,-1.3386300000,479,-2.6457200000,480,-0.5157530000,481,-2.0256300000,482,-0.2766810000,483,0.0909275000,484,-1.3808200000,485,-3.9358000000,486,-0.0299448000,487,0.0383969000,488,-0.1629120000,489,0.1522650000,490,-0.4019570000,491,-0.4726150000,492,-2.3768800000,493,-1.8211900000,494,-0.4866590000,495,-1.7484300000,496,-2.4320800000,497,-2.2866800000,498,-3.0077800000,499,0.2603460000,500,0.2595110000,501,0.8108530000,502,-2.7318100000,503,-0.2287760000,504,-2.2587300000 +272,0,3.9980900000,527,-1.0000000000,455,-0.5868930000,456,-0.6622660000,457,0.2181610000,458,-0.3267070000,459,-1.9283200000,460,-0.3401660000,461,0.6857920000,462,-8.2929100000,463,-2.2593700000,464,1.0246700000,465,-0.0820959000,466,1.2325300000,467,-0.1128660000,468,0.1097180000,469,0.2297510000,470,-0.2559240000,471,-0.1785800000,472,-0.9965440000,473,-0.6955720000,474,-0.2694420000,475,0.9591980000,476,1.2152100000,477,1.2810500000,478,-0.6425180000,479,0.4759090000,480,-0.6661980000,481,-0.6594070000,482,0.2208030000,483,1.2830500000,484,0.7416570000,485,0.1201700000,486,0.8436050000,487,-0.2411900000,488,1.4211100000,489,-0.2962280000,490,0.9012680000,491,0.8757350000,492,0.1469660000,493,-0.1107360000,494,0.9756720000,495,1.3488700000,496,-0.0232133000,497,0.2083040000,498,0.5438850000,499,0.4945230000,500,0.0979934000,501,-0.2697330000,502,-0.0309666000,503,1.3789000000,504,0.4538140000 +273,0,-1.5608700000,528,-1.0000000000,455,-2.4670800000,456,-1.5123900000,457,-3.2843000000,458,0.2710780000,459,-3.6929100000,460,0.9063180000,461,-2.3767500000,462,-1.4424500000,463,-2.8596000000,464,-0.0249811000,465,-1.2005400000,466,-2.3475200000,467,-1.9190800000,468,-1.5869600000,469,-0.1850050000,470,-1.3116400000,471,-2.0366300000,472,-0.9210210000,473,-1.4002200000,474,0.5316550000,475,-2.0227000000,476,-2.6201300000,477,-4.5437400000,478,-0.1546540000,479,-3.7356100000,480,-2.0381100000,481,-1.0181200000,482,-2.6081900000,483,-4.6596800000,484,-2.2284500000,485,-0.8390880000,486,-0.0311362000,487,-2.2065600000,488,-1.8871100000,489,-0.0539101000,490,-1.1617600000,491,-4.4017800000,492,-1.2965200000,493,-5.3421800000,494,-0.0599998000,495,-0.0937584000,496,0.3661870000,497,-0.7420220000,498,-2.1868300000,499,-1.2803400000,500,-4.2132100000,501,-0.4703560000,502,-0.0104636000,503,-3.2510000000,504,-3.0782600000 +274,0,10.4304000000,529,-1.0000000000,455,1.7776100000,456,-1.2753500000,457,-1.0820700000,458,-1.5297400000,459,-2.5291100000,460,1.0331500000,461,1.2909800000,462,2.7163800000,463,1.5392500000,464,0.0442561000,465,-1.1105900000,466,2.2880200000,467,0.7949770000,468,-3.9334300000,469,-1.2854400000,470,-0.9277550000,471,1.4934300000,472,5.4705000000,473,-1.7248500000,474,-0.9434520000,475,1.3097000000,476,-0.0008965270,477,-3.3329400000,478,-7.7914700000,479,3.4720600000,480,0.4101910000,481,-0.7795150000,482,-1.5753100000,483,0.3988570000,484,0.1838410000,485,-0.3201370000,486,2.4345100000,487,1.8783200000,488,-3.4957800000,489,1.9511400000,490,3.5055000000,491,0.7277060000,492,0.7004130000,493,-0.3030310000,494,3.3681800000,495,0.6308100000,496,-0.3339940000,497,-3.4538600000,498,-1.6762400000,499,-1.1975400000,500,-1.1382400000,501,-1.3283000000,502,1.2883400000,503,1.8672800000,504,-1.9646800000 +275,0,8.9821700000,530,-1.0000000000,455,-0.7399690000,456,-0.6901710000,457,1.0851400000,458,3.7418500000,459,0.3133160000,460,1.2059800000,461,2.8038600000,462,-2.4594500000,463,0.0886185000,464,0.8733490000,465,-1.4781000000,466,2.1323300000,467,0.3486980000,468,-2.8536600000,469,0.6043520000,470,-1.7418400000,471,0.8041470000,472,-1.2723600000,473,-1.0417400000,474,-0.6541420000,475,1.8718700000,476,-1.3699800000,477,2.9344500000,478,-0.8256190000,479,0.3520940000,480,0.5870110000,481,-0.6769090000,482,0.8408450000,483,0.6642160000,484,-4.5927600000,485,-3.5605200000,486,1.9988500000,487,0.3210560000,488,0.4568360000,489,1.0402800000,490,1.7349100000,491,-0.1130720000,492,0.7672260000,493,-2.6497000000,494,-0.0953816000,495,-1.6529800000,496,1.2731600000,497,-1.0613100000,498,-0.6608290000,499,0.8947760000,500,0.2237010000,501,0.7601350000,502,0.3238770000,503,-4.7083800000,504,-1.1398700000 +276,0,9.9101200000,531,-1.0000000000,455,0.0501420000,456,-0.0299257000,457,0.7577470000,458,1.4665200000,459,0.8370880000,460,-0.5537430000,461,1.0401900000,462,0.3386930000,463,1.2197900000,464,-5.1142500000,465,-1.3493900000,466,-0.0440809000,467,-1.1740900000,468,-7.7633400000,469,-0.0956609000,470,0.1842950000,471,2.5763700000,472,2.9282300000,473,-0.3504560000,474,-0.4150240000,475,1.7816500000,476,-3.5705800000,477,-2.3941600000,478,-1.2606600000,479,2.0309900000,480,0.6153840000,481,-0.4287140000,482,1.9380400000,483,0.1091590000,484,-2.6361800000,485,-0.6463160000,486,-3.6163500000,487,-1.6444000000,488,2.0530200000,489,1.8362400000,490,0.9847080000,491,-1.6759400000,492,1.1135500000,493,-1.3506800000,494,0.4642200000,495,2.5324100000,496,-0.0983734000,497,-5.7866900000,498,0.8777030000,499,-5.8459100000,500,-2.9731100000,501,-0.2704380000,502,-0.3380130000,503,2.3459300000,504,4.5181900000 +277,0,4.8806300000,532,-1.0000000000,455,2.8610200000,456,-0.5182560000,457,-0.2663280000,458,0.2017460000,459,0.5638550000,460,0.6705710000,461,3.4251500000,462,-1.8673300000,463,-0.0294500000,464,-0.3607210000,465,0.1092000000,466,0.0782803000,467,-0.3352720000,468,-2.1467300000,469,-0.4969130000,470,1.4679800000,471,1.1782700000,472,0.5048940000,473,-0.2679190000,474,-1.4959900000,475,-0.5417060000,476,0.0474848000,477,-1.8216200000,478,-2.1757400000,479,-2.1625200000,480,-2.2105100000,481,-0.3374480000,482,0.1762720000,483,-1.4480100000,484,1.6384400000,485,-3.1588900000,486,0.4971160000,487,-1.6635900000,488,2.5159900000,489,-0.0752953000,490,-2.5421600000,491,-0.6264710000,492,-0.0615070000,493,-2.2077100000,494,-1.1787800000,495,0.5618590000,496,0.1666010000,497,-5.1597300000,498,2.4836800000,499,1.8634200000,500,0.7358950000,501,-3.5469000000,502,-0.2053530000,503,-3.8803500000,504,-2.6851900000 +278,0,1.4704500000,533,-1.0000000000,455,-6.5862700000,456,-0.8115580000,457,0.4753540000,458,-3.5822200000,459,-5.8019500000,460,-4.9093100000,461,-2.4753200000,462,-0.9328310000,463,-4.3721500000,464,-4.3491400000,465,-0.5666090000,466,-4.8594200000,467,0.5115300000,468,-1.1962300000,469,-2.0605200000,470,-2.0901300000,471,-5.8576600000,472,-4.2291500000,473,-3.9308100000,474,0.3801340000,475,-1.2448300000,476,-6.9541000000,477,-8.2318800000,478,-2.6865000000,479,-6.7770400000,480,-0.4273320000,481,-3.8273900000,482,-2.5441700000,483,-2.4415900000,484,-1.5253000000,485,-4.0438600000,486,-1.1960000000,487,-2.0241600000,488,-0.5901040000,489,-1.0433800000,490,-1.5155300000,491,-1.5855600000,492,-0.8205720000,493,-4.5765500000,494,-1.1685800000,495,-1.4629400000,496,-0.9673360000,497,-1.1682200000,498,-0.3499090000,499,-1.9509600000,500,-6.9647500000,501,-4.0299300000,502,-7.8808400000,503,-4.2164900000,504,1.7993300000 +279,0,3.5639900000,534,-1.0000000000,455,0.2429590000,456,0.3485600000,457,-0.1079110000,458,-1.6302300000,459,-0.9621770000,460,0.2129120000,461,0.9960440000,462,-0.1787170000,463,0.7380170000,464,0.1552970000,465,0.0551012000,466,0.6551120000,467,-0.9338590000,468,-2.4837100000,469,0.8971450000,470,-0.3609530000,471,-0.5824190000,472,0.1991800000,473,-0.8460530000,474,-0.1720770000,475,-1.5323600000,476,-0.4422600000,477,2.2753300000,478,0.5894830000,479,1.7220000000,480,-0.2613260000,481,-0.3267880000,482,0.5635240000,483,-0.0715737000,484,-0.3384610000,485,-0.0431436000,486,0.9831000000,487,-0.0059242100,488,0.4651590000,489,0.6065160000,490,-0.2880040000,491,-0.0070048600,492,-0.2297050000,493,-0.2069260000,494,1.2137600000,495,1.5545000000,496,-0.0603813000,497,-0.1672270000,498,-0.0135932000,499,1.5218800000,500,-0.3434120000,501,0.1095960000,502,-0.1099010000,503,1.5138400000,504,3.0646300000 +280,0,4.8996400000,535,-1.0000000000,455,1.8632000000,456,0.1743820000,457,-0.3673290000,458,3.7299000000,459,0.6389240000,460,2.2834400000,461,2.0935800000,462,2.8459800000,463,-2.7410200000,464,1.4226400000,465,-2.3603500000,466,1.3191300000,467,-0.8211340000,468,-1.0838400000,469,0.5234260000,470,0.8471990000,471,-1.8427200000,472,2.2365100000,473,-3.0953400000,474,-0.8573940000,475,2.2283400000,476,3.1543200000,477,1.7915300000,478,-0.3672960000,479,1.8520500000,480,2.5852800000,481,-1.1078500000,482,1.1969000000,483,-1.8316700000,484,0.4098550000,485,-2.0009900000,486,1.8265600000,487,-1.2048800000,488,1.5632100000,489,2.2266200000,490,1.8579300000,491,1.7894000000,492,1.0976100000,493,1.1599000000,494,2.0766500000,495,-1.3035400000,496,1.4888200000,497,0.7083110000,498,-0.9083340000,499,-3.5984600000,500,-0.5607910000,501,-1.0112000000,502,-0.1032260000,503,-0.7276330000,504,2.2681300000 +281,0,6.0705800000,536,-1.0000000000,455,-0.0367911000,456,-0.3540070000,457,-0.0519689000,458,-4.2850200000,459,0.1146590000,460,0.8430300000,461,1.8557400000,462,1.6596300000,463,-1.9135600000,464,1.2527800000,465,-2.3078100000,466,0.8982610000,467,0.4331880000,468,-7.9361100000,469,0.3958770000,470,0.8645050000,471,1.2890500000,472,1.1181800000,473,-1.5853300000,474,-0.6262220000,475,1.0519700000,476,-0.8859840000,477,1.3319000000,478,-6.9751200000,479,2.6202500000,480,2.2658300000,481,-0.6196650000,482,2.2431800000,483,-0.3652840000,484,1.5287200000,485,-0.1746820000,486,-1.2849900000,487,0.1171000000,488,0.7725240000,489,-0.9026940000,490,-0.6495240000,491,2.6382200000,492,-0.3818660000,493,0.5725520000,494,0.9562990000,495,0.6920320000,496,-2.7292300000,497,1.9374300000,498,-0.5005000000,499,-1.9358800000,500,-2.9998500000,501,0.7618370000,502,0.0665068000,503,-4.9751800000,504,1.1755500000 +282,0,-1.1889600000,537,-1.0000000000,455,-0.5030500000,456,-0.4300790000,457,-0.1352840000,458,-1.0048100000,459,-1.5280400000,460,0.0722368000,461,0.4630720000,462,0.2266350000,463,-0.8147550000,464,-0.6162950000,465,-0.3498280000,466,-1.0943600000,467,-0.3341200000,468,-0.3591530000,469,-0.2208610000,470,-0.6954930000,471,-0.0036136800,472,-0.2660550000,473,-0.3567350000,474,-0.1198590000,475,-1.2198500000,476,-1.0467700000,477,0.1142500000,478,-0.8723740000,479,0.5348960000,480,-1.6833200000,481,-0.0487498000,482,0.1532010000,483,0.4722070000,484,-0.0860271000,485,-1.2048000000,486,0.5010260000,487,-0.1164780000,488,0.6282930000,489,-0.0184467000,490,0.2798210000,491,-2.0107300000,492,-0.5581170000,493,-0.5748400000,494,0.0037440900,495,-1.0580500000,496,0.2196270000,497,0.8124580000,498,-0.6906170000,499,0.7995130000,500,-0.2558880000,501,-0.2115550000,502,-0.0536320000,503,0.4599160000,504,-1.4333800000 +283,0,-0.0569209000,538,-1.0000000000,455,-0.2058590000,456,-0.0418565000,457,0.1224710000,458,0.3030060000,459,-0.1186910000,460,0.4266980000,461,-0.6210600000,462,0.1726660000,463,0.7928190000,464,-0.7171180000,465,0.0541005000,466,0.2635740000,467,0.1227830000,468,0.1774150000,469,-0.1104010000,470,-0.1366000000,471,-0.4851990000,472,-0.6426620000,473,0.0047708100,474,-0.1343160000,475,0.7998270000,476,-0.2765370000,477,-0.7000570000,478,-0.6030300000,479,-0.1192860000,480,0.4253190000,481,-0.1660470000,482,0.1657650000,483,-0.3787620000,484,-0.3401490000,485,0.2099340000,486,-0.4345700000,487,-0.0436820000,488,-0.8963850000,489,0.1277200000,490,-0.3960480000,491,0.2604140000,492,0.4559540000,493,0.4402900000,494,-0.4656790000,495,0.2136280000,496,0.1942830000,497,0.1357780000,498,-0.3130020000,499,-0.4540000000,500,-0.2316410000,501,-0.5114710000,502,-0.2112330000,503,0.2293360000,504,0.4868090000 +284,0,3.3169400000,539,-1.0000000000,455,-1.4481200000,456,0.3133630000,457,0.0796096000,458,-0.7528100000,459,-0.3750010000,460,-0.8426020000,461,0.3989940000,462,-2.1855600000,463,0.0531107000,464,-0.1775390000,465,0.0892416000,466,-0.9717590000,467,0.0651394000,468,-0.9315510000,469,-0.5344710000,470,-0.2382860000,471,0.2559860000,472,0.6624660000,473,-0.1021370000,474,-0.0858711000,475,0.3208780000,476,0.5694390000,477,0.1534080000,478,0.2018780000,479,0.0379435000,480,0.2151900000,481,-0.0251745000,482,0.0654918000,483,0.3146410000,484,-0.1205300000,485,0.3589970000,486,-0.6514080000,487,0.0544670000,488,-0.3992770000,489,0.3357460000,490,0.3215760000,491,0.5302270000,492,-0.2589790000,493,0.0324774000,494,0.5411020000,495,0.1341640000,496,0.0679465000,497,0.3517870000,498,0.1472250000,499,0.5696470000,500,-0.0100550000,501,0.6512600000,502,-0.3239560000,503,0.4557880000,504,0.5349180000 +285,0,5.3012900000,540,-1.0000000000,455,1.3936800000,456,-0.1482870000,457,-1.0418600000,458,-0.2680670000,459,0.4265520000,460,-0.1467030000,461,2.0482900000,462,-4.1412800000,463,0.5241420000,464,0.1661330000,465,-0.9908850000,466,0.3879380000,467,-2.4272700000,468,-0.8210230000,469,-0.3106430000,470,0.4197010000,471,-1.0975200000,472,-0.1294940000,473,-0.4715370000,474,-0.3929230000,475,3.0739800000,476,-0.7062220000,477,3.1321600000,478,0.1071600000,479,1.9855800000,480,-1.5548600000,481,-0.2064120000,482,0.1103810000,483,0.8744800000,484,0.0259204000,485,1.3627800000,486,-1.4031700000,487,-2.5675500000,488,2.2700500000,489,1.7133200000,490,-1.0623200000,491,0.6176590000,492,-1.0812700000,493,0.0293972000,494,-0.3592000000,495,0.8765470000,496,-0.4431670000,497,1.7402500000,498,0.2883230000,499,2.8104100000,500,-1.2209700000,501,0.5064200000,502,-0.6233140000,503,0.9136450000,504,0.5138210000 +286,0,0.0309108000,541,-1.0000000000,455,-0.0167565000,456,0.0125060000,457,-0.0260180000,458,0.0652435000,459,-0.1690500000,460,-1.3728200000,461,-0.7331640000,462,-0.0203137000,463,-0.0622079000,464,0.0980321000,465,0.0006645810,466,-0.0340789000,467,-0.0293209000,468,0.0400842000,469,0.0164088000,470,-0.2072160000,471,-0.7575790000,472,-0.0139189000,473,-0.0257730000,474,-0.0042137900,475,-0.1106940000,476,-0.0852534000,477,-1.0893800000,478,0.0373712000,479,-1.6583100000,480,-0.0633385000,481,-0.0837163000,482,-0.0226727000,483,-0.0174681000,484,0.0255556000,485,0.0624365000,486,-0.0079874100,487,-0.0152246000,488,-0.7424640000,489,0.0467466000,490,-0.0127130000,491,-0.6430010000,492,-0.0100867000,493,0.0626655000,494,-0.1590890000,495,0.0097525100,496,0.0237200000,497,0.0221890000,498,-1.4424700000,499,0.0734290000,500,0.0190104000,501,0.0099531900,502,-0.1507130000,503,-0.0465323000,504,-0.0269819000 +287,0,7.2179000000,542,-1.0000000000,455,-1.8594400000,456,0.7521500000,457,-1.9064700000,458,-1.1935800000,459,-0.3535910000,460,0.2003180000,461,1.4804100000,462,1.0594200000,463,0.4024230000,464,0.4559650000,465,0.4717680000,466,-0.6041240000,467,-0.2893920000,468,0.0974841000,469,0.5553280000,470,-0.5728930000,471,0.3640840000,472,-2.1030100000,473,-0.5741200000,474,-0.0816511000,475,-1.1282900000,476,1.3548100000,477,-3.5469600000,478,0.2133880000,479,1.5781100000,480,-2.1340500000,481,-1.0543900000,482,0.0141608000,483,-0.0379501000,484,0.9180970000,485,-3.1043300000,486,-0.6996120000,487,0.0484393000,488,0.2371780000,489,-2.4467600000,490,1.3038500000,491,0.8528950000,492,-0.5805710000,493,-0.8345470000,494,1.0530500000,495,2.0088100000,496,0.4883950000,497,-3.4777200000,498,1.2145900000,499,1.2589100000,500,-0.2061710000,501,0.1430990000,502,-0.6849830000,503,-0.6023030000,504,2.0937400000 +288,0,-3.5308600000,543,-1.0000000000,455,0.2921540000,456,-0.5206220000,457,0.3903770000,458,-1.6671300000,459,-4.1759000000,460,-3.2177000000,461,-1.3218800000,462,-1.0672400000,463,0.2896180000,464,-0.8978420000,465,-1.0730100000,466,-5.2745100000,467,-3.9567600000,468,-1.9292900000,469,0.1417200000,470,-1.8009000000,471,-0.9345130000,472,-3.6542100000,473,-3.9899500000,474,-0.2669560000,475,0.0815679000,476,-2.8433900000,477,-2.6861500000,478,-1.4850000000,479,-5.4498200000,480,-4.6119000000,481,0.2445970000,482,-0.8013400000,483,0.1100650000,484,0.2026360000,485,0.5563410000,486,-0.7893330000,487,0.2887580000,488,-2.4691800000,489,-0.0901804000,490,-1.9407800000,491,-1.3516600000,492,-1.7236800000,493,-3.7105700000,494,-0.7077330000,495,-0.0370695000,496,-2.6340300000,497,-3.3452200000,498,-1.0155000000,499,-1.4728200000,500,-0.8154710000,501,-4.2121300000,502,-2.1785100000,503,-2.6908200000,504,0.4228310000 +289,0,12.7792000000,544,-1.0000000000,455,3.1224100000,456,-0.0280141000,457,1.0734500000,458,-4.9520800000,459,-0.0954040000,460,-4.5781400000,461,2.5943300000,462,-0.2522640000,463,1.0901900000,464,3.1724000000,465,0.3334800000,466,-1.0949700000,467,-0.3462780000,468,0.8058530000,469,0.2712980000,470,-1.3659400000,471,1.7001900000,472,2.9780400000,473,-0.6072420000,474,-0.7454730000,475,0.9823130000,476,0.0197543000,477,-0.5497720000,478,-6.6945300000,479,0.8665430000,480,1.1049700000,481,0.4309700000,482,0.2397310000,483,1.0712700000,484,-1.3972300000,485,-0.3166560000,486,2.4432200000,487,0.4418060000,488,-1.0233100000,489,1.7581400000,490,1.6573300000,491,0.5232180000,492,1.4041300000,493,-1.7651600000,494,-0.7801990000,495,4.2696100000,496,1.5964700000,497,-3.1811000000,498,-1.7952500000,499,-2.0000800000,500,-0.1514550000,501,1.8126600000,502,0.5560940000,503,1.4311600000,504,2.9200700000 +290,0,3.3554300000,545,-1.0000000000,455,0.4353840000,456,-0.2055440000,457,0.3939040000,458,0.6725780000,459,-0.4833400000,460,-0.0910664000,461,1.5613700000,462,-2.2426900000,463,1.5163200000,464,0.2873730000,465,-0.7044530000,466,0.5188490000,467,-0.8041110000,468,-0.1493890000,469,-0.6080150000,470,-0.9310590000,471,1.5963400000,472,0.4754150000,473,-0.5730980000,474,-0.3013520000,475,1.0669200000,476,2.2774200000,477,1.3555500000,478,-1.3533500000,479,1.0086600000,480,-0.2549790000,481,-0.1105510000,482,0.8391470000,483,-1.6127200000,484,1.4747500000,485,-0.0266824000,486,1.0541400000,487,-0.2870450000,488,-1.1153100000,489,1.1244500000,490,0.4311280000,491,0.9263440000,492,0.4090160000,493,-0.2469220000,494,1.0746900000,495,3.0075800000,496,0.1093660000,497,0.0406269000,498,0.9641940000,499,1.7405600000,500,-0.0322974000,501,1.3838300000,502,-0.3433650000,503,1.6665900000,504,1.4547000000 +291,0,-0.1129410000,546,-1.0000000000,455,0.0035945800,456,-0.0081997600,457,0.0061813600,458,0.0040266900,459,-0.0076694000,460,0.0033904100,461,-0.0168293000,462,-0.0047197600,463,-0.0138701000,464,-0.6683090000,465,-0.0015992100,466,-0.0209781000,467,0.0025629700,468,-0.0102252000,469,-0.0127338000,470,0.0007568560,471,0.0257955000,472,-0.0240013000,473,-0.0047826500,474,-0.0023328500,475,-0.0047426700,476,0.0294744000,477,-0.0113512000,478,-0.0141102000,479,-0.0342400000,480,0.0148115000,481,-0.2515180000,482,-0.4876220000,483,-2.6492000000,484,-0.0175656000,485,0.0084639400,486,-0.1685460000,487,-0.0105126000,488,0.0072664500,489,-0.0322406000,490,-0.0272303000,491,-2.3916600000,492,-2.4444200000,493,-5.6291300000,494,-1.2097500000,495,-0.0764948000,496,-0.0198578000,497,-0.0124611000,498,-0.2342990000,499,-1.6292300000,500,-0.0156075000,501,-0.9601380000,502,-0.0183458000,503,0.0113516000,504,0.0047723300 +292,0,-3.3268300000,547,-1.0000000000,455,0.5778220000,456,-2.4524800000,457,-3.9911200000,458,-1.8715100000,459,-5.0274600000,460,-0.2481660000,461,-3.4682100000,462,0.0083381100,463,-2.1714100000,464,-4.9709600000,465,-3.0176600000,466,-5.8375500000,467,-0.0931898000,468,-3.3962000000,469,1.2454600000,470,-2.2346700000,471,1.7628400000,472,-0.6490040000,473,-2.6212700000,474,-0.6753430000,475,-3.0735000000,476,-2.8600600000,477,-2.3564600000,478,-3.1736200000,479,-6.7372600000,480,-2.2488100000,481,0.2193620000,482,-6.6902100000,483,-0.1366940000,484,-1.3566900000,485,-3.9288000000,486,-6.2423700000,487,-1.8996700000,488,-0.1438260000,489,0.0609327000,490,-5.8085100000,491,0.1874060000,492,2.1590200000,493,-3.0314200000,494,-4.0638500000,495,-3.5704900000,496,-2.2067400000,497,-0.7629600000,498,1.8926500000,499,-1.4897200000,500,-2.8640100000,501,-3.7020800000,502,-0.5765670000,503,-5.3160400000,504,1.7960300000 +293,0,6.0071200000,548,-1.0000000000,455,1.8367600000,456,-0.2914980000,457,0.1898470000,458,1.8208700000,459,0.7269620000,460,1.5719300000,461,1.2955000000,462,0.9930260000,463,0.1653420000,464,2.1177800000,465,-2.6521100000,466,-1.2168600000,467,-1.5920600000,468,-1.4191600000,469,0.4551850000,470,0.3895670000,471,-1.4419400000,472,1.4943600000,473,-0.5151580000,474,-0.5363710000,475,1.8231400000,476,-4.4117900000,477,1.1849200000,478,0.5214120000,479,1.1186100000,480,0.9435000000,481,-0.8493560000,482,-0.0399728000,483,-0.1551060000,484,-0.1642950000,485,0.2821370000,486,1.3051900000,487,-1.1208800000,488,1.0752300000,489,1.2389400000,490,1.2151500000,491,-0.1003060000,492,0.7541920000,493,1.1566800000,494,-2.5574200000,495,-3.3312400000,496,0.6332480000,497,2.6279500000,498,-0.3380110000,499,2.7653400000,500,-0.3879770000,501,0.3081420000,502,-0.4303540000,503,0.5015860000,504,3.5080700000 +294,0,-1.0307900000,549,-1.0000000000,455,0.0124226000,456,0.1104310000,457,-1.0125900000,458,-0.3528670000,459,-2.0347700000,460,-1.7576200000,461,-0.7438000000,462,-1.4274900000,463,-1.4398400000,464,-0.1423480000,465,-0.4803150000,466,-1.7101700000,467,-0.1026980000,468,-0.0732742000,469,-0.6395070000,470,-0.6637500000,471,-0.9613810000,472,-0.3131360000,473,-0.1773840000,474,0.0436099000,475,-1.9252000000,476,0.4478700000,477,-0.1393170000,478,0.0052237400,479,-1.1881600000,480,-3.0915000000,481,-0.5290550000,482,0.0618888000,483,0.0696314000,484,-1.0221300000,485,-0.5510160000,486,-0.5754120000,487,-0.5392260000,488,-1.7795100000,489,-0.0382012000,490,-0.3045530000,491,-0.7725320000,492,-0.8607150000,493,-0.6942580000,494,-0.5185560000,495,-0.0108650000,496,-0.5365210000,497,-1.3092600000,498,-1.1181400000,499,0.7797520000,500,-0.1391950000,501,0.6400340000,502,-0.3389410000,503,0.0915411000,504,-1.2301000000 +295,0,-4.6515700000,550,-1.0000000000,455,-0.9759490000,456,1.2091300000,457,-3.0375400000,458,3.3838600000,459,-6.5585300000,460,-0.5386170000,461,-4.5067600000,462,-0.3677130000,463,-2.6016400000,464,-1.5990300000,465,-0.6670610000,466,-1.0449900000,467,-1.6342800000,468,-2.0521500000,469,-0.6270050000,470,-0.9023250000,471,1.7847700000,472,-2.5288500000,473,-3.9232100000,474,-0.0950885000,475,-1.1994200000,476,-3.9993600000,477,0.7068480000,478,-4.5863900000,479,-3.0042100000,480,-5.1461900000,481,0.1166610000,482,-4.2747700000,483,-0.7197340000,484,-3.8710700000,485,-2.4006400000,486,-2.4644000000,487,-2.4410000000,488,-0.9995760000,489,-0.1300370000,490,-4.0228600000,491,-1.1638200000,492,2.3626700000,493,-2.3615700000,494,-1.5160900000,495,-3.0752100000,496,-2.9120700000,497,-2.5115600000,498,-1.4399900000,499,-0.3165660000,500,-0.6999260000,501,-2.2242200000,502,-1.2166700000,503,0.1694310000,504,1.2964400000 +296,0,7.6227300000,551,-1.0000000000,455,0.7590840000,456,0.8018900000,457,0.6792820000,458,-1.7947700000,459,-0.0050623000,460,0.4196680000,461,0.9586720000,462,1.1956800000,463,1.8492800000,464,2.7756000000,465,-0.4855420000,466,-3.4553100000,467,-0.5457960000,468,-2.3066300000,469,-0.2450330000,470,-0.2773070000,471,0.3373870000,472,1.1794400000,473,-0.8028370000,474,-0.3906270000,475,-0.0434707000,476,0.4930300000,477,-1.1996700000,478,1.2128200000,479,-1.0206000000,480,0.2646380000,481,-0.5871690000,482,1.3504900000,483,0.0132808000,484,0.9553510000,485,0.3294280000,486,-0.5102380000,487,-0.4005120000,488,1.2687500000,489,1.0246100000,490,3.2028300000,491,-1.9394400000,492,-0.7921460000,493,-0.7037750000,494,-0.6543600000,495,-1.6530800000,496,-0.1376820000,497,-4.2178000000,498,-0.2170240000,499,-0.7879160000,500,-0.5481000000,501,-1.3272000000,502,-0.0439047000,503,0.7812610000,504,2.6771000000 +297,0,-1.9712600000,552,-1.0000000000,455,-2.6071800000,456,0.8500190000,457,-5.9924900000,458,-0.8431000000,459,-4.9888100000,460,1.1505200000,461,-2.6077800000,462,-0.8741750000,463,-2.5084700000,464,-4.1915200000,465,-1.4823100000,466,-0.5264140000,467,-0.6562710000,468,-2.7843000000,469,-1.6167600000,470,-1.5513500000,471,-0.3600360000,472,-0.2534690000,473,-1.5159700000,474,-1.7992200000,475,-2.8320000000,476,-1.6226100000,477,-0.0487950000,478,-3.2497500000,479,-5.7396700000,480,-2.2963800000,481,-0.0034388900,482,-6.0149000000,483,0.6955510000,484,-3.9664400000,485,-0.4272940000,486,-0.6883320000,487,-2.5720600000,488,-3.8342100000,489,0.4708940000,490,-2.1238000000,491,0.0241405000,492,0.4923730000,493,-2.2206600000,494,-2.6365400000,495,-5.8183300000,496,0.7825100000,497,-5.5005100000,498,-0.3652020000,499,-3.0059900000,500,-3.6360100000,501,-2.5314600000,502,-0.0469129000,503,-4.3033100000,504,-2.2880600000 +298,0,0.9847690000,553,-1.0000000000,455,-1.3867300000,456,-1.4661200000,457,0.4219860000,458,-2.1560500000,459,-0.1114040000,460,1.2753500000,461,-2.8696100000,462,1.3140000000,463,1.3562500000,464,3.3002600000,465,-2.2301500000,466,-0.5442600000,467,-0.2522500000,468,1.6247400000,469,0.6027290000,470,0.0006667200,471,-2.8787900000,472,-3.4548700000,473,-2.9142000000,474,-0.4699460000,475,-1.2281100000,476,2.7756400000,477,0.5825780000,478,1.4767600000,479,3.8077900000,480,-6.8471300000,481,-1.4391900000,482,-1.1959800000,483,0.0944622000,484,0.5225980000,485,0.2137280000,486,1.1844300000,487,-0.9490050000,488,2.7515900000,489,-0.3793920000,490,1.5101800000,491,1.8785700000,492,-0.5867080000,493,0.8792200000,494,0.6617030000,495,1.4027400000,496,1.4874100000,497,1.4492500000,498,0.6145710000,499,-0.7187730000,500,-0.1638050000,501,0.7638710000,502,-1.0281900000,503,-0.0966205000,504,3.3453800000 +299,0,9.0827400000,554,-1.0000000000,455,0.9474850000,456,-0.8887930000,457,0.6969050000,458,1.0381000000,459,-0.1573150000,460,1.3225900000,461,1.2202300000,462,-2.8099400000,463,1.4755900000,464,1.1721700000,465,-0.4014740000,466,0.7565040000,467,-0.1443490000,468,-1.3703500000,469,1.0271600000,470,-0.0113129000,471,-0.2218050000,472,-1.5429100000,473,-1.0762900000,474,-0.4954230000,475,1.5176900000,476,-1.5630300000,477,1.6483900000,478,-0.0249354000,479,1.3216000000,480,0.3137320000,481,-0.4429160000,482,-0.3411590000,483,0.9768360000,484,-1.4956500000,485,0.4430030000,486,-0.3163330000,487,-1.3992600000,488,1.0915800000,489,0.2710720000,490,1.1086700000,491,0.3634150000,492,-0.0823858000,493,-0.0836159000,494,0.2936910000,495,1.5547600000,496,1.0463700000,497,2.2841300000,498,-2.0302300000,499,3.1320100000,500,0.1737560000,501,1.0694400000,502,-0.0402672000,503,1.7400100000,504,1.6390300000 +300,0,0.0210782000,605,-1.0000000000,555,-0.0951356000,556,-0.0222979000,557,-0.0063315100,558,-0.0084039600,559,0.0245446000,560,0.0053182400,561,-0.0088643800,562,0.0083508800,563,0.0036496600,564,-0.0139195000,565,0.0059472500,566,0.0034674100,567,0.0010102700,568,0.0034259700,569,0.0032123000,570,-0.0065996700,571,0.0068285500,572,0.0053101900,573,-0.0226668000,574,0.0024822100,575,0.0013063700,576,-0.0111098000,577,0.0052020800,578,-0.0052010600,579,0.0018990700,580,0.0048008700,581,0.0033826300,582,0.0073335000,583,-0.0058599900,584,0.0050723000,585,0.0027946500,586,0.0041930900,587,-0.0419862000,588,-0.0169099000,589,0.0038518800,590,0.0054625800,591,0.0032534500,592,0.0057450000,593,-0.0143218000,594,0.0024882000,595,0.0033793900,596,0.0001634760,597,-0.0068258400,598,0.0032342700,599,-0.0199525000,600,-0.0055879400,601,0.0049205900,602,-0.0127108000,603,0.0044827400,604,0.0039971100 +301,0,0.0197138000,606,-1.0000000000,555,0.0034136900,556,0.0018877000,557,-0.0000834984,558,0.0003409460,559,-0.0003314900,560,-0.0004428930,561,0.0001575280,562,-0.0007682660,563,-0.0011086700,564,0.0008853640,565,-0.0000574967,566,-0.0004454460,567,0.0062306300,568,0.0038100300,569,0.0000020550,570,0.0009537380,571,-0.0009986710,572,-0.0010066700,573,-0.0000039982,574,0.0000494672,575,-0.0008628080,576,0.0008528610,577,-0.0000109531,578,0.0002378480,579,0.0001065890,580,-0.0005408750,581,-0.0001024450,582,-0.0007071670,583,-0.0011684500,584,-0.0001062330,585,-0.0001098390,586,-0.0008722090,587,-0.0021823400,588,0.0002119730,589,0.0006063440,590,-0.0001098470,591,-0.0013582100,592,-0.0001523280,593,0.0001627830,594,-0.0009698140,595,-0.0002977430,596,-0.0031179800,597,0.0005698210,598,-0.0000323376,599,0.0008501020,600,0.0004399170,601,-0.0002340370,602,0.0009600490,603,0.0001407540,604,-0.0000753481 +302,0,-0.0182674000,607,-1.0000000000,555,-0.0012540000,556,0.0008941580,557,-0.0003031220,558,-0.0006466780,559,-0.0002613260,560,-0.0002893800,561,0.0003326500,562,0.0001761620,563,0.0019391000,564,-0.0000067549,565,0.0011765700,566,0.0004905950,567,0.0111946000,568,0.0053662700,569,0.0013183900,570,-0.0001613910,571,0.0006401200,572,0.0001260140,573,0.0006035070,574,-0.0003124220,575,-0.0003163590,576,-0.0006162200,577,0.0003005440,578,0.0001182520,579,0.0001583260,580,-0.0000866311,581,0.0001992670,582,0.0001934840,583,-0.0000966102,584,0.0008588690,585,0.0001791490,586,-0.0001825840,587,-0.0018338400,588,0.0001766420,589,0.0001263780,590,-0.0000070611,591,0.0206563000,592,-0.0004626040,593,-0.0003768270,594,0.0003565200,595,0.0003358400,596,-0.0097627700,597,-0.0002191760,598,0.0002678100,599,0.0011913200,600,0.0003165810,601,0.0007776110,602,-0.0004220350,603,0.0000173234,604,-0.0000087844 +303,0,0.0185579000,608,-1.0000000000,555,-0.0022901600,556,-0.0005365030,557,0.0014198500,558,0.0012566100,559,-0.0000201187,560,-0.0000819703,561,0.0003435710,562,0.0000555825,563,-0.0002124350,564,0.0021700300,565,0.0001525790,566,0.0008534280,567,0.0157278000,568,0.0064976800,569,0.0013434000,570,0.0018826700,571,0.0009240130,572,-0.0006285610,573,-0.0000839472,574,0.0002528100,575,0.0009196140,576,-0.0010214800,577,-0.0004154210,578,0.0001750750,579,0.0000529421,580,0.0002154330,581,-0.0001427460,582,-0.0002995720,583,0.0005175480,584,-0.0004534690,585,-0.0001783660,586,0.0007818210,587,-0.0029212900,588,-0.0002953820,589,0.0032311300,590,-0.0000961390,591,0.0117189000,592,0.0006670090,593,-0.0006929150,594,0.0002312200,595,0.0000268844,596,-0.0110992000,597,-0.0002613630,598,0.0008438880,599,0.0009502460,600,-0.0001806880,601,0.0009225570,602,-0.0002645880,603,0.0006606280,604,0.0014454400 +304,0,-0.0182602000,609,-1.0000000000,555,-0.0015202600,556,0.0004494680,557,-0.0002220610,558,0.0003901520,559,0.0001290540,560,-0.0005561670,561,-0.0001437320,562,0.0000797761,563,0.0007064090,564,0.0002864010,565,0.0001440570,566,0.0003415380,567,0.0137299000,568,0.0047768100,569,0.0002204230,570,-0.0002150620,571,0.0009687130,572,0.0002056020,573,-0.0004480560,574,-0.0001427970,575,-0.0002210960,576,-0.0003828160,577,0.0002778080,578,-0.0001264460,579,0.0000793513,580,-0.0000894536,581,0.0009927210,582,0.0003526160,583,0.0008323330,584,0.0003374650,585,0.0006892730,586,0.0000109770,587,0.0009256830,588,-0.0002292560,589,-0.0000879770,590,0.0010529000,591,0.0203980000,592,-0.0004348200,593,-0.0004446050,594,-0.0001801750,595,0.0012841000,596,-0.0100219000,597,-0.0001947140,598,0.0007680090,599,0.0012740100,600,0.0000891767,601,-0.0002096570,602,0.0002762050,603,-0.0000025724,604,0.0004720370 +305,0,0.0000000000,610,1.0000000000,605,-1.0000000000,606,-1.0000000000 +0,relu,55,5 +1,relu,56,6 +2,relu,57,7 +3,relu,58,8 +4,relu,59,9 +5,relu,60,10 +6,relu,61,11 +7,relu,62,12 +8,relu,63,13 +9,relu,64,14 +10,relu,65,15 +11,relu,66,16 +12,relu,67,17 +13,relu,68,18 +14,relu,69,19 +15,relu,70,20 +16,relu,71,21 +17,relu,72,22 +18,relu,73,23 +19,relu,74,24 +20,relu,75,25 +21,relu,76,26 +22,relu,77,27 +23,relu,78,28 +24,relu,79,29 +25,relu,80,30 +26,relu,81,31 +27,relu,82,32 +28,relu,83,33 +29,relu,84,34 +30,relu,85,35 +31,relu,86,36 +32,relu,87,37 +33,relu,88,38 +34,relu,89,39 +35,relu,90,40 +36,relu,91,41 +37,relu,92,42 +38,relu,93,43 +39,relu,94,44 +40,relu,95,45 +41,relu,96,46 +42,relu,97,47 +43,relu,98,48 +44,relu,99,49 +45,relu,100,50 +46,relu,101,51 +47,relu,102,52 +48,relu,103,53 +49,relu,104,54 +50,relu,155,105 +51,relu,156,106 +52,relu,157,107 +53,relu,158,108 +54,relu,159,109 +55,relu,160,110 +56,relu,161,111 +57,relu,162,112 +58,relu,163,113 +59,relu,164,114 +60,relu,165,115 +61,relu,166,116 +62,relu,167,117 +63,relu,168,118 +64,relu,169,119 +65,relu,170,120 +66,relu,171,121 +67,relu,172,122 +68,relu,173,123 +69,relu,174,124 +70,relu,175,125 +71,relu,176,126 +72,relu,177,127 +73,relu,178,128 +74,relu,179,129 +75,relu,180,130 +76,relu,181,131 +77,relu,182,132 +78,relu,183,133 +79,relu,184,134 +80,relu,185,135 +81,relu,186,136 +82,relu,187,137 +83,relu,188,138 +84,relu,189,139 +85,relu,190,140 +86,relu,191,141 +87,relu,192,142 +88,relu,193,143 +89,relu,194,144 +90,relu,195,145 +91,relu,196,146 +92,relu,197,147 +93,relu,198,148 +94,relu,199,149 +95,relu,200,150 +96,relu,201,151 +97,relu,202,152 +98,relu,203,153 +99,relu,204,154 +100,relu,255,205 +101,relu,256,206 +102,relu,257,207 +103,relu,258,208 +104,relu,259,209 +105,relu,260,210 +106,relu,261,211 +107,relu,262,212 +108,relu,263,213 +109,relu,264,214 +110,relu,265,215 +111,relu,266,216 +112,relu,267,217 +113,relu,268,218 +114,relu,269,219 +115,relu,270,220 +116,relu,271,221 +117,relu,272,222 +118,relu,273,223 +119,relu,274,224 +120,relu,275,225 +121,relu,276,226 +122,relu,277,227 +123,relu,278,228 +124,relu,279,229 +125,relu,280,230 +126,relu,281,231 +127,relu,282,232 +128,relu,283,233 +129,relu,284,234 +130,relu,285,235 +131,relu,286,236 +132,relu,287,237 +133,relu,288,238 +134,relu,289,239 +135,relu,290,240 +136,relu,291,241 +137,relu,292,242 +138,relu,293,243 +139,relu,294,244 +140,relu,295,245 +141,relu,296,246 +142,relu,297,247 +143,relu,298,248 +144,relu,299,249 +145,relu,300,250 +146,relu,301,251 +147,relu,302,252 +148,relu,303,253 +149,relu,304,254 +150,relu,355,305 +151,relu,356,306 +152,relu,357,307 +153,relu,358,308 +154,relu,359,309 +155,relu,360,310 +156,relu,361,311 +157,relu,362,312 +158,relu,363,313 +159,relu,364,314 +160,relu,365,315 +161,relu,366,316 +162,relu,367,317 +163,relu,368,318 +164,relu,369,319 +165,relu,370,320 +166,relu,371,321 +167,relu,372,322 +168,relu,373,323 +169,relu,374,324 +170,relu,375,325 +171,relu,376,326 +172,relu,377,327 +173,relu,378,328 +174,relu,379,329 +175,relu,380,330 +176,relu,381,331 +177,relu,382,332 +178,relu,383,333 +179,relu,384,334 +180,relu,385,335 +181,relu,386,336 +182,relu,387,337 +183,relu,388,338 +184,relu,389,339 +185,relu,390,340 +186,relu,391,341 +187,relu,392,342 +188,relu,393,343 +189,relu,394,344 +190,relu,395,345 +191,relu,396,346 +192,relu,397,347 +193,relu,398,348 +194,relu,399,349 +195,relu,400,350 +196,relu,401,351 +197,relu,402,352 +198,relu,403,353 +199,relu,404,354 +200,relu,455,405 +201,relu,456,406 +202,relu,457,407 +203,relu,458,408 +204,relu,459,409 +205,relu,460,410 +206,relu,461,411 +207,relu,462,412 +208,relu,463,413 +209,relu,464,414 +210,relu,465,415 +211,relu,466,416 +212,relu,467,417 +213,relu,468,418 +214,relu,469,419 +215,relu,470,420 +216,relu,471,421 +217,relu,472,422 +218,relu,473,423 +219,relu,474,424 +220,relu,475,425 +221,relu,476,426 +222,relu,477,427 +223,relu,478,428 +224,relu,479,429 +225,relu,480,430 +226,relu,481,431 +227,relu,482,432 +228,relu,483,433 +229,relu,484,434 +230,relu,485,435 +231,relu,486,436 +232,relu,487,437 +233,relu,488,438 +234,relu,489,439 +235,relu,490,440 +236,relu,491,441 +237,relu,492,442 +238,relu,493,443 +239,relu,494,444 +240,relu,495,445 +241,relu,496,446 +242,relu,497,447 +243,relu,498,448 +244,relu,499,449 +245,relu,500,450 +246,relu,501,451 +247,relu,502,452 +248,relu,503,453 +249,relu,504,454 +250,relu,555,505 +251,relu,556,506 +252,relu,557,507 +253,relu,558,508 +254,relu,559,509 +255,relu,560,510 +256,relu,561,511 +257,relu,562,512 +258,relu,563,513 +259,relu,564,514 +260,relu,565,515 +261,relu,566,516 +262,relu,567,517 +263,relu,568,518 +264,relu,569,519 +265,relu,570,520 +266,relu,571,521 +267,relu,572,522 +268,relu,573,523 +269,relu,574,524 +270,relu,575,525 +271,relu,576,526 +272,relu,577,527 +273,relu,578,528 +274,relu,579,529 +275,relu,580,530 +276,relu,581,531 +277,relu,582,532 +278,relu,583,533 +279,relu,584,534 +280,relu,585,535 +281,relu,586,536 +282,relu,587,537 +283,relu,588,538 +284,relu,589,539 +285,relu,590,540 +286,relu,591,541 +287,relu,592,542 +288,relu,593,543 +289,relu,594,544 +290,relu,595,545 +291,relu,596,546 +292,relu,597,547 +293,relu,598,548 +294,relu,599,549 +295,relu,600,550 +296,relu,601,551 +297,relu,602,552 +298,relu,603,553 +299,relu,604,554 +300,max,610,605,606,607,608,609,e,0,0 +301,max,611,0,1,2,3,4,e,0,0 \ No newline at end of file diff --git a/regress/regress1/input_queries/deep_6_index_5525.ipq b/regress/regress1/input_queries/deep_6_index_5525.ipq new file mode 100644 index 0000000000..43181e444c --- /dev/null +++ b/regress/regress1/input_queries/deep_6_index_5525.ipq @@ -0,0 +1,4264 @@ +2678 +1004 +1004 +1235 +220 +784 +0,0 +1,1 +2,2 +3,3 +4,4 +5,5 +6,6 +7,7 +8,8 +9,9 +10,10 +11,11 +12,12 +13,13 +14,14 +15,15 +16,16 +17,17 +18,18 +19,19 +20,20 +21,21 +22,22 +23,23 +24,24 +25,25 +26,26 +27,27 +28,28 +29,29 +30,30 +31,31 +32,32 +33,33 +34,34 +35,35 +36,36 +37,37 +38,38 +39,39 +40,40 +41,41 +42,42 +43,43 +44,44 +45,45 +46,46 +47,47 +48,48 +49,49 +50,50 +51,51 +52,52 +53,53 +54,54 +55,55 +56,56 +57,57 +58,58 +59,59 +60,60 +61,61 +62,62 +63,63 +64,64 +65,65 +66,66 +67,67 +68,68 +69,69 +70,70 +71,71 +72,72 +73,73 +74,74 +75,75 +76,76 +77,77 +78,78 +79,79 +80,80 +81,81 +82,82 +83,83 +84,84 +85,85 +86,86 +87,87 +88,88 +89,89 +90,90 +91,91 +92,92 +93,93 +94,94 +95,95 +96,96 +97,97 +98,98 +99,99 +100,100 +101,101 +102,102 +103,103 +104,104 +105,105 +106,106 +107,107 +108,108 +109,109 +110,110 +111,111 +112,112 +113,113 +114,114 +115,115 +116,116 +117,117 +118,118 +119,119 +120,120 +121,121 +122,122 +123,123 +124,124 +125,125 +126,126 +127,127 +128,128 +129,129 +130,130 +131,131 +132,132 +133,133 +134,134 +135,135 +136,136 +137,137 +138,138 +139,139 +140,140 +141,141 +142,142 +143,143 +144,144 +145,145 +146,146 +147,147 +148,148 +149,149 +150,150 +151,151 +152,152 +153,153 +154,154 +155,155 +156,156 +157,157 +158,158 +159,159 +160,160 +161,161 +162,162 +163,163 +164,164 +165,165 +166,166 +167,167 +168,168 +169,169 +170,170 +171,171 +172,172 +173,173 +174,174 +175,175 +176,176 +177,177 +178,178 +179,179 +180,180 +181,181 +182,182 +183,183 +184,184 +185,185 +186,186 +187,187 +188,188 +189,189 +190,190 +191,191 +192,192 +193,193 +194,194 +195,195 +196,196 +197,197 +198,198 +199,199 +200,200 +201,201 +202,202 +203,203 +204,204 +205,205 +206,206 +207,207 +208,208 +209,209 +210,210 +211,211 +212,212 +213,213 +214,214 +215,215 +216,216 +217,217 +218,218 +219,219 +220,220 +221,221 +222,222 +223,223 +224,224 +225,225 +226,226 +227,227 +228,228 +229,229 +230,230 +231,231 +232,232 +233,233 +234,234 +235,235 +236,236 +237,237 +238,238 +239,239 +240,240 +241,241 +242,242 +243,243 +244,244 +245,245 +246,246 +247,247 +248,248 +249,249 +250,250 +251,251 +252,252 +253,253 +254,254 +255,255 +256,256 +257,257 +258,258 +259,259 +260,260 +261,261 +262,262 +263,263 +264,264 +265,265 +266,266 +267,267 +268,268 +269,269 +270,270 +271,271 +272,272 +273,273 +274,274 +275,275 +276,276 +277,277 +278,278 +279,279 +280,280 +281,281 +282,282 +283,283 +284,284 +285,285 +286,286 +287,287 +288,288 +289,289 +290,290 +291,291 +292,292 +293,293 +294,294 +295,295 +296,296 +297,297 +298,298 +299,299 +300,300 +301,301 +302,302 +303,303 +304,304 +305,305 +306,306 +307,307 +308,308 +309,309 +310,310 +311,311 +312,312 +313,313 +314,314 +315,315 +316,316 +317,317 +318,318 +319,319 +320,320 +321,321 +322,322 +323,323 +324,324 +325,325 +326,326 +327,327 +328,328 +329,329 +330,330 +331,331 +332,332 +333,333 +334,334 +335,335 +336,336 +337,337 +338,338 +339,339 +340,340 +341,341 +342,342 +343,343 +344,344 +345,345 +346,346 +347,347 +348,348 +349,349 +350,350 +351,351 +352,352 +353,353 +354,354 +355,355 +356,356 +357,357 +358,358 +359,359 +360,360 +361,361 +362,362 +363,363 +364,364 +365,365 +366,366 +367,367 +368,368 +369,369 +370,370 +371,371 +372,372 +373,373 +374,374 +375,375 +376,376 +377,377 +378,378 +379,379 +380,380 +381,381 +382,382 +383,383 +384,384 +385,385 +386,386 +387,387 +388,388 +389,389 +390,390 +391,391 +392,392 +393,393 +394,394 +395,395 +396,396 +397,397 +398,398 +399,399 +400,400 +401,401 +402,402 +403,403 +404,404 +405,405 +406,406 +407,407 +408,408 +409,409 +410,410 +411,411 +412,412 +413,413 +414,414 +415,415 +416,416 +417,417 +418,418 +419,419 +420,420 +421,421 +422,422 +423,423 +424,424 +425,425 +426,426 +427,427 +428,428 +429,429 +430,430 +431,431 +432,432 +433,433 +434,434 +435,435 +436,436 +437,437 +438,438 +439,439 +440,440 +441,441 +442,442 +443,443 +444,444 +445,445 +446,446 +447,447 +448,448 +449,449 +450,450 +451,451 +452,452 +453,453 +454,454 +455,455 +456,456 +457,457 +458,458 +459,459 +460,460 +461,461 +462,462 +463,463 +464,464 +465,465 +466,466 +467,467 +468,468 +469,469 +470,470 +471,471 +472,472 +473,473 +474,474 +475,475 +476,476 +477,477 +478,478 +479,479 +480,480 +481,481 +482,482 +483,483 +484,484 +485,485 +486,486 +487,487 +488,488 +489,489 +490,490 +491,491 +492,492 +493,493 +494,494 +495,495 +496,496 +497,497 +498,498 +499,499 +500,500 +501,501 +502,502 +503,503 +504,504 +505,505 +506,506 +507,507 +508,508 +509,509 +510,510 +511,511 +512,512 +513,513 +514,514 +515,515 +516,516 +517,517 +518,518 +519,519 +520,520 +521,521 +522,522 +523,523 +524,524 +525,525 +526,526 +527,527 +528,528 +529,529 +530,530 +531,531 +532,532 +533,533 +534,534 +535,535 +536,536 +537,537 +538,538 +539,539 +540,540 +541,541 +542,542 +543,543 +544,544 +545,545 +546,546 +547,547 +548,548 +549,549 +550,550 +551,551 +552,552 +553,553 +554,554 +555,555 +556,556 +557,557 +558,558 +559,559 +560,560 +561,561 +562,562 +563,563 +564,564 +565,565 +566,566 +567,567 +568,568 +569,569 +570,570 +571,571 +572,572 +573,573 +574,574 +575,575 +576,576 +577,577 +578,578 +579,579 +580,580 +581,581 +582,582 +583,583 +584,584 +585,585 +586,586 +587,587 +588,588 +589,589 +590,590 +591,591 +592,592 +593,593 +594,594 +595,595 +596,596 +597,597 +598,598 +599,599 +600,600 +601,601 +602,602 +603,603 +604,604 +605,605 +606,606 +607,607 +608,608 +609,609 +610,610 +611,611 +612,612 +613,613 +614,614 +615,615 +616,616 +617,617 +618,618 +619,619 +620,620 +621,621 +622,622 +623,623 +624,624 +625,625 +626,626 +627,627 +628,628 +629,629 +630,630 +631,631 +632,632 +633,633 +634,634 +635,635 +636,636 +637,637 +638,638 +639,639 +640,640 +641,641 +642,642 +643,643 +644,644 +645,645 +646,646 +647,647 +648,648 +649,649 +650,650 +651,651 +652,652 +653,653 +654,654 +655,655 +656,656 +657,657 +658,658 +659,659 +660,660 +661,661 +662,662 +663,663 +664,664 +665,665 +666,666 +667,667 +668,668 +669,669 +670,670 +671,671 +672,672 +673,673 +674,674 +675,675 +676,676 +677,677 +678,678 +679,679 +680,680 +681,681 +682,682 +683,683 +684,684 +685,685 +686,686 +687,687 +688,688 +689,689 +690,690 +691,691 +692,692 +693,693 +694,694 +695,695 +696,696 +697,697 +698,698 +699,699 +700,700 +701,701 +702,702 +703,703 +704,704 +705,705 +706,706 +707,707 +708,708 +709,709 +710,710 +711,711 +712,712 +713,713 +714,714 +715,715 +716,716 +717,717 +718,718 +719,719 +720,720 +721,721 +722,722 +723,723 +724,724 +725,725 +726,726 +727,727 +728,728 +729,729 +730,730 +731,731 +732,732 +733,733 +734,734 +735,735 +736,736 +737,737 +738,738 +739,739 +740,740 +741,741 +742,742 +743,743 +744,744 +745,745 +746,746 +747,747 +748,748 +749,749 +750,750 +751,751 +752,752 +753,753 +754,754 +755,755 +756,756 +757,757 +758,758 +759,759 +760,760 +761,761 +762,762 +763,763 +764,764 +765,765 +766,766 +767,767 +768,768 +769,769 +770,770 +771,771 +772,772 +773,773 +774,774 +775,775 +776,776 +777,777 +778,778 +779,779 +780,780 +781,781 +782,782 +783,783 +10 +0,784 +1,785 +2,786 +3,787 +4,788 +5,789 +6,790 +7,791 +8,792 +9,793 +0,0 +1,0 +2,0 +3,0 +4,0 +5,0 +6,0 +7,0 +8,0 +9,0 +10,0 +11,0 +12,0 +13,0 +14,0 +15,0 +16,0 +17,0 +18,0 +19,0 +20,0 +21,0 +22,0 +23,0 +24,0 +25,0 +26,0 +27,0 +28,0 +29,0 +30,0 +31,0 +32,0 +33,0 +34,0 +35,0 +36,0 +37,0 +38,0 +39,0 +40,0 +41,0 +42,0 +43,0 +44,0 +45,0 +46,0 +47,0 +48,0 +49,0 +50,0 +51,0 +52,0 +53,0 +54,0 +55,0 +56,0 +57,0 +58,0 +59,0 +60,0 +61,0 +62,0 +63,0 +64,0 +65,0 +66,0 +67,0 +68,0 +69,0 +70,0 +71,0 +72,0 +73,0 +74,0 +75,0 +76,0 +77,0 +78,0 +79,0 +80,0 +81,0 +82,0 +83,0 +84,0 +85,0 +86,0 +87,0 +88,0 +89,0 +90,0 +91,0 +92,0 +93,0 +94,0 +95,0 +96,0 +97,0 +98,0 +99,0 +100,0 +101,0 +102,0 +103,0 +104,0 +105,0 +106,0 +107,0 +108,0 +109,0 +110,0 +111,0 +112,0 +113,0 +114,0 +115,0 +116,0 +117,0 +118,0 +119,0 +120,0 +121,0 +122,0 +123,0 +124,0 +125,0 +126,0 +127,0 +128,0 +129,0 +130,0 +131,0 +132,0 +133,0 +134,0 +135,0 +136,0 +137,0 +138,0 +139,0 +140,0 +141,0 +142,0 +143,0 +144,0 +145,0 +146,0 +147,0 +148,0 +149,0 +150,0 +151,0 +152,0 +153,0.02666973039215686 +154,0.807061887254902 +155,0.803140318627451 +156,0.08157169117647059 +157,0 +158,0 +159,0 +160,0 +161,0 +162,0 +163,0 +164,0 +165,0 +166,0 +167,0 +168,0 +169,0 +170,0 +171,0 +172,0 +173,0 +174,0 +175,0 +176,0 +177,0 +178,0 +179,0 +180,0 +181,0.6815716911764707 +182,0.9952971813725491 +183,0.9913756127450981 +184,0.6894148284313726 +185,0 +186,0 +187,0 +188,0 +189,0 +190,0 +191,0 +192,0 +193,0 +194,0 +195,0 +196,0 +197,0 +198,0 +199,0 +200,0 +201,0 +202,0 +203,0 +204,0 +205,0 +206,0 +207,0 +208,0.4345128676470588 +209,0.9796109068627451 +210,0.9952971813725491 +211,0.9913756127450981 +212,0.7600030637254902 +213,0 +214,0 +215,0 +216,0 +217,0 +218,0 +219,0 +220,0 +221,0 +222,0 +223,0 +224,0 +225,0 +226,0 +227,0 +228,0 +229,0 +230,0 +231,0 +232,0 +233,0 +234,0 +235,0.09725796568627451 +236,0.9325520833333334 +237,0.9913756127450981 +238,0.9952971813725491 +239,0.9913756127450981 +240,0.9011795343137255 +241,0.04627757352941177 +242,0 +243,0 +244,0 +245,0 +246,0 +247,0 +248,0 +249,0 +250,0 +251,0 +252,0 +253,0 +254,0 +255,0 +256,0 +257,0 +258,0 +259,0 +260,0 +261,0 +262,0 +263,0.5756893382352941 +264,0.9952971813725491 +265,0.9952971813725491 +266,0.4815716911764706 +267,0.9952971813725491 +268,0.9051011029411765 +269,0.04627757352941177 +270,0 +271,0 +272,0 +273,0 +274,0 +275,0 +276,0 +277,0 +278,0 +279,0 +280,0 +281,0 +282,0 +283,0 +284,0 +285,0 +286,0 +287,0 +288,0 +289,0 +290,0.3207873774509804 +291,0.8698069852941177 +292,0.9913756127450981 +293,0.5639246323529412 +294,0.24235600490196077 +295,0.9913756127450981 +296,0.7600030637254902 +297,0 +298,0 +299,0 +300,0 +301,0 +302,0 +303,0 +304,0 +305,0 +306,0 +307,0 +308,0 +309,0 +310,0 +311,0 +312,0 +313,0 +314,0 +315,0 +316,0 +317,0 +318,0.5913756127450981 +319,0.9913756127450981 +320,0.9364736519607844 +321,0.05804227941176471 +322,0.07765012254901961 +323,0.9913756127450981 +324,0.8854932598039216 +325,0.042356004901960786 +326,0 +327,0 +328,0 +329,0 +330,0 +331,0 +332,0 +333,0 +334,0 +335,0 +336,0 +337,0 +338,0 +339,0 +340,0 +341,0 +342,0 +343,0 +344,0 +345,0 +346,0.8776501225490196 +347,0.9913756127450981 +348,0.5717677696078431 +349,0 +350,0.07765012254901961 +351,0.9913756127450981 +352,0.7796109068627451 +353,0.007061887254901961 +354,0 +355,0 +356,0 +357,0 +358,0 +359,0 +360,0 +361,0 +362,0 +363,0 +364,0 +365,0 +366,0 +367,0 +368,0 +369,0 +370,0 +371,0 +372,0 +373,0.3325520833333333 +374,0.99921875 +375,0.9364736519607844 +376,0.09333639705882353 +377,0 +378,0.07765012254901961 +379,0.9952971813725491 +380,0.7639246323529412 +381,0 +382,0 +383,0.038434436274509806 +384,0.07765012254901961 +385,0.3600030637254902 +386,0.4580422794117647 +387,0.0188265931372549 +388,0 +389,0 +390,0 +391,0 +392,0 +393,0 +394,0 +395,0 +396,0 +397,0 +398,0 +399,0 +400,0 +401,0.6580422794117647 +402,0.9952971813725491 +403,0.8384344362745099 +404,0 +405,0 +406,0.07765012254901961 +407,0.9913756127450981 +408,0.795297181372549 +409,0.1560814950980392 +410,0.36784620098039217 +411,0.7992187500000001 +412,0.9913756127450981 +413,0.9913756127450981 +414,0.9952971813725491 +415,0.22666973039215685 +416,0 +417,0 +418,0 +419,0 +420,0 +421,0 +422,0 +423,0 +424,0 +425,0 +426,0 +427,0 +428,0 +429,0.9168658088235294 +430,0.9952971813725491 +431,0.5756893382352941 +432,0 +433,0 +434,0.38745404411764706 +435,0.9913756127450981 +436,0.9913756127450981 +437,0.9913756127450981 +438,0.9952971813725491 +439,0.9913756127450981 +440,0.9913756127450981 +441,0.9207873774509804 +442,0.6227481617647059 +443,0.034512867647058826 +444,0 +445,0 +446,0 +447,0 +448,0 +449,0 +450,0 +451,0 +452,0 +453,0 +454,0 +455,0 +456,0.07372855392156863 +457,0.9403952205882353 +458,0.9952971813725491 +459,0.9560814950980393 +460,0.9168658088235294 +461,0.9168658088235294 +462,0.9952971813725491 +463,0.9913756127450981 +464,0.9913756127450981 +465,0.9913756127450981 +466,0.9952971813725491 +467,0.8501991421568628 +468,0.2619638480392157 +469,0.05019914215686275 +470,0 +471,0 +472,0 +473,0 +474,0 +475,0 +476,0 +477,0 +478,0 +479,0 +480,0 +481,0 +482,0 +483,0 +484,0 +485,0.8972579656862746 +486,0.99921875 +487,0.9952971813725491 +488,0.9952971813725491 +489,0.9952971813725491 +490,0.99921875 +491,0.9952971813725491 +492,0.9952971813725491 +493,0.6384344362745098 +494,0.19137561274509804 +495,0 +496,0 +497,0 +498,0 +499,0 +500,0 +501,0 +502,0 +503,0 +504,0 +505,0 +506,0 +507,0 +508,0 +509,0 +510,0 +511,0 +512,0 +513,0.14039522058823528 +514,0.5325520833333334 +515,0.5325520833333334 +516,0.27372855392156864 +517,0.22666973039215685 +518,0.4776501225490196 +519,0.9913756127450981 +520,0.9913756127450981 +521,0.07372855392156863 +522,0 +523,0 +524,0 +525,0 +526,0 +527,0 +528,0 +529,0 +530,0 +531,0 +532,0 +533,0 +534,0 +535,0 +536,0 +537,0 +538,0 +539,0 +540,0 +541,0 +542,0 +543,0 +544,0 +545,0 +546,0.07765012254901961 +547,0.9913756127450981 +548,0.9913756127450981 +549,0.07372855392156863 +550,0 +551,0 +552,0 +553,0 +554,0 +555,0 +556,0 +557,0 +558,0 +559,0 +560,0 +561,0 +562,0 +563,0 +564,0 +565,0 +566,0 +567,0 +568,0 +569,0 +570,0 +571,0 +572,0 +573,0 +574,0.07765012254901961 +575,0.9913756127450981 +576,0.9913756127450981 +577,0.07372855392156863 +578,0 +579,0 +580,0 +581,0 +582,0 +583,0 +584,0 +585,0 +586,0 +587,0 +588,0 +589,0 +590,0 +591,0 +592,0 +593,0 +594,0 +595,0 +596,0 +597,0 +598,0 +599,0 +600,0 +601,0 +602,0.07765012254901961 +603,0.9952971813725491 +604,0.9952971813725491 +605,0.07372855392156863 +606,0 +607,0 +608,0 +609,0 +610,0 +611,0 +612,0 +613,0 +614,0 +615,0 +616,0 +617,0 +618,0 +619,0 +620,0 +621,0 +622,0 +623,0 +624,0 +625,0 +626,0 +627,0 +628,0 +629,0 +630,0.07765012254901961 +631,0.9913756127450981 +632,0.9560814950980393 +633,0.06196384803921569 +634,0 +635,0 +636,0 +637,0 +638,0 +639,0 +640,0 +641,0 +642,0 +643,0 +644,0 +645,0 +646,0 +647,0 +648,0 +649,0 +650,0 +651,0 +652,0 +653,0 +654,0 +655,0 +656,0 +657,0 +658,0.07765012254901961 +659,0.9913756127450981 +660,0.7600030637254902 +661,0 +662,0 +663,0 +664,0 +665,0 +666,0 +667,0 +668,0 +669,0 +670,0 +671,0 +672,0 +673,0 +674,0 +675,0 +676,0 +677,0 +678,0 +679,0 +680,0 +681,0 +682,0 +683,0 +684,0 +685,0 +686,0.07765012254901961 +687,0.9913756127450981 +688,0.4815716911764706 +689,0 +690,0 +691,0 +692,0 +693,0 +694,0.19137561274509804 +695,0 +696,0 +697,0 +698,0 +699,0 +700,0 +701,0 +702,0 +703,0 +704,0 +705,0 +706,0 +707,0 +708,0 +709,0 +710,0 +711,0 +712,0 +713,0 +714,0 +715,0 +716,0 +717,0 +718,0 +719,0 +720,0 +721,0 +722,0 +723,0 +724,0 +725,0 +726,0 +727,0 +728,0 +729,0 +730,0 +731,0 +732,0 +733,0 +734,0 +735,0 +736,0 +737,0 +738,0 +739,0 +740,0 +741,0 +742,0 +743,0 +744,0 +745,0 +746,0 +747,0 +748,0 +749,0 +750,0 +751,0 +752,0 +753,0 +754,0 +755,0 +756,0 +757,0 +758,0 +759,0 +760,0 +761,0 +762,0 +763,0 +764,0 +765,0 +766,0 +767,0 +768,0 +769,0 +770,0 +771,0 +772,0 +773,0 +774,0 +775,0 +776,0 +777,0 +778,0 +779,0 +780,0 +781,0 +782,0 +783,0 +1678,-1.0000000000 +1679,-1.0000000000 +1680,-1.0000000000 +1681,-1.0000000000 +1682,-1.0000000000 +1683,-1.0000000000 +1684,-1.0000000000 +1685,-1.0000000000 +1686,-1.0000000000 +1687,-1.0000000000 +1688,-1.0000000000 +1689,-1.0000000000 +1690,-1.0000000000 +1691,-1.0000000000 +1692,-1.0000000000 +1693,-1.0000000000 +1694,-1.0000000000 +1695,-1.0000000000 +1696,-1.0000000000 +1697,-1.0000000000 +1698,-1.0000000000 +1699,-1.0000000000 +1700,-1.0000000000 +1701,-1.0000000000 +1702,-1.0000000000 +1703,-1.0000000000 +1704,-1.0000000000 +1705,-1.0000000000 +1706,-1.0000000000 +1707,-1.0000000000 +1708,-1.0000000000 +1709,-1.0000000000 +1710,-1.0000000000 +1711,-1.0000000000 +1712,-1.0000000000 +1713,-1.0000000000 +1714,-1.0000000000 +1715,-1.0000000000 +1716,-1.0000000000 +1717,-1.0000000000 +1718,-1.0000000000 +1719,-1.0000000000 +1720,-1.0000000000 +1721,-1.0000000000 +1722,-1.0000000000 +1723,-1.0000000000 +1724,-1.0000000000 +1725,-1.0000000000 +1726,-1.0000000000 +1727,-1.0000000000 +1928,-1.0000000000 +1929,-1.0000000000 +1930,-1.0000000000 +1931,-1.0000000000 +1932,-1.0000000000 +1933,-1.0000000000 +1934,-1.0000000000 +1935,-1.0000000000 +1936,-1.0000000000 +1937,-1.0000000000 +1938,-1.0000000000 +1939,-1.0000000000 +1940,-1.0000000000 +1941,-1.0000000000 +1942,-1.0000000000 +1943,-1.0000000000 +1944,-1.0000000000 +1945,-1.0000000000 +1946,-1.0000000000 +1947,-1.0000000000 +1948,-1.0000000000 +1949,-1.0000000000 +1950,-1.0000000000 +1951,-1.0000000000 +1952,-1.0000000000 +1953,-1.0000000000 +1954,-1.0000000000 +1955,-1.0000000000 +1956,-1.0000000000 +1957,-1.0000000000 +1958,-1.0000000000 +1959,-1.0000000000 +1960,-1.0000000000 +1961,-1.0000000000 +1962,-1.0000000000 +1963,-1.0000000000 +1964,-1.0000000000 +1965,-1.0000000000 +1966,-1.0000000000 +1967,-1.0000000000 +1968,-1.0000000000 +1969,-1.0000000000 +1970,-1.0000000000 +1971,-1.0000000000 +1972,-1.0000000000 +1973,-1.0000000000 +1974,-1.0000000000 +1975,-1.0000000000 +1976,-1.0000000000 +1977,-1.0000000000 +2178,-1.0000000000 +2179,-1.0000000000 +2180,-1.0000000000 +2181,-1.0000000000 +2182,-1.0000000000 +2183,-1.0000000000 +2184,-1.0000000000 +2185,-1.0000000000 +2186,-1.0000000000 +2187,-1.0000000000 +2188,-1.0000000000 +2189,-1.0000000000 +2190,-1.0000000000 +2191,-1.0000000000 +2192,-1.0000000000 +2193,-1.0000000000 +2194,-1.0000000000 +2195,-1.0000000000 +2196,-1.0000000000 +2197,-1.0000000000 +2198,-1.0000000000 +2199,-1.0000000000 +2200,-1.0000000000 +2201,-1.0000000000 +2202,-1.0000000000 +2203,-1.0000000000 +2204,-1.0000000000 +2205,-1.0000000000 +2206,-1.0000000000 +2207,-1.0000000000 +2208,-1.0000000000 +2209,-1.0000000000 +2210,-1.0000000000 +2211,-1.0000000000 +2212,-1.0000000000 +2213,-1.0000000000 +2214,-1.0000000000 +2215,-1.0000000000 +2216,-1.0000000000 +2217,-1.0000000000 +2218,-1.0000000000 +2219,-1.0000000000 +2220,-1.0000000000 +2221,-1.0000000000 +2222,-1.0000000000 +2223,-1.0000000000 +2224,-1.0000000000 +2225,-1.0000000000 +2226,-1.0000000000 +2227,-1.0000000000 +2428,-1.0000000000 +2429,-1.0000000000 +2430,-1.0000000000 +2431,-1.0000000000 +2432,-1.0000000000 +2433,-1.0000000000 +2434,-1.0000000000 +2435,-1.0000000000 +2436,-1.0000000000 +2437,-1.0000000000 +2438,-1.0000000000 +2439,-1.0000000000 +2440,-1.0000000000 +2441,-1.0000000000 +2442,-1.0000000000 +2443,-1.0000000000 +2444,-1.0000000000 +2445,-1.0000000000 +2446,-1.0000000000 +2447,-1.0000000000 +2448,-1.0000000000 +2449,-1.0000000000 +2450,-1.0000000000 +2451,-1.0000000000 +2452,-1.0000000000 +2453,-1.0000000000 +2454,-1.0000000000 +2455,-1.0000000000 +2456,-1.0000000000 +2457,-1.0000000000 +2458,-1.0000000000 +2459,-1.0000000000 +2460,-1.0000000000 +2461,-1.0000000000 +2462,-1.0000000000 +2463,-1.0000000000 +2464,-1.0000000000 +2465,-1.0000000000 +2466,-1.0000000000 +2467,-1.0000000000 +2468,-1.0000000000 +2469,-1.0000000000 +2470,-1.0000000000 +2471,-1.0000000000 +2472,-1.0000000000 +2473,-1.0000000000 +2474,-1.0000000000 +2475,-1.0000000000 +2476,-1.0000000000 +2477,-1.0000000000 +2598,-1.0000000000 +2599,-1.0000000000 +2600,-1.0000000000 +2601,-1.0000000000 +2602,-1.0000000000 +2603,-1.0000000000 +2604,-1.0000000000 +2605,-1.0000000000 +2606,-1.0000000000 +2607,-1.0000000000 +2648,-1.0000000000 +2649,-1.0000000000 +2650,-1.0000000000 +2651,-1.0000000000 +2652,-1.0000000000 +2653,-1.0000000000 +2654,-1.0000000000 +2655,-1.0000000000 +2656,-1.0000000000 +2657,-1.0000000000 +0,0.00078125 +1,0.00078125 +2,0.00078125 +3,0.00078125 +4,0.00078125 +5,0.00078125 +6,0.00078125 +7,0.00078125 +8,0.00078125 +9,0.00078125 +10,0.00078125 +11,0.00078125 +12,0.00078125 +13,0.00078125 +14,0.00078125 +15,0.00078125 +16,0.00078125 +17,0.00078125 +18,0.00078125 +19,0.00078125 +20,0.00078125 +21,0.00078125 +22,0.00078125 +23,0.00078125 +24,0.00078125 +25,0.00078125 +26,0.00078125 +27,0.00078125 +28,0.00078125 +29,0.00078125 +30,0.00078125 +31,0.00078125 +32,0.00078125 +33,0.00078125 +34,0.00078125 +35,0.00078125 +36,0.00078125 +37,0.00078125 +38,0.00078125 +39,0.00078125 +40,0.00078125 +41,0.00078125 +42,0.00078125 +43,0.00078125 +44,0.00078125 +45,0.00078125 +46,0.00078125 +47,0.00078125 +48,0.00078125 +49,0.00078125 +50,0.00078125 +51,0.00078125 +52,0.00078125 +53,0.00078125 +54,0.00078125 +55,0.00078125 +56,0.00078125 +57,0.00078125 +58,0.00078125 +59,0.00078125 +60,0.00078125 +61,0.00078125 +62,0.00078125 +63,0.00078125 +64,0.00078125 +65,0.00078125 +66,0.00078125 +67,0.00078125 +68,0.00078125 +69,0.00078125 +70,0.00078125 +71,0.00078125 +72,0.00078125 +73,0.00078125 +74,0.00078125 +75,0.00078125 +76,0.00078125 +77,0.00078125 +78,0.00078125 +79,0.00078125 +80,0.00078125 +81,0.00078125 +82,0.00078125 +83,0.00078125 +84,0.00078125 +85,0.00078125 +86,0.00078125 +87,0.00078125 +88,0.00078125 +89,0.00078125 +90,0.00078125 +91,0.00078125 +92,0.00078125 +93,0.00078125 +94,0.00078125 +95,0.00078125 +96,0.00078125 +97,0.00078125 +98,0.00078125 +99,0.00078125 +100,0.00078125 +101,0.00078125 +102,0.00078125 +103,0.00078125 +104,0.00078125 +105,0.00078125 +106,0.00078125 +107,0.00078125 +108,0.00078125 +109,0.00078125 +110,0.00078125 +111,0.00078125 +112,0.00078125 +113,0.00078125 +114,0.00078125 +115,0.00078125 +116,0.00078125 +117,0.00078125 +118,0.00078125 +119,0.00078125 +120,0.00078125 +121,0.00078125 +122,0.00078125 +123,0.00078125 +124,0.00078125 +125,0.00078125 +126,0.00078125 +127,0.00078125 +128,0.00078125 +129,0.00078125 +130,0.00078125 +131,0.00078125 +132,0.00078125 +133,0.00078125 +134,0.00078125 +135,0.00078125 +136,0.00078125 +137,0.00078125 +138,0.00078125 +139,0.00078125 +140,0.00078125 +141,0.00078125 +142,0.00078125 +143,0.00078125 +144,0.00078125 +145,0.00078125 +146,0.00078125 +147,0.00078125 +148,0.00078125 +149,0.00078125 +150,0.00078125 +151,0.00078125 +152,0.00078125 +153,0.028232230392156863 +154,0.8086243872549019 +155,0.804702818627451 +156,0.08313419117647058 +157,0.00078125 +158,0.00078125 +159,0.00078125 +160,0.00078125 +161,0.00078125 +162,0.00078125 +163,0.00078125 +164,0.00078125 +165,0.00078125 +166,0.00078125 +167,0.00078125 +168,0.00078125 +169,0.00078125 +170,0.00078125 +171,0.00078125 +172,0.00078125 +173,0.00078125 +174,0.00078125 +175,0.00078125 +176,0.00078125 +177,0.00078125 +178,0.00078125 +179,0.00078125 +180,0.00078125 +181,0.6831341911764706 +182,0.996859681372549 +183,0.992938112745098 +184,0.6909773284313725 +185,0.00078125 +186,0.00078125 +187,0.00078125 +188,0.00078125 +189,0.00078125 +190,0.00078125 +191,0.00078125 +192,0.00078125 +193,0.00078125 +194,0.00078125 +195,0.00078125 +196,0.00078125 +197,0.00078125 +198,0.00078125 +199,0.00078125 +200,0.00078125 +201,0.00078125 +202,0.00078125 +203,0.00078125 +204,0.00078125 +205,0.00078125 +206,0.00078125 +207,0.00078125 +208,0.43607536764705884 +209,0.981173406862745 +210,0.996859681372549 +211,0.992938112745098 +212,0.7615655637254901 +213,0.00078125 +214,0.00078125 +215,0.00078125 +216,0.00078125 +217,0.00078125 +218,0.00078125 +219,0.00078125 +220,0.00078125 +221,0.00078125 +222,0.00078125 +223,0.00078125 +224,0.00078125 +225,0.00078125 +226,0.00078125 +227,0.00078125 +228,0.00078125 +229,0.00078125 +230,0.00078125 +231,0.00078125 +232,0.00078125 +233,0.00078125 +234,0.00078125 +235,0.0988204656862745 +236,0.9341145833333333 +237,0.992938112745098 +238,0.996859681372549 +239,0.992938112745098 +240,0.9027420343137255 +241,0.04784007352941176 +242,0.00078125 +243,0.00078125 +244,0.00078125 +245,0.00078125 +246,0.00078125 +247,0.00078125 +248,0.00078125 +249,0.00078125 +250,0.00078125 +251,0.00078125 +252,0.00078125 +253,0.00078125 +254,0.00078125 +255,0.00078125 +256,0.00078125 +257,0.00078125 +258,0.00078125 +259,0.00078125 +260,0.00078125 +261,0.00078125 +262,0.00078125 +263,0.577251838235294 +264,0.996859681372549 +265,0.996859681372549 +266,0.4831341911764706 +267,0.996859681372549 +268,0.9066636029411764 +269,0.04784007352941176 +270,0.00078125 +271,0.00078125 +272,0.00078125 +273,0.00078125 +274,0.00078125 +275,0.00078125 +276,0.00078125 +277,0.00078125 +278,0.00078125 +279,0.00078125 +280,0.00078125 +281,0.00078125 +282,0.00078125 +283,0.00078125 +284,0.00078125 +285,0.00078125 +286,0.00078125 +287,0.00078125 +288,0.00078125 +289,0.00078125 +290,0.3223498774509804 +291,0.8713694852941176 +292,0.992938112745098 +293,0.5654871323529411 +294,0.2439185049019608 +295,0.992938112745098 +296,0.7615655637254901 +297,0.00078125 +298,0.00078125 +299,0.00078125 +300,0.00078125 +301,0.00078125 +302,0.00078125 +303,0.00078125 +304,0.00078125 +305,0.00078125 +306,0.00078125 +307,0.00078125 +308,0.00078125 +309,0.00078125 +310,0.00078125 +311,0.00078125 +312,0.00078125 +313,0.00078125 +314,0.00078125 +315,0.00078125 +316,0.00078125 +317,0.00078125 +318,0.592938112745098 +319,0.992938112745098 +320,0.9380361519607843 +321,0.0596047794117647 +322,0.0792126225490196 +323,0.992938112745098 +324,0.8870557598039215 +325,0.04391850490196078 +326,0.00078125 +327,0.00078125 +328,0.00078125 +329,0.00078125 +330,0.00078125 +331,0.00078125 +332,0.00078125 +333,0.00078125 +334,0.00078125 +335,0.00078125 +336,0.00078125 +337,0.00078125 +338,0.00078125 +339,0.00078125 +340,0.00078125 +341,0.00078125 +342,0.00078125 +343,0.00078125 +344,0.00078125 +345,0.00078125 +346,0.8792126225490196 +347,0.992938112745098 +348,0.5733302696078431 +349,0.00078125 +350,0.0792126225490196 +351,0.992938112745098 +352,0.7811734068627451 +353,0.008624387254901961 +354,0.00078125 +355,0.00078125 +356,0.00078125 +357,0.00078125 +358,0.00078125 +359,0.00078125 +360,0.00078125 +361,0.00078125 +362,0.00078125 +363,0.00078125 +364,0.00078125 +365,0.00078125 +366,0.00078125 +367,0.00078125 +368,0.00078125 +369,0.00078125 +370,0.00078125 +371,0.00078125 +372,0.00078125 +373,0.3341145833333333 +374,1 +375,0.9380361519607843 +376,0.09489889705882353 +377,0.00078125 +378,0.0792126225490196 +379,0.996859681372549 +380,0.7654871323529411 +381,0.00078125 +382,0.00078125 +383,0.0399969362745098 +384,0.0792126225490196 +385,0.3615655637254902 +386,0.4596047794117647 +387,0.020389093137254902 +388,0.00078125 +389,0.00078125 +390,0.00078125 +391,0.00078125 +392,0.00078125 +393,0.00078125 +394,0.00078125 +395,0.00078125 +396,0.00078125 +397,0.00078125 +398,0.00078125 +399,0.00078125 +400,0.00078125 +401,0.6596047794117647 +402,0.996859681372549 +403,0.8399969362745098 +404,0.00078125 +405,0.00078125 +406,0.0792126225490196 +407,0.992938112745098 +408,0.7968596813725489 +409,0.15764399509803922 +410,0.3694087009803922 +411,0.80078125 +412,0.992938112745098 +413,0.992938112745098 +414,0.996859681372549 +415,0.22823223039215687 +416,0.00078125 +417,0.00078125 +418,0.00078125 +419,0.00078125 +420,0.00078125 +421,0.00078125 +422,0.00078125 +423,0.00078125 +424,0.00078125 +425,0.00078125 +426,0.00078125 +427,0.00078125 +428,0.00078125 +429,0.9184283088235293 +430,0.996859681372549 +431,0.577251838235294 +432,0.00078125 +433,0.00078125 +434,0.3890165441176471 +435,0.992938112745098 +436,0.992938112745098 +437,0.992938112745098 +438,0.996859681372549 +439,0.992938112745098 +440,0.992938112745098 +441,0.9223498774509803 +442,0.6243106617647058 +443,0.03607536764705882 +444,0.00078125 +445,0.00078125 +446,0.00078125 +447,0.00078125 +448,0.00078125 +449,0.00078125 +450,0.00078125 +451,0.00078125 +452,0.00078125 +453,0.00078125 +454,0.00078125 +455,0.00078125 +456,0.07529105392156862 +457,0.9419577205882352 +458,0.996859681372549 +459,0.9576439950980392 +460,0.9184283088235293 +461,0.9184283088235293 +462,0.996859681372549 +463,0.992938112745098 +464,0.992938112745098 +465,0.992938112745098 +466,0.996859681372549 +467,0.8517616421568627 +468,0.2635263480392157 +469,0.05176164215686274 +470,0.00078125 +471,0.00078125 +472,0.00078125 +473,0.00078125 +474,0.00078125 +475,0.00078125 +476,0.00078125 +477,0.00078125 +478,0.00078125 +479,0.00078125 +480,0.00078125 +481,0.00078125 +482,0.00078125 +483,0.00078125 +484,0.00078125 +485,0.8988204656862745 +486,1 +487,0.996859681372549 +488,0.996859681372549 +489,0.996859681372549 +490,1 +491,0.996859681372549 +492,0.996859681372549 +493,0.6399969362745097 +494,0.19293811274509806 +495,0.00078125 +496,0.00078125 +497,0.00078125 +498,0.00078125 +499,0.00078125 +500,0.00078125 +501,0.00078125 +502,0.00078125 +503,0.00078125 +504,0.00078125 +505,0.00078125 +506,0.00078125 +507,0.00078125 +508,0.00078125 +509,0.00078125 +510,0.00078125 +511,0.00078125 +512,0.00078125 +513,0.1419577205882353 +514,0.5341145833333333 +515,0.5341145833333333 +516,0.27529105392156866 +517,0.22823223039215687 +518,0.47921262254901964 +519,0.992938112745098 +520,0.992938112745098 +521,0.07529105392156862 +522,0.00078125 +523,0.00078125 +524,0.00078125 +525,0.00078125 +526,0.00078125 +527,0.00078125 +528,0.00078125 +529,0.00078125 +530,0.00078125 +531,0.00078125 +532,0.00078125 +533,0.00078125 +534,0.00078125 +535,0.00078125 +536,0.00078125 +537,0.00078125 +538,0.00078125 +539,0.00078125 +540,0.00078125 +541,0.00078125 +542,0.00078125 +543,0.00078125 +544,0.00078125 +545,0.00078125 +546,0.0792126225490196 +547,0.992938112745098 +548,0.992938112745098 +549,0.07529105392156862 +550,0.00078125 +551,0.00078125 +552,0.00078125 +553,0.00078125 +554,0.00078125 +555,0.00078125 +556,0.00078125 +557,0.00078125 +558,0.00078125 +559,0.00078125 +560,0.00078125 +561,0.00078125 +562,0.00078125 +563,0.00078125 +564,0.00078125 +565,0.00078125 +566,0.00078125 +567,0.00078125 +568,0.00078125 +569,0.00078125 +570,0.00078125 +571,0.00078125 +572,0.00078125 +573,0.00078125 +574,0.0792126225490196 +575,0.992938112745098 +576,0.992938112745098 +577,0.07529105392156862 +578,0.00078125 +579,0.00078125 +580,0.00078125 +581,0.00078125 +582,0.00078125 +583,0.00078125 +584,0.00078125 +585,0.00078125 +586,0.00078125 +587,0.00078125 +588,0.00078125 +589,0.00078125 +590,0.00078125 +591,0.00078125 +592,0.00078125 +593,0.00078125 +594,0.00078125 +595,0.00078125 +596,0.00078125 +597,0.00078125 +598,0.00078125 +599,0.00078125 +600,0.00078125 +601,0.00078125 +602,0.0792126225490196 +603,0.996859681372549 +604,0.996859681372549 +605,0.07529105392156862 +606,0.00078125 +607,0.00078125 +608,0.00078125 +609,0.00078125 +610,0.00078125 +611,0.00078125 +612,0.00078125 +613,0.00078125 +614,0.00078125 +615,0.00078125 +616,0.00078125 +617,0.00078125 +618,0.00078125 +619,0.00078125 +620,0.00078125 +621,0.00078125 +622,0.00078125 +623,0.00078125 +624,0.00078125 +625,0.00078125 +626,0.00078125 +627,0.00078125 +628,0.00078125 +629,0.00078125 +630,0.0792126225490196 +631,0.992938112745098 +632,0.9576439950980392 +633,0.06352634803921568 +634,0.00078125 +635,0.00078125 +636,0.00078125 +637,0.00078125 +638,0.00078125 +639,0.00078125 +640,0.00078125 +641,0.00078125 +642,0.00078125 +643,0.00078125 +644,0.00078125 +645,0.00078125 +646,0.00078125 +647,0.00078125 +648,0.00078125 +649,0.00078125 +650,0.00078125 +651,0.00078125 +652,0.00078125 +653,0.00078125 +654,0.00078125 +655,0.00078125 +656,0.00078125 +657,0.00078125 +658,0.0792126225490196 +659,0.992938112745098 +660,0.7615655637254901 +661,0.00078125 +662,0.00078125 +663,0.00078125 +664,0.00078125 +665,0.00078125 +666,0.00078125 +667,0.00078125 +668,0.00078125 +669,0.00078125 +670,0.00078125 +671,0.00078125 +672,0.00078125 +673,0.00078125 +674,0.00078125 +675,0.00078125 +676,0.00078125 +677,0.00078125 +678,0.00078125 +679,0.00078125 +680,0.00078125 +681,0.00078125 +682,0.00078125 +683,0.00078125 +684,0.00078125 +685,0.00078125 +686,0.0792126225490196 +687,0.992938112745098 +688,0.4831341911764706 +689,0.00078125 +690,0.00078125 +691,0.00078125 +692,0.00078125 +693,0.00078125 +694,0.19293811274509806 +695,0.00078125 +696,0.00078125 +697,0.00078125 +698,0.00078125 +699,0.00078125 +700,0.00078125 +701,0.00078125 +702,0.00078125 +703,0.00078125 +704,0.00078125 +705,0.00078125 +706,0.00078125 +707,0.00078125 +708,0.00078125 +709,0.00078125 +710,0.00078125 +711,0.00078125 +712,0.00078125 +713,0.00078125 +714,0.00078125 +715,0.00078125 +716,0.00078125 +717,0.00078125 +718,0.00078125 +719,0.00078125 +720,0.00078125 +721,0.00078125 +722,0.00078125 +723,0.00078125 +724,0.00078125 +725,0.00078125 +726,0.00078125 +727,0.00078125 +728,0.00078125 +729,0.00078125 +730,0.00078125 +731,0.00078125 +732,0.00078125 +733,0.00078125 +734,0.00078125 +735,0.00078125 +736,0.00078125 +737,0.00078125 +738,0.00078125 +739,0.00078125 +740,0.00078125 +741,0.00078125 +742,0.00078125 +743,0.00078125 +744,0.00078125 +745,0.00078125 +746,0.00078125 +747,0.00078125 +748,0.00078125 +749,0.00078125 +750,0.00078125 +751,0.00078125 +752,0.00078125 +753,0.00078125 +754,0.00078125 +755,0.00078125 +756,0.00078125 +757,0.00078125 +758,0.00078125 +759,0.00078125 +760,0.00078125 +761,0.00078125 +762,0.00078125 +763,0.00078125 +764,0.00078125 +765,0.00078125 +766,0.00078125 +767,0.00078125 +768,0.00078125 +769,0.00078125 +770,0.00078125 +771,0.00078125 +772,0.00078125 +773,0.00078125 +774,0.00078125 +775,0.00078125 +776,0.00078125 +777,0.00078125 +778,0.00078125 +779,0.00078125 +780,0.00078125 +781,0.00078125 +782,0.00078125 +783,0.00078125 +1678,1.0000000000 +1679,1.0000000000 +1680,1.0000000000 +1681,1.0000000000 +1682,1.0000000000 +1683,1.0000000000 +1684,1.0000000000 +1685,1.0000000000 +1686,1.0000000000 +1687,1.0000000000 +1688,1.0000000000 +1689,1.0000000000 +1690,1.0000000000 +1691,1.0000000000 +1692,1.0000000000 +1693,1.0000000000 +1694,1.0000000000 +1695,1.0000000000 +1696,1.0000000000 +1697,1.0000000000 +1698,1.0000000000 +1699,1.0000000000 +1700,1.0000000000 +1701,1.0000000000 +1702,1.0000000000 +1703,1.0000000000 +1704,1.0000000000 +1705,1.0000000000 +1706,1.0000000000 +1707,1.0000000000 +1708,1.0000000000 +1709,1.0000000000 +1710,1.0000000000 +1711,1.0000000000 +1712,1.0000000000 +1713,1.0000000000 +1714,1.0000000000 +1715,1.0000000000 +1716,1.0000000000 +1717,1.0000000000 +1718,1.0000000000 +1719,1.0000000000 +1720,1.0000000000 +1721,1.0000000000 +1722,1.0000000000 +1723,1.0000000000 +1724,1.0000000000 +1725,1.0000000000 +1726,1.0000000000 +1727,1.0000000000 +1928,1.0000000000 +1929,1.0000000000 +1930,1.0000000000 +1931,1.0000000000 +1932,1.0000000000 +1933,1.0000000000 +1934,1.0000000000 +1935,1.0000000000 +1936,1.0000000000 +1937,1.0000000000 +1938,1.0000000000 +1939,1.0000000000 +1940,1.0000000000 +1941,1.0000000000 +1942,1.0000000000 +1943,1.0000000000 +1944,1.0000000000 +1945,1.0000000000 +1946,1.0000000000 +1947,1.0000000000 +1948,1.0000000000 +1949,1.0000000000 +1950,1.0000000000 +1951,1.0000000000 +1952,1.0000000000 +1953,1.0000000000 +1954,1.0000000000 +1955,1.0000000000 +1956,1.0000000000 +1957,1.0000000000 +1958,1.0000000000 +1959,1.0000000000 +1960,1.0000000000 +1961,1.0000000000 +1962,1.0000000000 +1963,1.0000000000 +1964,1.0000000000 +1965,1.0000000000 +1966,1.0000000000 +1967,1.0000000000 +1968,1.0000000000 +1969,1.0000000000 +1970,1.0000000000 +1971,1.0000000000 +1972,1.0000000000 +1973,1.0000000000 +1974,1.0000000000 +1975,1.0000000000 +1976,1.0000000000 +1977,1.0000000000 +2178,1.0000000000 +2179,1.0000000000 +2180,1.0000000000 +2181,1.0000000000 +2182,1.0000000000 +2183,1.0000000000 +2184,1.0000000000 +2185,1.0000000000 +2186,1.0000000000 +2187,1.0000000000 +2188,1.0000000000 +2189,1.0000000000 +2190,1.0000000000 +2191,1.0000000000 +2192,1.0000000000 +2193,1.0000000000 +2194,1.0000000000 +2195,1.0000000000 +2196,1.0000000000 +2197,1.0000000000 +2198,1.0000000000 +2199,1.0000000000 +2200,1.0000000000 +2201,1.0000000000 +2202,1.0000000000 +2203,1.0000000000 +2204,1.0000000000 +2205,1.0000000000 +2206,1.0000000000 +2207,1.0000000000 +2208,1.0000000000 +2209,1.0000000000 +2210,1.0000000000 +2211,1.0000000000 +2212,1.0000000000 +2213,1.0000000000 +2214,1.0000000000 +2215,1.0000000000 +2216,1.0000000000 +2217,1.0000000000 +2218,1.0000000000 +2219,1.0000000000 +2220,1.0000000000 +2221,1.0000000000 +2222,1.0000000000 +2223,1.0000000000 +2224,1.0000000000 +2225,1.0000000000 +2226,1.0000000000 +2227,1.0000000000 +2428,1.0000000000 +2429,1.0000000000 +2430,1.0000000000 +2431,1.0000000000 +2432,1.0000000000 +2433,1.0000000000 +2434,1.0000000000 +2435,1.0000000000 +2436,1.0000000000 +2437,1.0000000000 +2438,1.0000000000 +2439,1.0000000000 +2440,1.0000000000 +2441,1.0000000000 +2442,1.0000000000 +2443,1.0000000000 +2444,1.0000000000 +2445,1.0000000000 +2446,1.0000000000 +2447,1.0000000000 +2448,1.0000000000 +2449,1.0000000000 +2450,1.0000000000 +2451,1.0000000000 +2452,1.0000000000 +2453,1.0000000000 +2454,1.0000000000 +2455,1.0000000000 +2456,1.0000000000 +2457,1.0000000000 +2458,1.0000000000 +2459,1.0000000000 +2460,1.0000000000 +2461,1.0000000000 +2462,1.0000000000 +2463,1.0000000000 +2464,1.0000000000 +2465,1.0000000000 +2466,1.0000000000 +2467,1.0000000000 +2468,1.0000000000 +2469,1.0000000000 +2470,1.0000000000 +2471,1.0000000000 +2472,1.0000000000 +2473,1.0000000000 +2474,1.0000000000 +2475,1.0000000000 +2476,1.0000000000 +2477,1.0000000000 +2598,1.0000000000 +2599,1.0000000000 +2600,1.0000000000 +2601,1.0000000000 +2602,1.0000000000 +2603,1.0000000000 +2604,1.0000000000 +2605,1.0000000000 +2606,1.0000000000 +2607,1.0000000000 +2648,1.0000000000 +2649,1.0000000000 +2650,1.0000000000 +2651,1.0000000000 +2652,1.0000000000 +2653,1.0000000000 +2654,1.0000000000 +2655,1.0000000000 +2656,1.0000000000 +2657,1.0000000000 +0,0,0.0002079358,0,31.6227760315,794,-1.0000000000 +1,0,-0.0002583992,1,31.6227760315,795,-1.0000000000 +2,0,-0.0003494073,2,31.6227760315,796,-1.0000000000 +3,0,0.0003390284,3,31.6227760315,797,-1.0000000000 +4,0,-0.0003349786,4,31.6227760315,798,-1.0000000000 +5,0,0.0001279500,5,31.6227760315,799,-1.0000000000 +6,0,0.0001763496,6,31.6227760315,800,-1.0000000000 +7,0,-0.0001354526,7,31.6227760315,801,-1.0000000000 +8,0,0.0003771311,8,31.6227760315,802,-1.0000000000 +9,0,0.0003647278,9,31.6227760315,803,-1.0000000000 +10,0,-0.0002333800,10,31.6227760315,804,-1.0000000000 +11,0,-0.0000413705,11,31.6227760315,805,-1.0000000000 +12,0,0.0000488727,12,31.6227760315,806,-1.0000000000 +13,0,-0.0002826663,13,31.6227760315,807,-1.0000000000 +14,0,0.0006292058,14,31.6227760315,808,-1.0000000000 +15,0,-0.0001313380,15,31.6227760315,809,-1.0000000000 +16,0,0.0000416177,16,31.6227760315,810,-1.0000000000 +17,0,0.0003893470,17,31.6227760315,811,-1.0000000000 +18,0,-0.0002245790,18,31.6227760315,812,-1.0000000000 +19,0,0.0003470236,19,31.6227760315,813,-1.0000000000 +20,0,0.0003778675,20,31.6227760315,814,-1.0000000000 +21,0,0.0003159090,21,31.6227760315,815,-1.0000000000 +22,0,-0.0004873525,22,31.6227760315,816,-1.0000000000 +23,0,0.0005008946,23,31.6227760315,817,-1.0000000000 +24,0,0.0000937252,24,31.6227760315,818,-1.0000000000 +25,0,0.0003262460,25,31.6227760315,819,-1.0000000000 +26,0,0.0002706744,26,31.6227760315,820,-1.0000000000 +27,0,0.0000455972,27,31.6227760315,821,-1.0000000000 +28,0,0.0002516698,28,31.6227760315,822,-1.0000000000 +29,0,-0.0003327862,29,31.6227760315,823,-1.0000000000 +30,0,-0.0002052352,30,31.6227760315,824,-1.0000000000 +31,0,-0.0001236253,31,31.6227760315,825,-1.0000000000 +32,0,0.0000176382,32,31.6227760315,826,-1.0000000000 +33,0,0.0003008715,33,31.6227760315,827,-1.0000000000 +34,0,0.0006836313,34,31.6220626831,828,-1.0000000000 +35,0,-0.0001673320,35,31.6206951141,829,-1.0000000000 +36,0,0.0000483380,36,31.6100864410,830,-1.0000000000 +37,0,0.0004174529,37,31.5675048828,831,-1.0000000000 +38,0,0.0002150589,38,31.6203975677,832,-1.0000000000 +39,0,0.0002132856,39,31.6220436096,833,-1.0000000000 +40,0,-0.0000718096,40,31.6225090027,834,-1.0000000000 +41,0,0.0172859076,41,28.4602222443,835,-1.0000000000 +42,0,0.0323503427,42,19.9615135193,836,-1.0000000000 +43,0,0.0184166469,43,28.4836978912,837,-1.0000000000 +44,0,0.0017066360,44,30.7574901581,838,-1.0000000000 +45,0,0.0020751858,45,31.0119667053,839,-1.0000000000 +46,0,0.0014388275,46,31.2325229645,840,-1.0000000000 +47,0,0.0054573664,47,29.7056388855,841,-1.0000000000 +48,0,0.0080556581,48,28.2757072449,842,-1.0000000000 +49,0,0.0014539692,49,31.2102050781,843,-1.0000000000 +50,0,0.0007705564,50,31.6227760315,844,-1.0000000000 +51,0,0.0005107099,51,31.6227760315,845,-1.0000000000 +52,0,0.0002250048,52,31.6227760315,846,-1.0000000000 +53,0,-0.0005018546,53,31.6227760315,847,-1.0000000000 +54,0,0.0004192109,54,31.6227760315,848,-1.0000000000 +55,0,0.0000303526,55,31.6227760315,849,-1.0000000000 +56,0,0.0002229478,56,31.6227760315,850,-1.0000000000 +57,0,0.0004961172,57,31.6227760315,851,-1.0000000000 +58,0,0.0006572621,58,31.6227760315,852,-1.0000000000 +59,0,-0.0001420256,59,31.6227760315,853,-1.0000000000 +60,0,0.0006846254,60,31.6227760315,854,-1.0000000000 +61,0,-0.0001651450,61,31.6227741241,855,-1.0000000000 +62,0,0.0004542769,62,31.5634021759,856,-1.0000000000 +63,0,0.0031030406,63,31.1031246185,857,-1.0000000000 +64,0,0.0280330572,64,25.3654117584,858,-1.0000000000 +65,0,0.0385130979,65,19.3904418945,859,-1.0000000000 +66,0,0.0384126604,66,21.4482326508,860,-1.0000000000 +67,0,0.0882032439,67,15.1026964188,861,-1.0000000000 +68,0,0.1183664203,68,9.6312952042,862,-1.0000000000 +69,0,0.1238476709,69,8.9555406570,863,-1.0000000000 +70,0,0.1293599755,70,8.7221813202,864,-1.0000000000 +71,0,0.1229867041,71,10.2591333389,865,-1.0000000000 +72,0,0.1245075017,72,9.6111621857,866,-1.0000000000 +73,0,0.1211254299,73,9.3289775848,867,-1.0000000000 +74,0,0.1249790415,74,11.7950582504,868,-1.0000000000 +75,0,0.1247130036,75,9.8608808517,869,-1.0000000000 +76,0,0.1161369383,76,9.3387050629,870,-1.0000000000 +77,0,0.0982553512,77,11.3408269882,871,-1.0000000000 +78,0,0.0534446128,78,22.4022750854,872,-1.0000000000 +79,0,0.0021463588,79,30.7039184570,873,-1.0000000000 +80,0,0.0000134101,80,31.5947437286,874,-1.0000000000 +81,0,0.0001864402,81,31.6227760315,875,-1.0000000000 +82,0,-0.0004649443,82,31.6227760315,876,-1.0000000000 +83,0,-0.0001222452,83,31.6227760315,877,-1.0000000000 +84,0,-0.0001723979,84,31.6227760315,878,-1.0000000000 +85,0,0.0000698144,85,31.6227760315,879,-1.0000000000 +86,0,-0.0002891293,86,31.6227760315,880,-1.0000000000 +87,0,-0.0000747551,87,31.6227760315,881,-1.0000000000 +88,0,-0.0003064532,88,31.6227760315,882,-1.0000000000 +89,0,-0.0003921269,89,31.6218929291,883,-1.0000000000 +90,0,0.0089464234,90,30.5839347839,884,-1.0000000000 +91,0,0.0684941635,91,15.9870204926,885,-1.0000000000 +92,0,0.0888411775,92,12.1635036469,886,-1.0000000000 +93,0,0.0983949155,93,10.6395206451,887,-1.0000000000 +94,0,0.1431194246,94,8.6441278458,888,-1.0000000000 +95,0,0.1838538200,95,7.2239866257,889,-1.0000000000 +96,0,0.2103057802,96,6.1776309013,890,-1.0000000000 +97,0,0.2509822547,97,5.7684159279,891,-1.0000000000 +98,0,0.2644919157,98,5.0066733360,892,-1.0000000000 +99,0,0.2750744522,99,4.9207816124,893,-1.0000000000 +100,0,0.2888795733,100,4.8772101402,894,-1.0000000000 +101,0,0.2598167956,101,5.0838270187,895,-1.0000000000 +102,0,0.2218356729,102,6.0849299431,896,-1.0000000000 +103,0,0.1860902607,103,6.2116336823,897,-1.0000000000 +104,0,0.1604204327,104,7.4374589920,898,-1.0000000000 +105,0,0.1235561371,105,8.7856378555,899,-1.0000000000 +106,0,0.0918275937,106,17.3154182434,900,-1.0000000000 +107,0,0.0287123173,107,21.9835720062,901,-1.0000000000 +108,0,0.0145352446,108,27.4179573059,902,-1.0000000000 +109,0,0.0012948827,109,31.5514335632,903,-1.0000000000 +110,0,0.0000999159,110,31.6227760315,904,-1.0000000000 +111,0,0.0002175442,111,31.6227760315,905,-1.0000000000 +112,0,0.0002331373,112,31.6227760315,906,-1.0000000000 +113,0,0.0001173035,113,31.6223812103,907,-1.0000000000 +114,0,-0.0003774550,114,31.6227760315,908,-1.0000000000 +115,0,0.0000420564,115,31.6210212708,909,-1.0000000000 +116,0,-0.0008032957,116,31.6226425171,910,-1.0000000000 +117,0,0.0138732493,117,29.9801807404,911,-1.0000000000 +118,0,0.0654990301,118,16.7729282379,912,-1.0000000000 +119,0,0.1190289780,119,9.7614259720,913,-1.0000000000 +120,0,0.1674656868,120,8.2633466721,914,-1.0000000000 +121,0,0.2256945670,121,6.8788871765,915,-1.0000000000 +122,0,0.3065535724,122,4.5844759941,916,-1.0000000000 +123,0,0.3674325645,123,3.8042459488,917,-1.0000000000 +124,0,0.4210087359,124,3.4374401569,918,-1.0000000000 +125,0,0.4700816572,125,3.2917919159,919,-1.0000000000 +126,0,0.5004815459,126,3.0672521591,920,-1.0000000000 +127,0,0.5274384022,127,2.9202229977,921,-1.0000000000 +128,0,0.5072142482,128,2.9477114677,922,-1.0000000000 +129,0,0.4729066789,129,3.1703896523,923,-1.0000000000 +130,0,0.4116190672,130,3.6987824440,924,-1.0000000000 +131,0,0.3370232880,131,4.3520565033,925,-1.0000000000 +132,0,0.2831015885,132,5.0502543449,926,-1.0000000000 +133,0,0.2085866928,133,6.4650530815,927,-1.0000000000 +134,0,0.1565031260,134,8.8168840408,928,-1.0000000000 +135,0,0.1231054738,135,11.4613828659,929,-1.0000000000 +136,0,0.0485384166,136,19.9370212555,930,-1.0000000000 +137,0,0.0126857972,137,29.6892795563,931,-1.0000000000 +138,0,0.0004422957,138,31.6210861206,932,-1.0000000000 +139,0,0.0000184700,139,31.6227760315,933,-1.0000000000 +140,0,0.0001403502,140,31.6227760315,934,-1.0000000000 +141,0,0.0000654595,141,31.6227760315,935,-1.0000000000 +142,0,0.0000607840,142,31.6227760315,936,-1.0000000000 +143,0,-0.0005186090,143,31.6206760406,937,-1.0000000000 +144,0,0.0214564912,144,26.3024940491,938,-1.0000000000 +145,0,0.0900339484,145,14.6895189285,939,-1.0000000000 +146,0,0.1642016321,146,9.0687723160,940,-1.0000000000 +147,0,0.2214516252,147,6.4044857025,941,-1.0000000000 +148,0,0.2872681916,148,4.8680295944,942,-1.0000000000 +149,0,0.3685337305,149,3.8092288971,943,-1.0000000000 +150,0,0.4711169004,150,3.1616506577,944,-1.0000000000 +151,0,0.5671803355,151,2.7714066505,945,-1.0000000000 +152,0,0.6571742296,152,2.5546631813,946,-1.0000000000 +153,0,0.7373042703,153,2.4611840248,947,-1.0000000000 +154,0,0.8158724904,154,2.4277541637,948,-1.0000000000 +155,0,0.8480603099,155,2.3826928139,949,-1.0000000000 +156,0,0.8326759934,156,2.4234437943,950,-1.0000000000 +157,0,0.7751068473,157,2.4501872063,951,-1.0000000000 +158,0,0.6702090502,158,2.6260018349,952,-1.0000000000 +159,0,0.5534479022,159,2.8712155819,953,-1.0000000000 +160,0,0.4441415370,160,3.4023094177,954,-1.0000000000 +161,0,0.3377563059,161,4.1463561058,955,-1.0000000000 +162,0,0.2536413372,162,5.1094250679,956,-1.0000000000 +163,0,0.2015810758,163,6.4431381226,957,-1.0000000000 +164,0,0.1061781123,164,11.9039440155,958,-1.0000000000 +165,0,0.0474606641,165,19.9438781738,959,-1.0000000000 +166,0,0.0081077237,166,30.3990650177,960,-1.0000000000 +167,0,-0.0000006077,167,31.6227760315,961,-1.0000000000 +168,0,0.0000963342,168,31.6227760315,962,-1.0000000000 +169,0,0.0002636870,169,31.6205902100,963,-1.0000000000 +170,0,-0.0003005093,170,31.6178646088,964,-1.0000000000 +171,0,0.0115523944,171,29.6655826569,965,-1.0000000000 +172,0,0.0760080963,172,16.1452503204,966,-1.0000000000 +173,0,0.1558186561,173,8.4764928818,967,-1.0000000000 +174,0,0.2341038138,174,5.7819528580,968,-1.0000000000 +175,0,0.3126183152,175,4.5563411713,969,-1.0000000000 +176,0,0.4008408189,176,3.6441061497,970,-1.0000000000 +177,0,0.5085703731,177,3.0180699825,971,-1.0000000000 +178,0,0.6294556856,178,2.6308863163,972,-1.0000000000 +179,0,0.7481387258,179,2.4874277115,973,-1.0000000000 +180,0,0.8824155331,180,2.3697898388,974,-1.0000000000 +181,0,0.9917500019,181,2.3214147091,975,-1.0000000000 +182,0,1.0729775429,182,2.3268144131,976,-1.0000000000 +183,0,1.1049280167,183,2.3041279316,977,-1.0000000000 +184,0,1.0722656250,184,2.2890098095,978,-1.0000000000 +185,0,0.9774256349,185,2.2437229156,979,-1.0000000000 +186,0,0.8916051388,186,2.3827562332,980,-1.0000000000 +187,0,0.7057592273,187,2.4946858883,981,-1.0000000000 +188,0,0.5681874156,188,2.8479213715,982,-1.0000000000 +189,0,0.4187501967,189,3.4652247429,983,-1.0000000000 +190,0,0.3286397457,190,4.2516651154,984,-1.0000000000 +191,0,0.2453264892,191,5.6235122681,985,-1.0000000000 +192,0,0.1493728757,192,9.1089239120,986,-1.0000000000 +193,0,0.1055997238,193,12.5630216599,987,-1.0000000000 +194,0,0.0577709414,194,17.1816596985,988,-1.0000000000 +195,0,0.0001650765,195,31.6227550507,989,-1.0000000000 +196,0,0.0001360730,196,31.6227760315,990,-1.0000000000 +197,0,0.0286665205,197,25.7242279053,991,-1.0000000000 +198,0,0.0185648240,198,29.1938343048,992,-1.0000000000 +199,0,0.0463312007,199,17.7456054688,993,-1.0000000000 +200,0,0.1100403145,200,11.7338247299,994,-1.0000000000 +201,0,0.1908266991,201,6.9581613541,995,-1.0000000000 +202,0,0.3026175797,202,4.6381225586,996,-1.0000000000 +203,0,0.3958640099,203,3.6027181149,997,-1.0000000000 +204,0,0.4933891296,204,3.0626730919,998,-1.0000000000 +205,0,0.6277903318,205,2.6963646412,999,-1.0000000000 +206,0,0.7647606730,206,2.4716770649,1000,-1.0000000000 +207,0,0.8989660740,207,2.4109206200,1001,-1.0000000000 +208,0,1.0284951925,208,2.3586513996,1002,-1.0000000000 +209,0,1.0996196270,209,2.3010489941,1003,-1.0000000000 +210,0,1.1790245771,210,2.3166940212,1004,-1.0000000000 +211,0,1.2310339212,211,2.3528943062,1005,-1.0000000000 +212,0,1.2175028324,212,2.3542003632,1006,-1.0000000000 +213,0,1.1302845478,213,2.3178131580,1007,-1.0000000000 +214,0,1.0352075100,214,2.3592703342,1008,-1.0000000000 +215,0,0.8394643068,215,2.3962028027,1009,-1.0000000000 +216,0,0.6509366035,216,2.7720828056,1010,-1.0000000000 +217,0,0.4646136165,217,3.1780204773,1011,-1.0000000000 +218,0,0.3690448403,218,3.7357251644,1012,-1.0000000000 +219,0,0.2772509754,219,4.9801034927,1013,-1.0000000000 +220,0,0.1976015866,220,6.7223825455,1014,-1.0000000000 +221,0,0.1370779425,221,9.2390718460,1015,-1.0000000000 +222,0,0.0497566685,222,18.3531360626,1016,-1.0000000000 +223,0,-0.0003765492,223,31.6227493286,1017,-1.0000000000 +224,0,-0.0000978563,224,31.6227760315,1018,-1.0000000000 +225,0,0.0055302819,225,29.4070453644,1019,-1.0000000000 +226,0,0.0239453297,226,26.8379230499,1020,-1.0000000000 +227,0,0.0624308847,227,17.4192199707,1021,-1.0000000000 +228,0,0.1402922124,228,9.4714317322,1022,-1.0000000000 +229,0,0.2283508927,229,6.0654091835,1023,-1.0000000000 +230,0,0.3311395645,230,4.1958436966,1024,-1.0000000000 +231,0,0.4342799783,231,3.2883524895,1025,-1.0000000000 +232,0,0.5590006709,232,2.8224635124,1026,-1.0000000000 +233,0,0.7316516638,233,2.5400061607,1027,-1.0000000000 +234,0,0.8548274636,234,2.4144558907,1028,-1.0000000000 +235,0,0.9891402721,235,2.3530962467,1029,-1.0000000000 +236,0,1.0502716303,236,2.3016290665,1030,-1.0000000000 +237,0,1.0607392788,237,2.2903811932,1031,-1.0000000000 +238,0,1.1183186769,238,2.3235101700,1032,-1.0000000000 +239,0,1.1194092035,239,2.3126912117,1033,-1.0000000000 +240,0,1.1294481754,240,2.3333547115,1034,-1.0000000000 +241,0,1.1141145229,241,2.3193163872,1035,-1.0000000000 +242,0,1.0437884331,242,2.2823159695,1036,-1.0000000000 +243,0,0.8947256804,243,2.3181655407,1037,-1.0000000000 +244,0,0.7067958117,244,2.5579893589,1038,-1.0000000000 +245,0,0.5081296563,245,3.0765430927,1039,-1.0000000000 +246,0,0.3798761666,246,3.6714072227,1040,-1.0000000000 +247,0,0.2857289016,247,4.7601342201,1041,-1.0000000000 +248,0,0.2004447579,248,6.0894117355,1042,-1.0000000000 +249,0,0.1385634840,249,9.3406229019,1043,-1.0000000000 +250,0,0.0403848663,250,19.1417312622,1044,-1.0000000000 +251,0,0.0001982165,251,31.6227760315,1045,-1.0000000000 +252,0,0.0001750147,252,31.6227760315,1046,-1.0000000000 +253,0,0.0042383769,253,30.0029430389,1047,-1.0000000000 +254,0,0.0337815769,254,21.3715801239,1048,-1.0000000000 +255,0,0.0844024718,255,14.8542079926,1049,-1.0000000000 +256,0,0.1610622257,256,7.5341968536,1050,-1.0000000000 +257,0,0.2227348387,257,5.6300301552,1051,-1.0000000000 +258,0,0.3526701033,258,3.9894003868,1052,-1.0000000000 +259,0,0.4723548591,259,3.1466460228,1053,-1.0000000000 +260,0,0.6160907149,260,2.7099738121,1054,-1.0000000000 +261,0,0.7912367582,261,2.4634957314,1055,-1.0000000000 +262,0,0.9398992062,262,2.3564286232,1056,-1.0000000000 +263,0,1.0118169785,263,2.2864329815,1057,-1.0000000000 +264,0,0.9678423405,264,2.3070170879,1058,-1.0000000000 +265,0,0.9376413226,265,2.3450162411,1059,-1.0000000000 +266,0,0.9355269670,266,2.3803303242,1060,-1.0000000000 +267,0,0.9543191195,267,2.3556554317,1061,-1.0000000000 +268,0,1.0108853579,268,2.3408815861,1062,-1.0000000000 +269,0,1.0471606255,269,2.3146529198,1063,-1.0000000000 +270,0,0.9970059395,270,2.2666883469,1064,-1.0000000000 +271,0,0.8818715811,271,2.3353953362,1065,-1.0000000000 +272,0,0.6957759261,272,2.5611574650,1066,-1.0000000000 +273,0,0.5319196582,273,3.0077891350,1067,-1.0000000000 +274,0,0.3815186620,274,3.6669015884,1068,-1.0000000000 +275,0,0.2636581063,275,5.1261324883,1069,-1.0000000000 +276,0,0.1597977132,276,8.1884031296,1070,-1.0000000000 +277,0,0.0801797807,277,14.1901311874,1071,-1.0000000000 +278,0,0.0370516144,278,20.5537090302,1072,-1.0000000000 +279,0,-0.0004002613,279,31.6050453186,1073,-1.0000000000 +280,0,-0.0003776760,280,31.6227111816,1074,-1.0000000000 +281,0,0.0021100610,281,31.5973281860,1075,-1.0000000000 +282,0,0.0257851910,282,26.2151908875,1076,-1.0000000000 +283,0,0.0611026809,283,17.1719360352,1077,-1.0000000000 +284,0,0.1393538266,284,8.7866668701,1078,-1.0000000000 +285,0,0.2184684724,285,6.0777459145,1079,-1.0000000000 +286,0,0.3355731368,286,4.2265377045,1080,-1.0000000000 +287,0,0.4826321006,287,3.1534481049,1081,-1.0000000000 +288,0,0.6489428878,288,2.6726737022,1082,-1.0000000000 +289,0,0.8263921738,289,2.3904621601,1083,-1.0000000000 +290,0,0.9376775622,290,2.3048274517,1084,-1.0000000000 +291,0,0.9587321281,291,2.3109583855,1085,-1.0000000000 +292,0,0.8675266504,292,2.3774199486,1086,-1.0000000000 +293,0,0.8094529510,293,2.5560112000,1087,-1.0000000000 +294,0,0.7863086462,294,2.5117721558,1088,-1.0000000000 +295,0,0.8640347719,295,2.3969352245,1089,-1.0000000000 +296,0,0.9173959494,296,2.3281571865,1090,-1.0000000000 +297,0,0.9688491821,297,2.3375737667,1091,-1.0000000000 +298,0,0.9456661344,298,2.3412094116,1092,-1.0000000000 +299,0,0.8205282092,299,2.3724005222,1093,-1.0000000000 +300,0,0.6771087646,300,2.5506916046,1094,-1.0000000000 +301,0,0.5108327866,301,2.9238371849,1095,-1.0000000000 +302,0,0.3787623048,302,3.7161893845,1096,-1.0000000000 +303,0,0.2699432671,303,5.4588193893,1097,-1.0000000000 +304,0,0.1464111656,304,10.0295314789,1098,-1.0000000000 +305,0,0.0792720169,305,16.0952014923,1099,-1.0000000000 +306,0,0.0059705833,306,31.2058010101,1100,-1.0000000000 +307,0,0.0004632693,307,31.5308609009,1101,-1.0000000000 +308,0,0.0043669338,308,30.6051616669,1102,-1.0000000000 +309,0,0.0063748998,309,29.8326950073,1103,-1.0000000000 +310,0,0.0159165747,310,28.5636730194,1104,-1.0000000000 +311,0,0.0448154770,311,20.4961643219,1105,-1.0000000000 +312,0,0.1235546991,312,10.9966354370,1106,-1.0000000000 +313,0,0.2231135815,313,6.1386961937,1107,-1.0000000000 +314,0,0.3377698064,314,4.2937984467,1108,-1.0000000000 +315,0,0.4951098561,315,3.1601424217,1109,-1.0000000000 +316,0,0.6553843021,316,2.6288735867,1110,-1.0000000000 +317,0,0.8079286218,317,2.3804090023,1111,-1.0000000000 +318,0,0.9239451885,318,2.3580360413,1112,-1.0000000000 +319,0,0.8803372979,319,2.3451416492,1113,-1.0000000000 +320,0,0.7921043038,320,2.4804413319,1114,-1.0000000000 +321,0,0.7499290109,321,2.5833342075,1115,-1.0000000000 +322,0,0.7702397704,322,2.4749538898,1116,-1.0000000000 +323,0,0.8655048609,323,2.3455898762,1117,-1.0000000000 +324,0,0.9550458789,324,2.3513987064,1118,-1.0000000000 +325,0,0.9986506104,325,2.3708248138,1119,-1.0000000000 +326,0,0.9347382188,326,2.3565754890,1120,-1.0000000000 +327,0,0.8275583982,327,2.4049818516,1121,-1.0000000000 +328,0,0.6480501294,328,2.6506526470,1122,-1.0000000000 +329,0,0.4856687486,329,3.0139541626,1123,-1.0000000000 +330,0,0.3583132625,330,3.9707667828,1124,-1.0000000000 +331,0,0.2453819662,331,5.6648898125,1125,-1.0000000000 +332,0,0.1315680295,332,9.5050153732,1126,-1.0000000000 +333,0,0.0543179512,333,19.6717777252,1127,-1.0000000000 +334,0,0.0002487019,334,31.5746517181,1128,-1.0000000000 +335,0,-0.0004916147,335,31.6226940155,1129,-1.0000000000 +336,0,0.0001359140,336,31.6227760315,1130,-1.0000000000 +337,0,0.0007245721,337,31.6227684021,1131,-1.0000000000 +338,0,-0.0002426033,338,31.5914230347,1132,-1.0000000000 +339,0,0.0228728075,339,26.4781723022,1133,-1.0000000000 +340,0,0.1194402054,340,12.1590147018,1134,-1.0000000000 +341,0,0.2250171900,341,6.1180801392,1135,-1.0000000000 +342,0,0.3482197821,342,4.1998472214,1136,-1.0000000000 +343,0,0.5096925497,343,3.1183922291,1137,-1.0000000000 +344,0,0.6711575985,344,2.5549144745,1138,-1.0000000000 +345,0,0.8273203373,345,2.3965148926,1139,-1.0000000000 +346,0,0.8989909887,346,2.3424625397,1140,-1.0000000000 +347,0,0.8338220119,347,2.3802590370,1141,-1.0000000000 +348,0,0.7712999582,348,2.4435381889,1142,-1.0000000000 +349,0,0.7810522914,349,2.4618661404,1143,-1.0000000000 +350,0,0.8488454223,350,2.3637220860,1144,-1.0000000000 +351,0,0.9808951616,351,2.2952208519,1145,-1.0000000000 +352,0,1.0584679842,352,2.3287153244,1146,-1.0000000000 +353,0,1.0484929085,353,2.3668515682,1147,-1.0000000000 +354,0,0.9439478517,354,2.3677756786,1148,-1.0000000000 +355,0,0.8024018407,355,2.4240152836,1149,-1.0000000000 +356,0,0.6145404577,356,2.7419781685,1150,-1.0000000000 +357,0,0.4524665475,357,3.2188079357,1151,-1.0000000000 +358,0,0.3541513085,358,4.3514347076,1152,-1.0000000000 +359,0,0.2111083865,359,6.3587808609,1153,-1.0000000000 +360,0,0.1307028979,360,10.0998725891,1154,-1.0000000000 +361,0,0.0321570523,361,21.4319057465,1155,-1.0000000000 +362,0,0.0006438673,362,31.6147212982,1156,-1.0000000000 +363,0,0.0009358423,363,31.6227760315,1157,-1.0000000000 +364,0,0.0002634405,364,31.6227760315,1158,-1.0000000000 +365,0,0.0010150694,365,31.6227722168,1159,-1.0000000000 +366,0,0.0004529505,366,31.6223411560,1160,-1.0000000000 +367,0,0.0137116825,367,27.4318256378,1161,-1.0000000000 +368,0,0.1160466224,368,10.0018968582,1162,-1.0000000000 +369,0,0.2345420271,369,5.8403391838,1163,-1.0000000000 +370,0,0.3708416522,370,3.8688480854,1164,-1.0000000000 +371,0,0.5300990939,371,2.9528651237,1165,-1.0000000000 +372,0,0.6892153025,372,2.5064487457,1166,-1.0000000000 +373,0,0.8098425865,373,2.3663296700,1167,-1.0000000000 +374,0,0.8341104388,374,2.3519144058,1168,-1.0000000000 +375,0,0.8101239204,375,2.4575023651,1169,-1.0000000000 +376,0,0.7889069915,376,2.4505796432,1170,-1.0000000000 +377,0,0.8793845773,377,2.4021737576,1171,-1.0000000000 +378,0,1.0059598684,378,2.3136579990,1172,-1.0000000000 +379,0,1.1230267286,379,2.2888503075,1173,-1.0000000000 +380,0,1.1797831059,380,2.3769843578,1174,-1.0000000000 +381,0,1.1613332033,381,2.4126398563,1175,-1.0000000000 +382,0,0.9623417258,382,2.2927162647,1176,-1.0000000000 +383,0,0.7934286594,383,2.4647991657,1177,-1.0000000000 +384,0,0.5926273465,384,2.7928922176,1178,-1.0000000000 +385,0,0.4492661655,385,3.2474975586,1179,-1.0000000000 +386,0,0.3443657458,386,4.2985219955,1180,-1.0000000000 +387,0,0.2314104587,387,5.9285354614,1181,-1.0000000000 +388,0,0.1472378820,388,9.3181419373,1182,-1.0000000000 +389,0,0.0351320319,389,20.6197624207,1183,-1.0000000000 +390,0,0.0014228243,390,31.5211696625,1184,-1.0000000000 +391,0,0.0008443597,391,31.6227760315,1185,-1.0000000000 +392,0,0.0099181151,392,29.6695613861,1186,-1.0000000000 +393,0,0.0006278105,393,31.6227760315,1187,-1.0000000000 +394,0,0.0003538693,394,31.6227512360,1188,-1.0000000000 +395,0,0.0145763783,395,27.5814151764,1189,-1.0000000000 +396,0,0.1199709773,396,10.8346366882,1190,-1.0000000000 +397,0,0.2440324277,397,5.7197704315,1191,-1.0000000000 +398,0,0.3900867701,398,3.5687365532,1192,-1.0000000000 +399,0,0.5461060405,399,2.8410024643,1193,-1.0000000000 +400,0,0.6898619533,400,2.5129566193,1194,-1.0000000000 +401,0,0.7780957818,401,2.4161820412,1195,-1.0000000000 +402,0,0.8212936521,402,2.4362788200,1196,-1.0000000000 +403,0,0.8196046352,403,2.4716432095,1197,-1.0000000000 +404,0,0.8615708947,404,2.4565105438,1198,-1.0000000000 +405,0,1.0007439852,405,2.3347504139,1199,-1.0000000000 +406,0,1.1029356718,406,2.2086555958,1200,-1.0000000000 +407,0,1.2631444931,407,2.3114092350,1201,-1.0000000000 +408,0,1.2674189806,408,2.3837871552,1202,-1.0000000000 +409,0,1.1696907282,409,2.3068034649,1203,-1.0000000000 +410,0,1.0013144016,410,2.2855141163,1204,-1.0000000000 +411,0,0.7892069817,411,2.4214391708,1205,-1.0000000000 +412,0,0.6106898189,412,2.7888779640,1206,-1.0000000000 +413,0,0.4649244547,413,3.2812552452,1207,-1.0000000000 +414,0,0.3470404446,414,4.0626425743,1208,-1.0000000000 +415,0,0.2548494935,415,5.3905172348,1209,-1.0000000000 +416,0,0.1753427535,416,7.4863877296,1210,-1.0000000000 +417,0,0.0696761087,417,15.3962125778,1211,-1.0000000000 +418,0,0.0011654531,418,31.4477596283,1212,-1.0000000000 +419,0,0.0005153015,419,31.6227760315,1213,-1.0000000000 +420,0,0.0022581830,420,31.3947219849,1214,-1.0000000000 +421,0,-0.0005039608,421,31.6227760315,1215,-1.0000000000 +422,0,0.0006990994,422,31.6138477325,1216,-1.0000000000 +423,0,0.0477251969,423,22.0904197693,1217,-1.0000000000 +424,0,0.1369994134,424,9.3862142563,1218,-1.0000000000 +425,0,0.2709477246,425,5.0977196693,1219,-1.0000000000 +426,0,0.4073841870,426,3.4829053879,1220,-1.0000000000 +427,0,0.5448542237,427,2.8721144199,1221,-1.0000000000 +428,0,0.6622777581,428,2.5826773643,1222,-1.0000000000 +429,0,0.7555070519,429,2.4061858654,1223,-1.0000000000 +430,0,0.8002126217,430,2.4329354763,1224,-1.0000000000 +431,0,0.8153559566,431,2.3994085789,1225,-1.0000000000 +432,0,0.8970652223,432,2.3870296478,1226,-1.0000000000 +433,0,1.0205209255,433,2.2956838608,1227,-1.0000000000 +434,0,1.1738963127,434,2.2933826447,1228,-1.0000000000 +435,0,1.2575677633,435,2.3463256359,1229,-1.0000000000 +436,0,1.2230237722,436,2.3524501324,1230,-1.0000000000 +437,0,1.1259639263,437,2.2667458057,1231,-1.0000000000 +438,0,0.9997518659,438,2.2932496071,1232,-1.0000000000 +439,0,0.7922306657,439,2.4435393810,1233,-1.0000000000 +440,0,0.6165519357,440,2.7788236141,1234,-1.0000000000 +441,0,0.4822996259,441,3.1403548717,1235,-1.0000000000 +442,0,0.3766285479,442,3.7291548252,1236,-1.0000000000 +443,0,0.2857866883,443,4.6315340996,1237,-1.0000000000 +444,0,0.1797532737,444,6.7200350761,1238,-1.0000000000 +445,0,0.0752173588,445,14.3447551727,1239,-1.0000000000 +446,0,0.0005639646,446,31.2004222870,1240,-1.0000000000 +447,0,-0.0001979070,447,31.6074485779,1241,-1.0000000000 +448,0,-0.0003395307,448,31.6227760315,1242,-1.0000000000 +449,0,-0.0001639747,449,31.6227760315,1243,-1.0000000000 +450,0,0.0036350526,450,30.9096469879,1244,-1.0000000000 +451,0,0.0473100618,451,20.2599525452,1245,-1.0000000000 +452,0,0.1546910107,452,8.4040956497,1246,-1.0000000000 +453,0,0.2969757318,453,4.8829870224,1247,-1.0000000000 +454,0,0.4089812934,454,3.4783515930,1248,-1.0000000000 +455,0,0.5411127210,455,2.9201178551,1249,-1.0000000000 +456,0,0.6237353086,456,2.6100988388,1250,-1.0000000000 +457,0,0.7418503165,457,2.4577949047,1251,-1.0000000000 +458,0,0.7519995570,458,2.4328489304,1252,-1.0000000000 +459,0,0.8003866076,459,2.4379255772,1253,-1.0000000000 +460,0,0.8349192142,460,2.3691625595,1254,-1.0000000000 +461,0,0.9357497692,461,2.3182308674,1255,-1.0000000000 +462,0,1.0823613405,462,2.3047502041,1256,-1.0000000000 +463,0,1.1418485641,463,2.3236503601,1257,-1.0000000000 +464,0,1.1479303837,464,2.3056936264,1258,-1.0000000000 +465,0,1.0592665672,465,2.3006165028,1259,-1.0000000000 +466,0,0.9168865085,466,2.3271152973,1260,-1.0000000000 +467,0,0.7404270768,467,2.4720604420,1261,-1.0000000000 +468,0,0.6123292446,468,2.7189273834,1262,-1.0000000000 +469,0,0.4894371331,469,3.0747077465,1263,-1.0000000000 +470,0,0.3859493136,470,3.6469478607,1264,-1.0000000000 +471,0,0.2822641730,471,4.7010302544,1265,-1.0000000000 +472,0,0.1787402332,472,7.5456037521,1266,-1.0000000000 +473,0,0.0621588230,473,16.5414638519,1267,-1.0000000000 +474,0,0.0011913897,474,31.1215934753,1268,-1.0000000000 +475,0,-0.0002103663,475,31.4152126312,1269,-1.0000000000 +476,0,0.0003792991,476,31.6227760315,1270,-1.0000000000 +477,0,0.0001732394,477,31.4972496033,1271,-1.0000000000 +478,0,0.0046014036,478,30.8621158600,1272,-1.0000000000 +479,0,0.0576600619,479,19.4848232269,1273,-1.0000000000 +480,0,0.1628940701,480,7.7923212051,1274,-1.0000000000 +481,0,0.2965573668,481,4.9645648003,1275,-1.0000000000 +482,0,0.4250472188,482,3.4230914116,1276,-1.0000000000 +483,0,0.5318685770,483,2.9077155590,1277,-1.0000000000 +484,0,0.6013643146,484,2.6383554935,1278,-1.0000000000 +485,0,0.6761335135,485,2.5247249603,1279,-1.0000000000 +486,0,0.7152107358,486,2.5478014946,1280,-1.0000000000 +487,0,0.7259470820,487,2.4765470028,1281,-1.0000000000 +488,0,0.7759909034,488,2.4189951420,1282,-1.0000000000 +489,0,0.8643364310,489,2.3606874943,1283,-1.0000000000 +490,0,0.9827626348,490,2.2951855659,1284,-1.0000000000 +491,0,1.0664774179,491,2.2927172184,1285,-1.0000000000 +492,0,1.0456911325,492,2.2863845825,1286,-1.0000000000 +493,0,0.9820244312,493,2.3256044388,1287,-1.0000000000 +494,0,0.8542780876,494,2.3467662334,1288,-1.0000000000 +495,0,0.7340826988,495,2.5039217472,1289,-1.0000000000 +496,0,0.5968572497,496,2.7374470234,1290,-1.0000000000 +497,0,0.4873765409,497,3.0340442657,1291,-1.0000000000 +498,0,0.3672321439,498,3.8976264000,1292,-1.0000000000 +499,0,0.2460707277,499,5.2589669228,1293,-1.0000000000 +500,0,0.1587331593,500,8.3845701218,1294,-1.0000000000 +501,0,0.0695172399,501,15.4914751053,1295,-1.0000000000 +502,0,0.0014563977,502,31.0409355164,1296,-1.0000000000 +503,0,-0.0004635351,503,31.6086044312,1297,-1.0000000000 +504,0,0.0006251551,504,31.6227684021,1298,-1.0000000000 +505,0,0.0001793502,505,31.3493156433,1299,-1.0000000000 +506,0,0.0272259805,506,26.2832393646,1300,-1.0000000000 +507,0,0.0631093308,507,16.6588172913,1301,-1.0000000000 +508,0,0.1657525301,508,7.3287153244,1302,-1.0000000000 +509,0,0.2855381370,509,5.0466980934,1303,-1.0000000000 +510,0,0.4234611988,510,3.3581931591,1304,-1.0000000000 +511,0,0.5355196595,511,2.9099872112,1305,-1.0000000000 +512,0,0.5872064233,512,2.7330672741,1306,-1.0000000000 +513,0,0.6371801496,513,2.5911569595,1307,-1.0000000000 +514,0,0.7026461959,514,2.5588054657,1308,-1.0000000000 +515,0,0.7171602249,515,2.4488122463,1309,-1.0000000000 +516,0,0.7390315533,516,2.4854843616,1310,-1.0000000000 +517,0,0.8491621017,517,2.3858935833,1311,-1.0000000000 +518,0,0.9590334296,518,2.3105680943,1312,-1.0000000000 +519,0,1.0337742567,519,2.3163540363,1313,-1.0000000000 +520,0,1.0172015429,520,2.3164091110,1314,-1.0000000000 +521,0,0.9606239796,521,2.3229632378,1315,-1.0000000000 +522,0,0.8654842377,522,2.3833553791,1316,-1.0000000000 +523,0,0.7076365352,523,2.4972376823,1317,-1.0000000000 +524,0,0.5839534402,524,2.7767996788,1318,-1.0000000000 +525,0,0.4629037380,525,3.2973482609,1319,-1.0000000000 +526,0,0.3223178983,526,4.1649656296,1320,-1.0000000000 +527,0,0.2451560944,527,5.5368881226,1321,-1.0000000000 +528,0,0.1502188295,528,8.9174118042,1322,-1.0000000000 +529,0,0.0671202466,529,16.8515014648,1323,-1.0000000000 +530,0,0.0168995671,530,27.8533496857,1324,-1.0000000000 +531,0,0.0027108516,531,30.7577781677,1325,-1.0000000000 +532,0,-0.0004748474,532,31.6227760315,1326,-1.0000000000 +533,0,0.0000889081,533,31.4278774261,1327,-1.0000000000 +534,0,0.0426550955,534,18.8880081177,1328,-1.0000000000 +535,0,0.0897340700,535,14.2352895737,1329,-1.0000000000 +536,0,0.1835324466,536,6.9632315636,1330,-1.0000000000 +537,0,0.2979731560,537,4.7712202072,1331,-1.0000000000 +538,0,0.4157102704,538,3.4161942005,1332,-1.0000000000 +539,0,0.5524196029,539,2.9093339443,1333,-1.0000000000 +540,0,0.6347330213,540,2.6985633373,1334,-1.0000000000 +541,0,0.6873387098,541,2.5735416412,1335,-1.0000000000 +542,0,0.7337716818,542,2.5132219791,1336,-1.0000000000 +543,0,0.7439809442,543,2.4510378838,1337,-1.0000000000 +544,0,0.8024758697,544,2.4043424129,1338,-1.0000000000 +545,0,0.9168453813,545,2.3399312496,1339,-1.0000000000 +546,0,1.0280338526,546,2.3012630939,1340,-1.0000000000 +547,0,1.0949355364,547,2.3466596603,1341,-1.0000000000 +548,0,1.0854176283,548,2.3466114998,1342,-1.0000000000 +549,0,0.9963572621,549,2.3077476025,1343,-1.0000000000 +550,0,0.8625664115,550,2.3717453480,1344,-1.0000000000 +551,0,0.6984025836,551,2.5627849102,1345,-1.0000000000 +552,0,0.5655143857,552,2.8067283630,1346,-1.0000000000 +553,0,0.4338583946,553,3.3975961208,1347,-1.0000000000 +554,0,0.3148156703,554,4.4280271530,1348,-1.0000000000 +555,0,0.2177419066,555,6.1449913979,1349,-1.0000000000 +556,0,0.1394918263,556,9.3737068176,1350,-1.0000000000 +557,0,0.0666871071,557,15.0768060684,1351,-1.0000000000 +558,0,0.0241600294,558,21.9253787994,1352,-1.0000000000 +559,0,0.0023356657,559,31.0733852386,1353,-1.0000000000 +560,0,0.0005278823,560,31.6227760315,1354,-1.0000000000 +561,0,0.0003284318,561,31.6154689789,1355,-1.0000000000 +562,0,0.0723905489,562,16.1907138824,1356,-1.0000000000 +563,0,0.1137683168,563,10.0528793335,1357,-1.0000000000 +564,0,0.1933699250,564,6.3731698990,1358,-1.0000000000 +565,0,0.2978318036,565,4.5994777679,1359,-1.0000000000 +566,0,0.4207669199,566,3.4823834896,1360,-1.0000000000 +567,0,0.5616418719,567,2.8318614960,1361,-1.0000000000 +568,0,0.6912870407,568,2.5435352325,1362,-1.0000000000 +569,0,0.7708287239,569,2.4794592857,1363,-1.0000000000 +570,0,0.8215371370,570,2.4028928280,1364,-1.0000000000 +571,0,0.8826347589,571,2.3621711731,1365,-1.0000000000 +572,0,0.9627836943,572,2.3196456432,1366,-1.0000000000 +573,0,1.1106199026,573,2.3130993843,1367,-1.0000000000 +574,0,1.2246385813,574,2.3607060909,1368,-1.0000000000 +575,0,1.2177535295,575,2.3455936909,1369,-1.0000000000 +576,0,1.1265897751,576,2.3350877762,1370,-1.0000000000 +577,0,1.0035156012,577,2.3239722252,1371,-1.0000000000 +578,0,0.8064009547,578,2.4052209854,1372,-1.0000000000 +579,0,0.6292597055,579,2.6512899399,1373,-1.0000000000 +580,0,0.4997098446,580,3.0128855705,1374,-1.0000000000 +581,0,0.3879833221,581,3.6579921246,1375,-1.0000000000 +582,0,0.2890135050,582,4.8065571785,1376,-1.0000000000 +583,0,0.1925205886,583,7.4596571922,1377,-1.0000000000 +584,0,0.1238536388,584,11.0189476013,1378,-1.0000000000 +585,0,0.0504309833,585,19.6995429993,1379,-1.0000000000 +586,0,0.0241918098,586,29.3324947357,1380,-1.0000000000 +587,0,0.0003931704,587,31.6227760315,1381,-1.0000000000 +588,0,0.0000209329,588,31.6227760315,1382,-1.0000000000 +589,0,-0.0001734847,589,31.6227760315,1383,-1.0000000000 +590,0,0.0607455708,590,14.3712387085,1384,-1.0000000000 +591,0,0.1017537937,591,11.4408884048,1385,-1.0000000000 +592,0,0.1845139414,592,7.3711776733,1386,-1.0000000000 +593,0,0.2864980102,593,4.6154351234,1387,-1.0000000000 +594,0,0.4105657041,594,3.3562819958,1388,-1.0000000000 +595,0,0.5539539456,595,2.8899328709,1389,-1.0000000000 +596,0,0.6790744066,596,2.5217244625,1390,-1.0000000000 +597,0,0.8194868565,597,2.3978948593,1391,-1.0000000000 +598,0,0.9098239541,598,2.3392369747,1392,-1.0000000000 +599,0,1.0223187208,599,2.2961740494,1393,-1.0000000000 +600,0,1.1595125198,600,2.3070757389,1394,-1.0000000000 +601,0,1.3060013056,601,2.3680303097,1395,-1.0000000000 +602,0,1.3420419693,602,2.3928475380,1396,-1.0000000000 +603,0,1.2148033381,603,2.3111648560,1397,-1.0000000000 +604,0,1.0699449778,604,2.3505551815,1398,-1.0000000000 +605,0,0.8734347224,605,2.3596315384,1399,-1.0000000000 +606,0,0.7014126182,606,2.5934374332,1400,-1.0000000000 +607,0,0.5386259556,607,3.0620768070,1401,-1.0000000000 +608,0,0.4120286405,608,3.6871492863,1402,-1.0000000000 +609,0,0.3218664825,609,4.3526191711,1403,-1.0000000000 +610,0,0.2504507601,610,5.4890518188,1404,-1.0000000000 +611,0,0.1661561131,611,7.5762300491,1405,-1.0000000000 +612,0,0.1281819940,612,9.1167297363,1406,-1.0000000000 +613,0,0.0845847353,613,12.5985088348,1407,-1.0000000000 +614,0,0.0390512794,614,22.3714408875,1408,-1.0000000000 +615,0,-0.0009076580,615,31.6227760315,1409,-1.0000000000 +616,0,0.0006949858,616,31.6227760315,1410,-1.0000000000 +617,0,-0.0002807755,617,31.6227760315,1411,-1.0000000000 +618,0,0.0402883030,618,21.7810173035,1412,-1.0000000000 +619,0,0.0869438499,619,13.5456027985,1413,-1.0000000000 +620,0,0.1526628584,620,8.6529712677,1414,-1.0000000000 +621,0,0.2470432669,621,5.2813711166,1415,-1.0000000000 +622,0,0.3586099148,622,3.9963319302,1416,-1.0000000000 +623,0,0.4875319004,623,3.1646375656,1417,-1.0000000000 +624,0,0.6175509095,624,2.6909687519,1418,-1.0000000000 +625,0,0.7506234050,625,2.4454865456,1419,-1.0000000000 +626,0,0.8995615244,626,2.3818230629,1420,-1.0000000000 +627,0,1.0349189043,627,2.3495621681,1421,-1.0000000000 +628,0,1.1513767242,628,2.3277025223,1422,-1.0000000000 +629,0,1.1925117970,629,2.3252859116,1423,-1.0000000000 +630,0,1.1708381176,630,2.3266208172,1424,-1.0000000000 +631,0,1.0055685043,631,2.2985715866,1425,-1.0000000000 +632,0,0.8375660777,632,2.3881287575,1426,-1.0000000000 +633,0,0.6791220307,633,2.5529067516,1427,-1.0000000000 +634,0,0.5486404896,634,3.0046038628,1428,-1.0000000000 +635,0,0.4031040370,635,3.6131353378,1429,-1.0000000000 +636,0,0.3038705885,636,4.2178559303,1430,-1.0000000000 +637,0,0.2524210811,637,5.2704262733,1431,-1.0000000000 +638,0,0.1901981086,638,7.2279939651,1432,-1.0000000000 +639,0,0.1363730580,639,9.2050275803,1433,-1.0000000000 +640,0,0.1073145792,640,11.0745315552,1434,-1.0000000000 +641,0,0.0684229210,641,17.0656967163,1435,-1.0000000000 +642,0,-0.0006744663,642,31.4324455261,1436,-1.0000000000 +643,0,0.0000577544,643,31.6227760315,1437,-1.0000000000 +644,0,0.0001570900,644,31.6227760315,1438,-1.0000000000 +645,0,0.0002731264,645,31.6227760315,1439,-1.0000000000 +646,0,0.0038284403,646,31.5273246765,1440,-1.0000000000 +647,0,0.0601321943,647,24.6100997925,1441,-1.0000000000 +648,0,0.1270000190,648,11.2679891586,1442,-1.0000000000 +649,0,0.1785868257,649,7.4269938469,1443,-1.0000000000 +650,0,0.2439755499,650,5.7582297325,1444,-1.0000000000 +651,0,0.3590478301,651,4.2548680305,1445,-1.0000000000 +652,0,0.4855530262,652,3.1840777397,1446,-1.0000000000 +653,0,0.6170494556,653,2.7186973095,1447,-1.0000000000 +654,0,0.7311881781,654,2.4960284233,1448,-1.0000000000 +655,0,0.8497233391,655,2.3866577148,1449,-1.0000000000 +656,0,0.8977967501,656,2.2938549519,1450,-1.0000000000 +657,0,0.9207286835,657,2.3358664513,1451,-1.0000000000 +658,0,0.8413833380,658,2.4213399887,1452,-1.0000000000 +659,0,0.7170580626,659,2.5448734760,1453,-1.0000000000 +660,0,0.5938371420,660,2.7929685116,1454,-1.0000000000 +661,0,0.5012392998,661,3.1163673401,1455,-1.0000000000 +662,0,0.3831444383,662,3.5627930164,1456,-1.0000000000 +663,0,0.2952043712,663,4.7107014656,1457,-1.0000000000 +664,0,0.2229586542,664,6.1396217346,1458,-1.0000000000 +665,0,0.1698745340,665,8.3822546005,1459,-1.0000000000 +666,0,0.1272457540,666,10.6636753082,1460,-1.0000000000 +667,0,0.0948237330,667,12.6990413666,1461,-1.0000000000 +668,0,0.0626095906,668,16.9660911560,1462,-1.0000000000 +669,0,0.0318746492,669,21.1093711853,1463,-1.0000000000 +670,0,-0.0004596915,670,31.6104564667,1464,-1.0000000000 +671,0,-0.0003297509,671,31.6227760315,1465,-1.0000000000 +672,0,0.0000154043,672,31.6227760315,1466,-1.0000000000 +673,0,-0.0001096721,673,31.6227760315,1467,-1.0000000000 +674,0,0.0178631432,674,29.5287456512,1468,-1.0000000000 +675,0,0.0546890534,675,16.1463527679,1469,-1.0000000000 +676,0,0.0868572965,676,12.2466621399,1470,-1.0000000000 +677,0,0.1117715240,677,10.5556993484,1471,-1.0000000000 +678,0,0.1618072391,678,8.4793176651,1472,-1.0000000000 +679,0,0.2181115299,679,6.4094319344,1473,-1.0000000000 +680,0,0.3212501407,680,4.3094873428,1474,-1.0000000000 +681,0,0.4112867415,681,3.4613811970,1475,-1.0000000000 +682,0,0.5046284795,682,3.0084741116,1476,-1.0000000000 +683,0,0.5720140934,683,2.7893841267,1477,-1.0000000000 +684,0,0.5922526121,684,2.7598524094,1478,-1.0000000000 +685,0,0.5841865540,685,2.8037195206,1479,-1.0000000000 +686,0,0.5365922451,686,3.0683386326,1480,-1.0000000000 +687,0,0.4612809718,687,3.3554875851,1481,-1.0000000000 +688,0,0.3670029640,688,3.9444963932,1482,-1.0000000000 +689,0,0.3295761645,689,4.3042774200,1483,-1.0000000000 +690,0,0.2607125342,690,5.3240251541,1484,-1.0000000000 +691,0,0.1775101870,691,7.7890319824,1485,-1.0000000000 +692,0,0.1102388427,692,12.0671710968,1486,-1.0000000000 +693,0,0.0604847036,693,18.2411289215,1487,-1.0000000000 +694,0,0.0366388559,694,21.5846443176,1488,-1.0000000000 +695,0,0.0300995968,695,25.3701477051,1489,-1.0000000000 +696,0,0.0216256510,696,27.5726089478,1490,-1.0000000000 +697,0,0.0095130559,697,30.6409358978,1491,-1.0000000000 +698,0,-0.0004731133,698,31.6227760315,1492,-1.0000000000 +699,0,0.0004173194,699,31.6227760315,1493,-1.0000000000 +700,0,0.0000373051,700,31.6227760315,1494,-1.0000000000 +701,0,0.0001317095,701,31.6227760315,1495,-1.0000000000 +702,0,0.0008505006,702,31.6226882935,1496,-1.0000000000 +703,0,-0.0003478700,703,31.6172637939,1497,-1.0000000000 +704,0,0.0189459547,704,23.7632350922,1498,-1.0000000000 +705,0,0.0240347050,705,25.5765171051,1499,-1.0000000000 +706,0,0.0671423450,706,20.8565483093,1500,-1.0000000000 +707,0,0.1300252825,707,10.1886911392,1501,-1.0000000000 +708,0,0.1885967255,708,6.9609127045,1502,-1.0000000000 +709,0,0.2572585344,709,5.1757941246,1503,-1.0000000000 +710,0,0.2850341201,710,4.6739964485,1504,-1.0000000000 +711,0,0.2925059199,711,4.6598939896,1505,-1.0000000000 +712,0,0.2976753414,712,4.3765192032,1506,-1.0000000000 +713,0,0.3117159903,713,4.3831186295,1507,-1.0000000000 +714,0,0.2751280963,714,4.9206175804,1508,-1.0000000000 +715,0,0.2536923289,715,5.5485920906,1509,-1.0000000000 +716,0,0.2220572233,716,5.7631196976,1510,-1.0000000000 +717,0,0.2168289870,717,5.8250527382,1511,-1.0000000000 +718,0,0.1724179536,718,7.2118659019,1512,-1.0000000000 +719,0,0.0910157040,719,12.4245290756,1513,-1.0000000000 +720,0,0.0563279390,720,17.5090179443,1514,-1.0000000000 +721,0,0.0309663750,721,21.6350479126,1515,-1.0000000000 +722,0,0.0123580080,722,26.7846317291,1516,-1.0000000000 +723,0,0.0015036017,723,31.4724483490,1517,-1.0000000000 +724,0,0.0008548850,724,31.6225376129,1518,-1.0000000000 +725,0,0.0006256067,725,31.6227760315,1519,-1.0000000000 +726,0,0.0002573585,726,31.6227760315,1520,-1.0000000000 +727,0,0.0000280884,727,31.6227760315,1521,-1.0000000000 +728,0,-0.0000565607,728,31.6227760315,1522,-1.0000000000 +729,0,0.0003511363,729,31.6227760315,1523,-1.0000000000 +730,0,-0.0001680269,730,31.6227760315,1524,-1.0000000000 +731,0,0.0000254372,731,31.6227760315,1525,-1.0000000000 +732,0,0.0008010912,732,31.6227760315,1526,-1.0000000000 +733,0,0.0012664478,733,31.4162387848,1527,-1.0000000000 +734,0,0.0087214625,734,28.7205638885,1528,-1.0000000000 +735,0,0.0626093596,735,19.5268421173,1529,-1.0000000000 +736,0,0.0923844799,736,11.2921705246,1530,-1.0000000000 +737,0,0.1464712471,737,9.9134054184,1531,-1.0000000000 +738,0,0.1504246145,738,8.1084785461,1532,-1.0000000000 +739,0,0.1739578098,739,7.7448530197,1533,-1.0000000000 +740,0,0.1997769475,740,6.6165623665,1534,-1.0000000000 +741,0,0.2006624788,741,6.4281668663,1535,-1.0000000000 +742,0,0.1754072160,742,6.9995551109,1536,-1.0000000000 +743,0,0.1449064016,743,9.2301797867,1537,-1.0000000000 +744,0,0.1363533288,744,9.0806503296,1538,-1.0000000000 +745,0,0.1309172958,745,8.9661102295,1539,-1.0000000000 +746,0,0.1192817390,746,10.3375415802,1540,-1.0000000000 +747,0,0.0636332557,747,14.1783494949,1541,-1.0000000000 +748,0,0.0384967402,748,22.9521389008,1542,-1.0000000000 +749,0,0.0151172429,749,28.6417751312,1543,-1.0000000000 +750,0,0.0002644823,750,31.6227531433,1544,-1.0000000000 +751,0,0.0001388959,751,31.6227760315,1545,-1.0000000000 +752,0,-0.0000449004,752,31.6227760315,1546,-1.0000000000 +753,0,-0.0001319500,753,31.6227760315,1547,-1.0000000000 +754,0,0.0001573211,754,31.6227760315,1548,-1.0000000000 +755,0,-0.0002211487,755,31.6227760315,1549,-1.0000000000 +756,0,0.0003631258,756,31.6227760315,1550,-1.0000000000 +757,0,-0.0004803424,757,31.6227760315,1551,-1.0000000000 +758,0,0.0002229759,758,31.6227760315,1552,-1.0000000000 +759,0,0.0001782212,759,31.6227760315,1553,-1.0000000000 +760,0,-0.0005359335,760,31.6227760315,1554,-1.0000000000 +761,0,0.0002537031,761,31.6227760315,1555,-1.0000000000 +762,0,0.0070610512,762,28.9331836700,1556,-1.0000000000 +763,0,0.0071148821,763,29.6497535706,1557,-1.0000000000 +764,0,0.0041782572,764,30.8653697968,1558,-1.0000000000 +765,0,0.0462772399,765,21.3133430481,1559,-1.0000000000 +766,0,0.0544400029,766,16.0949192047,1560,-1.0000000000 +767,0,0.0392944776,767,18.0789394379,1561,-1.0000000000 +768,0,0.0200691894,768,29.0664215088,1562,-1.0000000000 +769,0,0.0608186498,769,16.4322891235,1563,-1.0000000000 +770,0,0.0768310428,770,12.8409261703,1564,-1.0000000000 +771,0,0.0623596348,771,16.9758491516,1565,-1.0000000000 +772,0,0.0616865344,772,16.0248012543,1566,-1.0000000000 +773,0,0.0621746406,773,15.3318328857,1567,-1.0000000000 +774,0,0.0373334214,774,23.6103172302,1568,-1.0000000000 +775,0,0.0014662633,775,31.2061862946,1569,-1.0000000000 +776,0,0.0005060213,776,31.5637264252,1570,-1.0000000000 +777,0,-0.0001282875,777,31.6227760315,1571,-1.0000000000 +778,0,-0.0000724052,778,31.6227760315,1572,-1.0000000000 +779,0,-0.0003652821,779,31.6227760315,1573,-1.0000000000 +780,0,0.0004401279,780,31.6227760315,1574,-1.0000000000 +781,0,-0.0000989889,781,31.6227760315,1575,-1.0000000000 +782,0,-0.0000036841,782,31.6227760315,1576,-1.0000000000 +783,0,0.0003134308,783,31.6227760315,1577,-1.0000000000 +784,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,1.0000000000,835,-1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,1.0000000000,871,-1.0000000000,872,1.0000000000,873,1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,-1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,1.0000000000,973,-1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,-1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1578,-1.0000000000 +785,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,1.0000000000,835,-1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,-1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,-1.0000000000,978,1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1579,-1.0000000000 +786,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,-1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,1.0000000000,953,-1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1580,-1.0000000000 +787,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,-1.0000000000,843,1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,-1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,-1.0000000000,982,1.0000000000,983,-1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,-1.0000000000,1063,1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1581,-1.0000000000 +788,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,-1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,-1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,1.0000000000,868,-1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,1.0000000000,949,-1.0000000000,950,-1.0000000000,951,1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,-1.0000000000,981,-1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,-1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,-1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1582,-1.0000000000 +789,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1583,-1.0000000000 +790,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,-1.0000000000,862,1.0000000000,863,-1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1584,-1.0000000000 +791,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,-1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1585,-1.0000000000 +792,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,-1.0000000000,978,-1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,-1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,-1.0000000000,1567,1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1586,-1.0000000000 +793,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,-1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,-1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,-1.0000000000,972,1.0000000000,973,1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,-1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1587,-1.0000000000 +794,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,-1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1588,-1.0000000000 +795,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,1.0000000000,846,-1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,1.0000000000,859,-1.0000000000,860,1.0000000000,861,1.0000000000,862,-1.0000000000,863,1.0000000000,864,-1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,-1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,-1.0000000000,1589,-1.0000000000 +796,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,-1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,-1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1590,-1.0000000000 +797,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,1.0000000000,854,1.0000000000,855,1.0000000000,856,-1.0000000000,857,1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,-1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,-1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,-1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1591,-1.0000000000 +798,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,-1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,1.0000000000,888,-1.0000000000,889,1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,1.0000000000,896,-1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,-1.0000000000,907,-1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,-1.0000000000,933,1.0000000000,934,1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,1.0000000000,947,-1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,-1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,-1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1592,-1.0000000000 +799,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,-1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,-1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,1.0000000000,947,-1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1593,-1.0000000000 +800,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,-1.0000000000,1594,-1.0000000000 +801,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,1.0000000000,939,-1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,1.0000000000,981,-1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1595,-1.0000000000 +802,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1596,-1.0000000000 +803,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,-1.0000000000,972,1.0000000000,973,1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,1.0000000000,981,-1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,-1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,-1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,-1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1597,-1.0000000000 +804,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,-1.0000000000,862,-1.0000000000,863,1.0000000000,864,1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,-1.0000000000,888,1.0000000000,889,-1.0000000000,890,1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,-1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1598,-1.0000000000 +805,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,-1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,-1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,-1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,-1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1599,-1.0000000000 +806,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,-1.0000000000,913,-1.0000000000,914,1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1600,-1.0000000000 +807,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,-1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,-1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1601,-1.0000000000 +808,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,-1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1602,-1.0000000000 +809,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,1.0000000000,820,1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,-1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,1.0000000000,868,1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,-1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,1.0000000000,984,1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1603,-1.0000000000 +810,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,-1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1604,-1.0000000000 +811,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,-1.0000000000,940,1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,-1.0000000000,991,1.0000000000,992,-1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1605,-1.0000000000 +812,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,-1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,1.0000000000,979,-1.0000000000,980,1.0000000000,981,-1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,-1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,-1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,-1.0000000000,1606,-1.0000000000 +813,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,-1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1607,-1.0000000000 +814,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,-1.0000000000,840,1.0000000000,841,-1.0000000000,842,1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,-1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1608,-1.0000000000 +815,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,-1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,1.0000000000,868,1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,-1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1609,-1.0000000000 +816,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1610,-1.0000000000 +817,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,1.0000000000,939,1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,1.0000000000,971,-1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1611,-1.0000000000 +818,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1612,-1.0000000000 +819,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,-1.0000000000,867,1.0000000000,868,-1.0000000000,869,1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,1.0000000000,891,1.0000000000,892,-1.0000000000,893,-1.0000000000,894,1.0000000000,895,-1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,-1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1613,-1.0000000000 +820,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1614,-1.0000000000 +821,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,-1.0000000000,870,-1.0000000000,871,1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,-1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,-1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1615,-1.0000000000 +822,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,1.0000000000,864,1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,-1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1616,-1.0000000000 +823,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,-1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,-1.0000000000,862,1.0000000000,863,-1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,1.0000000000,895,-1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,1.0000000000,902,-1.0000000000,903,1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,-1.0000000000,928,-1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1617,-1.0000000000 +824,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,-1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,-1.0000000000,901,1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,1.0000000000,922,-1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,-1.0000000000,1618,-1.0000000000 +825,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,-1.0000000000,979,1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1619,-1.0000000000 +826,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,-1.0000000000,803,1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,-1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,-1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,-1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,1.0000000000,891,-1.0000000000,892,1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,-1.0000000000,970,1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,1.0000000000,987,-1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,-1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1620,-1.0000000000 +827,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,-1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,-1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1621,-1.0000000000 +828,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,-1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1622,-1.0000000000 +829,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,1.0000000000,844,1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,-1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,1.0000000000,891,-1.0000000000,892,1.0000000000,893,1.0000000000,894,-1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1623,-1.0000000000 +830,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,-1.0000000000,851,-1.0000000000,852,1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,1.0000000000,861,-1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,-1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,1.0000000000,968,1.0000000000,969,-1.0000000000,970,1.0000000000,971,1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,1.0000000000,992,-1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1624,-1.0000000000 +831,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,-1.0000000000,986,1.0000000000,987,-1.0000000000,988,1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,-1.0000000000,1093,1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1625,-1.0000000000 +832,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,-1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,1.0000000000,833,-1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,-1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,-1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1626,-1.0000000000 +833,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,-1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,-1.0000000000,852,1.0000000000,853,1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,-1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,1.0000000000,971,1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1627,-1.0000000000 +834,0,0.8421083689,1578,0.0235017370,1628,-1.0000000000 +835,0,-0.2846569419,1579,0.0261672977,1629,-1.0000000000 +836,0,-0.6479381323,1580,0.0223037712,1630,-1.0000000000 +837,0,0.3773280084,1581,0.0231465548,1631,-1.0000000000 +838,0,-1.0555180311,1582,0.0243742540,1632,-1.0000000000 +839,0,0.7876127958,1583,0.0225345884,1633,-1.0000000000 +840,0,-0.9667378664,1584,0.0249240641,1634,-1.0000000000 +841,0,-0.7313812971,1585,0.0240810122,1635,-1.0000000000 +842,0,0.7189067602,1586,0.0228495728,1636,-1.0000000000 +843,0,0.7211230993,1587,0.0222876444,1637,-1.0000000000 +844,0,-0.9235455990,1588,0.0243723150,1638,-1.0000000000 +845,0,-0.5571734905,1589,0.0194766801,1639,-1.0000000000 +846,0,0.8664592505,1590,0.0231784545,1640,-1.0000000000 +847,0,0.3598901629,1591,0.0223980900,1641,-1.0000000000 +848,0,0.8700128198,1592,0.0229846016,1642,-1.0000000000 +849,0,0.7697677016,1593,0.0229231622,1643,-1.0000000000 +850,0,0.2859251499,1594,0.0247299802,1644,-1.0000000000 +851,0,-0.7671884298,1595,0.0267935731,1645,-1.0000000000 +852,0,0.7625827193,1596,0.0292239934,1646,-1.0000000000 +853,0,-0.6408279538,1597,0.0266149249,1647,-1.0000000000 +854,0,0.4876926839,1598,0.0229843184,1648,-1.0000000000 +855,0,-0.7342277169,1599,0.0265182480,1649,-1.0000000000 +856,0,-0.0043167840,1600,0.0231549405,1650,-1.0000000000 +857,0,-0.9360870719,1601,0.0253012348,1651,-1.0000000000 +858,0,-0.2136942148,1602,0.0208041538,1652,-1.0000000000 +859,0,0.6678317189,1603,0.0230627339,1653,-1.0000000000 +860,0,-0.8490259647,1604,0.0283609889,1654,-1.0000000000 +861,0,-0.8502492905,1605,0.0245368518,1655,-1.0000000000 +862,0,0.3299311101,1606,0.0213238895,1656,-1.0000000000 +863,0,-0.6741704941,1607,0.0265815370,1657,-1.0000000000 +864,0,-0.7203316092,1608,0.0197502580,1658,-1.0000000000 +865,0,-0.5871137381,1609,0.0245222691,1659,-1.0000000000 +866,0,-0.1073979139,1610,0.0194286499,1660,-1.0000000000 +867,0,-0.6457850933,1611,0.0255288966,1661,-1.0000000000 +868,0,-0.7653211355,1612,0.0226976387,1662,-1.0000000000 +869,0,-0.7774050236,1613,0.0227414705,1663,-1.0000000000 +870,0,-0.7453527451,1614,0.0255117286,1664,-1.0000000000 +871,0,0.3966747224,1615,0.0273439139,1665,-1.0000000000 +872,0,0.6267040372,1616,0.0262405220,1666,-1.0000000000 +873,0,-0.7901589870,1617,0.0219206698,1667,-1.0000000000 +874,0,-0.6241480708,1618,0.0257767029,1668,-1.0000000000 +875,0,0.3426552415,1619,0.0209231097,1669,-1.0000000000 +876,0,1.0251504183,1620,0.0249391589,1670,-1.0000000000 +877,0,0.5753672123,1621,0.0281392988,1671,-1.0000000000 +878,0,0.0552809983,1622,0.0230191071,1672,-1.0000000000 +879,0,-0.7643856406,1623,0.0223054085,1673,-1.0000000000 +880,0,-0.9038895965,1624,0.0259901769,1674,-1.0000000000 +881,0,0.3115992844,1625,0.0212058239,1675,-1.0000000000 +882,0,0.8047288656,1626,0.0262604449,1676,-1.0000000000 +883,0,-0.1062955856,1627,0.0169141162,1677,-1.0000000000 +884,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1828,-1.0000000000 +885,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1829,-1.0000000000 +886,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1830,-1.0000000000 +887,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1831,-1.0000000000 +888,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1832,-1.0000000000 +889,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1833,-1.0000000000 +890,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1834,-1.0000000000 +891,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1835,-1.0000000000 +892,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1836,-1.0000000000 +893,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1837,-1.0000000000 +894,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1838,-1.0000000000 +895,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1839,-1.0000000000 +896,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1840,-1.0000000000 +897,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1841,-1.0000000000 +898,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1842,-1.0000000000 +899,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1843,-1.0000000000 +900,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1844,-1.0000000000 +901,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1845,-1.0000000000 +902,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1846,-1.0000000000 +903,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1847,-1.0000000000 +904,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1848,-1.0000000000 +905,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1849,-1.0000000000 +906,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1850,-1.0000000000 +907,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1851,-1.0000000000 +908,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1852,-1.0000000000 +909,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1853,-1.0000000000 +910,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,-1.0000000000,1854,-1.0000000000 +911,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1855,-1.0000000000 +912,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1856,-1.0000000000 +913,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1857,-1.0000000000 +914,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1858,-1.0000000000 +915,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1859,-1.0000000000 +916,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1860,-1.0000000000 +917,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1861,-1.0000000000 +918,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1862,-1.0000000000 +919,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1863,-1.0000000000 +920,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,-1.0000000000,1864,-1.0000000000 +921,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1865,-1.0000000000 +922,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1866,-1.0000000000 +923,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1867,-1.0000000000 +924,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1868,-1.0000000000 +925,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1869,-1.0000000000 +926,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1870,-1.0000000000 +927,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1871,-1.0000000000 +928,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1872,-1.0000000000 +929,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1873,-1.0000000000 +930,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1874,-1.0000000000 +931,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1875,-1.0000000000 +932,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1876,-1.0000000000 +933,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1877,-1.0000000000 +934,0,-0.4422365427,1828,0.1020488292,1878,-1.0000000000 +935,0,0.4480501115,1829,0.0991111100,1879,-1.0000000000 +936,0,-0.1003972590,1830,0.0965854451,1880,-1.0000000000 +937,0,-1.1484458447,1831,0.1059442237,1881,-1.0000000000 +938,0,1.0887894630,1832,0.0989778936,1882,-1.0000000000 +939,0,-1.0348954201,1833,0.1068197116,1883,-1.0000000000 +940,0,0.5534237027,1834,0.1160275713,1884,-1.0000000000 +941,0,0.9348842502,1835,0.1132629067,1885,-1.0000000000 +942,0,-0.4643164575,1836,0.1065536290,1886,-1.0000000000 +943,0,0.0835817456,1837,0.1003656834,1887,-1.0000000000 +944,0,0.3977578878,1838,0.1060394570,1888,-1.0000000000 +945,0,0.0678663701,1839,0.1013686582,1889,-1.0000000000 +946,0,-0.8597519398,1840,0.1015724093,1890,-1.0000000000 +947,0,1.2035224438,1841,0.1225976050,1891,-1.0000000000 +948,0,0.6223870516,1842,0.1063073128,1892,-1.0000000000 +949,0,-0.6301627755,1843,0.1010998860,1893,-1.0000000000 +950,0,-0.2829226255,1844,0.1127813533,1894,-1.0000000000 +951,0,-0.3967113197,1845,0.0949260890,1895,-1.0000000000 +952,0,-0.4686790705,1846,0.1089941412,1896,-1.0000000000 +953,0,0.1133320630,1847,0.1046472266,1897,-1.0000000000 +954,0,-0.8415259123,1848,0.1142742112,1898,-1.0000000000 +955,0,-0.9505460262,1849,0.1072790921,1899,-1.0000000000 +956,0,0.6531319022,1850,0.0998267680,1900,-1.0000000000 +957,0,-1.1331965923,1851,0.1025341526,1901,-1.0000000000 +958,0,1.3528954983,1852,0.0976141840,1902,-1.0000000000 +959,0,0.4627612829,1853,0.1206339747,1903,-1.0000000000 +960,0,0.8055898547,1854,0.1269099861,1904,-1.0000000000 +961,0,-0.9832527637,1855,0.1577575952,1905,-1.0000000000 +962,0,-0.1737223566,1856,0.1104114428,1906,-1.0000000000 +963,0,-0.0058632195,1857,0.1134437397,1907,-1.0000000000 +964,0,-0.9974204898,1858,0.1002218947,1908,-1.0000000000 +965,0,-1.0862815380,1859,0.1043362990,1909,-1.0000000000 +966,0,0.0564095974,1860,0.1188390180,1910,-1.0000000000 +967,0,1.0363285542,1861,0.1173062101,1911,-1.0000000000 +968,0,-0.7735077143,1862,0.1057077050,1912,-1.0000000000 +969,0,-0.4638699293,1863,0.1058885753,1913,-1.0000000000 +970,0,-0.6389272809,1864,0.1045930758,1914,-1.0000000000 +971,0,-0.0019936562,1865,0.1059108078,1915,-1.0000000000 +972,0,-0.4133639932,1866,0.1102507859,1916,-1.0000000000 +973,0,-0.2886965275,1867,0.1195091382,1917,-1.0000000000 +974,0,0.5997220874,1868,0.1224286780,1918,-1.0000000000 +975,0,1.2392590046,1869,0.1132306159,1919,-1.0000000000 +976,0,-1.6176872253,1870,0.1193554476,1920,-1.0000000000 +977,0,-0.0936360657,1871,0.1110986844,1921,-1.0000000000 +978,0,0.8811743259,1872,0.1029497087,1922,-1.0000000000 +979,0,0.3017511964,1873,0.0968364775,1923,-1.0000000000 +980,0,0.5134924650,1874,0.1179610640,1924,-1.0000000000 +981,0,-0.0661748648,1875,0.1095789969,1925,-1.0000000000 +982,0,-1.3897794485,1876,0.1369069517,1926,-1.0000000000 +983,0,-0.7762956619,1877,0.1096271724,1927,-1.0000000000 +984,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2078,-1.0000000000 +985,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2079,-1.0000000000 +986,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2080,-1.0000000000 +987,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2081,-1.0000000000 +988,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2082,-1.0000000000 +989,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2083,-1.0000000000 +990,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2084,-1.0000000000 +991,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2085,-1.0000000000 +992,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,-1.0000000000,1977,1.0000000000,2086,-1.0000000000 +993,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2087,-1.0000000000 +994,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2088,-1.0000000000 +995,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2089,-1.0000000000 +996,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2090,-1.0000000000 +997,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2091,-1.0000000000 +998,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2092,-1.0000000000 +999,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2093,-1.0000000000 +1000,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2094,-1.0000000000 +1001,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2095,-1.0000000000 +1002,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2096,-1.0000000000 +1003,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2097,-1.0000000000 +1004,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2098,-1.0000000000 +1005,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2099,-1.0000000000 +1006,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2100,-1.0000000000 +1007,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2101,-1.0000000000 +1008,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2102,-1.0000000000 +1009,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,1.0000000000,2103,-1.0000000000 +1010,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2104,-1.0000000000 +1011,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2105,-1.0000000000 +1012,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2106,-1.0000000000 +1013,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,1.0000000000,2107,-1.0000000000 +1014,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2108,-1.0000000000 +1015,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,-1.0000000000,1977,1.0000000000,2109,-1.0000000000 +1016,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2110,-1.0000000000 +1017,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2111,-1.0000000000 +1018,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2112,-1.0000000000 +1019,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2113,-1.0000000000 +1020,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2114,-1.0000000000 +1021,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2115,-1.0000000000 +1022,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2116,-1.0000000000 +1023,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2117,-1.0000000000 +1024,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2118,-1.0000000000 +1025,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2119,-1.0000000000 +1026,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2120,-1.0000000000 +1027,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,1.0000000000,2121,-1.0000000000 +1028,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2122,-1.0000000000 +1029,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2123,-1.0000000000 +1030,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2124,-1.0000000000 +1031,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2125,-1.0000000000 +1032,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2126,-1.0000000000 +1033,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2127,-1.0000000000 +1034,0,-1.5439108610,2078,0.0876089185,2128,-1.0000000000 +1035,0,-0.4739111364,2079,0.0961711332,2129,-1.0000000000 +1036,0,-1.0415468216,2080,0.0937085450,2130,-1.0000000000 +1037,0,0.6139742732,2081,0.0812947005,2131,-1.0000000000 +1038,0,0.5557186604,2082,0.0871866420,2132,-1.0000000000 +1039,0,-0.3893597722,2083,0.0804945678,2133,-1.0000000000 +1040,0,-0.8266534805,2084,0.0812162086,2134,-1.0000000000 +1041,0,0.2232298106,2085,0.0948337018,2135,-1.0000000000 +1042,0,-0.0620028004,2086,0.0776069760,2136,-1.0000000000 +1043,0,1.1303224564,2087,0.0934174880,2137,-1.0000000000 +1044,0,-0.2364211082,2088,0.0797051936,2138,-1.0000000000 +1045,0,-0.9706853628,2089,0.0967904106,2139,-1.0000000000 +1046,0,-0.2923468649,2090,0.0907429308,2140,-1.0000000000 +1047,0,-0.5784704685,2091,0.0755174533,2141,-1.0000000000 +1048,0,-0.0592839196,2092,0.0796242356,2142,-1.0000000000 +1049,0,0.3860493600,2093,0.0900726616,2143,-1.0000000000 +1050,0,1.4812798500,2094,0.0888576508,2144,-1.0000000000 +1051,0,-0.8718976378,2095,0.1031556055,2145,-1.0000000000 +1052,0,-0.1305737942,2096,0.0803080872,2146,-1.0000000000 +1053,0,-0.2846091986,2097,0.0820637047,2147,-1.0000000000 +1054,0,0.1756512523,2098,0.0995460078,2148,-1.0000000000 +1055,0,1.2454360723,2099,0.1092514172,2149,-1.0000000000 +1056,0,1.0246465206,2100,0.0863156915,2150,-1.0000000000 +1057,0,0.2504656911,2101,0.0761504471,2151,-1.0000000000 +1058,0,0.7058990002,2102,0.0841773748,2152,-1.0000000000 +1059,0,0.0360603780,2103,0.0885879919,2153,-1.0000000000 +1060,0,-0.5337175727,2104,0.0816795677,2154,-1.0000000000 +1061,0,1.3386275768,2105,0.0769669712,2155,-1.0000000000 +1062,0,-0.5070524216,2106,0.0816306695,2156,-1.0000000000 +1063,0,-0.7249984741,2107,0.0855440348,2157,-1.0000000000 +1064,0,1.4707089663,2108,0.0787225068,2158,-1.0000000000 +1065,0,0.2180018425,2109,0.0845124200,2159,-1.0000000000 +1066,0,0.6674256325,2110,0.0969409272,2160,-1.0000000000 +1067,0,0.0993419141,2111,0.0880582631,2161,-1.0000000000 +1068,0,0.0910886228,2112,0.0868164375,2162,-1.0000000000 +1069,0,-0.5364635587,2113,0.1057630703,2163,-1.0000000000 +1070,0,1.2253115177,2114,0.0867191926,2164,-1.0000000000 +1071,0,0.8443910480,2115,0.0999500081,2165,-1.0000000000 +1072,0,1.0910279751,2116,0.0895362720,2166,-1.0000000000 +1073,0,0.1953761876,2117,0.0960677862,2167,-1.0000000000 +1074,0,0.4993414283,2118,0.0850909576,2168,-1.0000000000 +1075,0,0.2611379027,2119,0.0794575140,2169,-1.0000000000 +1076,0,-1.7781825066,2120,0.0924188271,2170,-1.0000000000 +1077,0,-0.6430346966,2121,0.0960254595,2171,-1.0000000000 +1078,0,0.7111772299,2122,0.0932400376,2172,-1.0000000000 +1079,0,0.5366181135,2123,0.0883551985,2173,-1.0000000000 +1080,0,1.2333692312,2124,0.0930536613,2174,-1.0000000000 +1081,0,0.7760955095,2125,0.0919722095,2175,-1.0000000000 +1082,0,-0.0114938617,2126,0.0945464075,2176,-1.0000000000 +1083,0,0.8896213770,2127,0.1000391170,2177,-1.0000000000 +1084,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,1.0000000000,2328,-1.0000000000 +1085,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2329,-1.0000000000 +1086,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2330,-1.0000000000 +1087,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2331,-1.0000000000 +1088,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2332,-1.0000000000 +1089,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,1.0000000000,2333,-1.0000000000 +1090,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2334,-1.0000000000 +1091,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2335,-1.0000000000 +1092,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2336,-1.0000000000 +1093,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2337,-1.0000000000 +1094,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2338,-1.0000000000 +1095,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2339,-1.0000000000 +1096,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,-1.0000000000,2340,-1.0000000000 +1097,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2341,-1.0000000000 +1098,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2342,-1.0000000000 +1099,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2343,-1.0000000000 +1100,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2344,-1.0000000000 +1101,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2345,-1.0000000000 +1102,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2346,-1.0000000000 +1103,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2347,-1.0000000000 +1104,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2348,-1.0000000000 +1105,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2349,-1.0000000000 +1106,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2350,-1.0000000000 +1107,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2351,-1.0000000000 +1108,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,-1.0000000000,2352,-1.0000000000 +1109,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2353,-1.0000000000 +1110,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2354,-1.0000000000 +1111,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,1.0000000000,2355,-1.0000000000 +1112,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2356,-1.0000000000 +1113,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2357,-1.0000000000 +1114,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2358,-1.0000000000 +1115,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2359,-1.0000000000 +1116,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2360,-1.0000000000 +1117,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2361,-1.0000000000 +1118,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,1.0000000000,2362,-1.0000000000 +1119,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,1.0000000000,2363,-1.0000000000 +1120,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,1.0000000000,2364,-1.0000000000 +1121,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2365,-1.0000000000 +1122,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,-1.0000000000,2366,-1.0000000000 +1123,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2367,-1.0000000000 +1124,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2368,-1.0000000000 +1125,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2369,-1.0000000000 +1126,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2370,-1.0000000000 +1127,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2371,-1.0000000000 +1128,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2372,-1.0000000000 +1129,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2373,-1.0000000000 +1130,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2374,-1.0000000000 +1131,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2375,-1.0000000000 +1132,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2376,-1.0000000000 +1133,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2377,-1.0000000000 +1134,0,0.0831787437,2328,0.0764585137,2378,-1.0000000000 +1135,0,-0.1364517659,2329,0.0798864216,2379,-1.0000000000 +1136,0,1.8092790842,2330,0.0792033300,2380,-1.0000000000 +1137,0,0.2641986907,2331,0.0732443780,2381,-1.0000000000 +1138,0,1.2061002254,2332,0.0782436728,2382,-1.0000000000 +1139,0,-1.8642137051,2333,0.0861918181,2383,-1.0000000000 +1140,0,-0.1733025759,2334,0.0763822570,2384,-1.0000000000 +1141,0,1.4934809208,2335,0.0766226798,2385,-1.0000000000 +1142,0,-0.1346085519,2336,0.0771160796,2386,-1.0000000000 +1143,0,0.1427569836,2337,0.0810657293,2387,-1.0000000000 +1144,0,-0.0470439941,2338,0.0790032297,2388,-1.0000000000 +1145,0,0.3314089775,2339,0.0826260373,2389,-1.0000000000 +1146,0,0.5605881810,2340,0.0821316242,2390,-1.0000000000 +1147,0,-0.0279953144,2341,0.0758167356,2391,-1.0000000000 +1148,0,0.1289070398,2342,0.0772503018,2392,-1.0000000000 +1149,0,-0.2735776901,2343,0.0737596825,2393,-1.0000000000 +1150,0,0.0808036923,2344,0.0803246498,2394,-1.0000000000 +1151,0,0.3288836777,2345,0.0781317875,2395,-1.0000000000 +1152,0,-0.0946673453,2346,0.0748800337,2396,-1.0000000000 +1153,0,0.1801957637,2347,0.0833257213,2397,-1.0000000000 +1154,0,-0.3167375326,2348,0.0825496614,2398,-1.0000000000 +1155,0,-1.6758612394,2349,0.0833077803,2399,-1.0000000000 +1156,0,0.4785592556,2350,0.0786740705,2400,-1.0000000000 +1157,0,-0.0440198034,2351,0.0839604437,2401,-1.0000000000 +1158,0,-0.4510684013,2352,0.0727607608,2402,-1.0000000000 +1159,0,0.4796656966,2353,0.0754371658,2403,-1.0000000000 +1160,0,-0.1467658728,2354,0.0801599845,2404,-1.0000000000 +1161,0,-1.6980912685,2355,0.0824286491,2405,-1.0000000000 +1162,0,-0.5121878386,2356,0.0887714252,2406,-1.0000000000 +1163,0,-0.1283654422,2357,0.0806707665,2407,-1.0000000000 +1164,0,-0.5782864094,2358,0.0757020339,2408,-1.0000000000 +1165,0,-1.3219553232,2359,0.0830138251,2409,-1.0000000000 +1166,0,1.3010077477,2360,0.0867237747,2410,-1.0000000000 +1167,0,1.8038090467,2361,0.0811277553,2411,-1.0000000000 +1168,0,1.0391250849,2362,0.0832474679,2412,-1.0000000000 +1169,0,-0.8869209290,2363,0.0883564204,2413,-1.0000000000 +1170,0,0.4410263300,2364,0.0816484168,2414,-1.0000000000 +1171,0,0.5588466525,2365,0.0827038214,2415,-1.0000000000 +1172,0,-0.4485054016,2366,0.0719914138,2416,-1.0000000000 +1173,0,0.2402071357,2367,0.0743149817,2417,-1.0000000000 +1174,0,-1.7117775679,2368,0.0778249726,2418,-1.0000000000 +1175,0,-0.2367737740,2369,0.0717907771,2419,-1.0000000000 +1176,0,0.0982874855,2370,0.0753626451,2420,-1.0000000000 +1177,0,-0.0940445662,2371,0.0761000440,2421,-1.0000000000 +1178,0,-0.0428520180,2372,0.0847094953,2422,-1.0000000000 +1179,0,0.5425710678,2373,0.0811219513,2423,-1.0000000000 +1180,0,0.4396020770,2374,0.0789181367,2424,-1.0000000000 +1181,0,0.3062215745,2375,0.0784865990,2425,-1.0000000000 +1182,0,-0.2372326851,2376,0.0754072890,2426,-1.0000000000 +1183,0,0.4145061076,2377,0.0873605311,2427,-1.0000000000 +1184,0,-0.0000000000,2428,1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,-1.0000000000,2433,-1.0000000000,2434,-1.0000000000,2435,1.0000000000,2436,1.0000000000,2437,-1.0000000000,2438,1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,-1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,-1.0000000000,2445,-1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,-1.0000000000,2449,1.0000000000,2450,1.0000000000,2451,-1.0000000000,2452,-1.0000000000,2453,1.0000000000,2454,1.0000000000,2455,1.0000000000,2456,-1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,-1.0000000000,2469,1.0000000000,2470,1.0000000000,2471,-1.0000000000,2472,1.0000000000,2473,1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,1.0000000000,2578,-1.0000000000 +1185,0,-0.0000000000,2428,1.0000000000,2429,-1.0000000000,2430,-1.0000000000,2431,1.0000000000,2432,1.0000000000,2433,-1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,1.0000000000,2441,1.0000000000,2442,-1.0000000000,2443,1.0000000000,2444,1.0000000000,2445,-1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,-1.0000000000,2449,1.0000000000,2450,-1.0000000000,2451,-1.0000000000,2452,1.0000000000,2453,-1.0000000000,2454,-1.0000000000,2455,-1.0000000000,2456,-1.0000000000,2457,-1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,1.0000000000,2462,-1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,1.0000000000,2466,-1.0000000000,2467,-1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,1.0000000000,2473,1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,1.0000000000,2579,-1.0000000000 +1186,0,-0.0000000000,2428,-1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,-1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,-1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,1.0000000000,2440,-1.0000000000,2441,1.0000000000,2442,1.0000000000,2443,-1.0000000000,2444,-1.0000000000,2445,1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,-1.0000000000,2449,-1.0000000000,2450,-1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,-1.0000000000,2454,-1.0000000000,2455,1.0000000000,2456,1.0000000000,2457,1.0000000000,2458,-1.0000000000,2459,-1.0000000000,2460,-1.0000000000,2461,1.0000000000,2462,-1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,-1.0000000000,2473,-1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,-1.0000000000,2580,-1.0000000000 +1187,0,-0.0000000000,2428,-1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,-1.0000000000,2437,-1.0000000000,2438,1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,-1.0000000000,2442,1.0000000000,2443,-1.0000000000,2444,-1.0000000000,2445,1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,-1.0000000000,2449,-1.0000000000,2450,1.0000000000,2451,-1.0000000000,2452,-1.0000000000,2453,1.0000000000,2454,-1.0000000000,2455,1.0000000000,2456,-1.0000000000,2457,1.0000000000,2458,-1.0000000000,2459,-1.0000000000,2460,1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,1.0000000000,2464,-1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,-1.0000000000,2469,-1.0000000000,2470,1.0000000000,2471,-1.0000000000,2472,-1.0000000000,2473,1.0000000000,2474,1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,1.0000000000,2581,-1.0000000000 +1188,0,-0.0000000000,2428,-1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,-1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,1.0000000000,2436,1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,-1.0000000000,2445,1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,-1.0000000000,2449,-1.0000000000,2450,-1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,-1.0000000000,2454,-1.0000000000,2455,1.0000000000,2456,-1.0000000000,2457,-1.0000000000,2458,-1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,-1.0000000000,2464,1.0000000000,2465,1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,1.0000000000,2469,-1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,1.0000000000,2473,-1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,-1.0000000000,2582,-1.0000000000 +1189,0,-0.0000000000,2428,1.0000000000,2429,1.0000000000,2430,-1.0000000000,2431,-1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,1.0000000000,2435,1.0000000000,2436,1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,-1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,-1.0000000000,2445,-1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,1.0000000000,2449,-1.0000000000,2450,1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,1.0000000000,2454,-1.0000000000,2455,-1.0000000000,2456,1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,1.0000000000,2469,-1.0000000000,2470,-1.0000000000,2471,-1.0000000000,2472,1.0000000000,2473,-1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,-1.0000000000,2583,-1.0000000000 +1190,0,-0.0000000000,2428,1.0000000000,2429,-1.0000000000,2430,-1.0000000000,2431,1.0000000000,2432,1.0000000000,2433,-1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,1.0000000000,2437,-1.0000000000,2438,1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,-1.0000000000,2445,-1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,-1.0000000000,2449,-1.0000000000,2450,-1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,-1.0000000000,2454,1.0000000000,2455,-1.0000000000,2456,1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,-1.0000000000,2460,-1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,1.0000000000,2464,-1.0000000000,2465,-1.0000000000,2466,1.0000000000,2467,1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,1.0000000000,2471,1.0000000000,2472,-1.0000000000,2473,-1.0000000000,2474,1.0000000000,2475,-1.0000000000,2476,-1.0000000000,2477,-1.0000000000,2584,-1.0000000000 +1191,0,-0.0000000000,2428,1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,-1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,1.0000000000,2441,1.0000000000,2442,-1.0000000000,2443,1.0000000000,2444,1.0000000000,2445,-1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,-1.0000000000,2449,1.0000000000,2450,-1.0000000000,2451,-1.0000000000,2452,1.0000000000,2453,-1.0000000000,2454,1.0000000000,2455,-1.0000000000,2456,-1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,1.0000000000,2461,1.0000000000,2462,-1.0000000000,2463,1.0000000000,2464,-1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,-1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,-1.0000000000,2473,1.0000000000,2474,1.0000000000,2475,-1.0000000000,2476,-1.0000000000,2477,1.0000000000,2585,-1.0000000000 +1192,0,-0.0000000000,2428,1.0000000000,2429,1.0000000000,2430,1.0000000000,2431,-1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,1.0000000000,2435,1.0000000000,2436,-1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,1.0000000000,2440,-1.0000000000,2441,1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,1.0000000000,2445,-1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,1.0000000000,2449,1.0000000000,2450,-1.0000000000,2451,1.0000000000,2452,1.0000000000,2453,-1.0000000000,2454,1.0000000000,2455,-1.0000000000,2456,1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,1.0000000000,2462,1.0000000000,2463,-1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,-1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,-1.0000000000,2473,-1.0000000000,2474,1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,-1.0000000000,2586,-1.0000000000 +1193,0,-0.0000000000,2428,1.0000000000,2429,1.0000000000,2430,1.0000000000,2431,-1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,-1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,-1.0000000000,2442,-1.0000000000,2443,1.0000000000,2444,1.0000000000,2445,1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,1.0000000000,2449,1.0000000000,2450,1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,1.0000000000,2454,-1.0000000000,2455,1.0000000000,2456,-1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,1.0000000000,2462,-1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,-1.0000000000,2468,1.0000000000,2469,-1.0000000000,2470,-1.0000000000,2471,-1.0000000000,2472,-1.0000000000,2473,1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,1.0000000000,2587,-1.0000000000 +1194,0,-0.2191663980,2578,0.0748265833,2588,-1.0000000000 +1195,0,0.1379462183,2579,0.0680898950,2589,-1.0000000000 +1196,0,0.3651287258,2580,0.0697829127,2590,-1.0000000000 +1197,0,-0.3790612817,2581,0.0699527264,2591,-1.0000000000 +1198,0,0.0887304395,2582,0.0746282265,2592,-1.0000000000 +1199,0,0.1295915544,2583,0.0643937513,2593,-1.0000000000 +1200,0,0.3341619074,2584,0.0683351308,2594,-1.0000000000 +1201,0,-0.0701742172,2585,0.0764223784,2595,-1.0000000000 +1202,0,0.2174075395,2586,0.0778548196,2596,-1.0000000000 +1203,0,0.3690969944,2587,0.0806291550,2597,-1.0000000000 +1204,0,-0.0000000000,2598,1.0000000000,2599,1.0000000000,2600,1.0000000000,2601,-1.0000000000,2602,1.0000000000,2603,1.0000000000,2604,-1.0000000000,2605,-1.0000000000,2606,1.0000000000,2607,1.0000000000,2628,-1.0000000000 +1205,0,-0.0000000000,2598,1.0000000000,2599,-1.0000000000,2600,-1.0000000000,2601,1.0000000000,2602,-1.0000000000,2603,1.0000000000,2604,-1.0000000000,2605,-1.0000000000,2606,-1.0000000000,2607,1.0000000000,2629,-1.0000000000 +1206,0,-0.0000000000,2598,1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,1.0000000000,2602,1.0000000000,2603,-1.0000000000,2604,-1.0000000000,2605,1.0000000000,2606,-1.0000000000,2607,1.0000000000,2630,-1.0000000000 +1207,0,-0.0000000000,2598,1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,1.0000000000,2603,1.0000000000,2604,1.0000000000,2605,-1.0000000000,2606,-1.0000000000,2607,-1.0000000000,2631,-1.0000000000 +1208,0,-0.0000000000,2598,-1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,-1.0000000000,2603,-1.0000000000,2604,-1.0000000000,2605,1.0000000000,2606,-1.0000000000,2607,1.0000000000,2632,-1.0000000000 +1209,0,-0.0000000000,2598,-1.0000000000,2599,1.0000000000,2600,1.0000000000,2601,-1.0000000000,2602,1.0000000000,2603,1.0000000000,2604,-1.0000000000,2605,1.0000000000,2606,1.0000000000,2607,1.0000000000,2633,-1.0000000000 +1210,0,-0.0000000000,2598,-1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,-1.0000000000,2603,-1.0000000000,2604,-1.0000000000,2605,1.0000000000,2606,1.0000000000,2607,-1.0000000000,2634,-1.0000000000 +1211,0,-0.0000000000,2598,1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,-1.0000000000,2603,1.0000000000,2604,1.0000000000,2605,1.0000000000,2606,-1.0000000000,2607,1.0000000000,2635,-1.0000000000 +1212,0,-0.0000000000,2598,-1.0000000000,2599,-1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,-1.0000000000,2603,1.0000000000,2604,-1.0000000000,2605,-1.0000000000,2606,1.0000000000,2607,-1.0000000000,2636,-1.0000000000 +1213,0,-0.0000000000,2598,-1.0000000000,2599,1.0000000000,2600,1.0000000000,2601,1.0000000000,2602,1.0000000000,2603,-1.0000000000,2604,-1.0000000000,2605,-1.0000000000,2606,-1.0000000000,2607,-1.0000000000,2637,-1.0000000000 +1214,0,0.0786820799,2628,0.2380353510,2638,-1.0000000000 +1215,0,0.2452328354,2629,0.2767313421,2639,-1.0000000000 +1216,0,0.4382847250,2630,0.2744768858,2640,-1.0000000000 +1217,0,0.1370536983,2631,0.2933354974,2641,-1.0000000000 +1218,0,-0.0251469873,2632,0.2791853845,2642,-1.0000000000 +1219,0,-0.2257008702,2633,0.2494552583,2643,-1.0000000000 +1220,0,-0.0018014926,2634,0.3040358126,2644,-1.0000000000 +1221,0,-0.0473403111,2635,0.2666788399,2645,-1.0000000000 +1222,0,-0.3460843861,2636,0.2826097310,2646,-1.0000000000 +1223,0,0.0315086767,2637,0.2692045569,2647,-1.0000000000 +1224,0,-0.0000000000,2648,-1.0000000000,2649,-1.0000000000,2650,-1.0000000000,2651,-1.0000000000,2652,1.0000000000,2653,1.0000000000,2654,1.0000000000,2655,1.0000000000,2656,1.0000000000,2657,-1.0000000000,784,-1.0000000000 +1225,0,-0.0000000000,2648,-1.0000000000,2649,-1.0000000000,2650,-1.0000000000,2651,-1.0000000000,2652,-1.0000000000,2653,-1.0000000000,2654,-1.0000000000,2655,-1.0000000000,2656,-1.0000000000,2657,1.0000000000,785,-1.0000000000 +1226,0,-0.0000000000,2648,1.0000000000,2649,-1.0000000000,2650,-1.0000000000,2651,1.0000000000,2652,-1.0000000000,2653,1.0000000000,2654,1.0000000000,2655,-1.0000000000,2656,1.0000000000,2657,1.0000000000,786,-1.0000000000 +1227,0,-0.0000000000,2648,1.0000000000,2649,-1.0000000000,2650,1.0000000000,2651,-1.0000000000,2652,1.0000000000,2653,1.0000000000,2654,-1.0000000000,2655,-1.0000000000,2656,-1.0000000000,2657,1.0000000000,787,-1.0000000000 +1228,0,-0.0000000000,2648,-1.0000000000,2649,1.0000000000,2650,-1.0000000000,2651,1.0000000000,2652,-1.0000000000,2653,-1.0000000000,2654,-1.0000000000,2655,1.0000000000,2656,1.0000000000,2657,1.0000000000,788,-1.0000000000 +1229,0,-0.0000000000,2648,1.0000000000,2649,1.0000000000,2650,1.0000000000,2651,1.0000000000,2652,1.0000000000,2653,1.0000000000,2654,-1.0000000000,2655,1.0000000000,2656,1.0000000000,2657,-1.0000000000,789,-1.0000000000 +1230,0,-0.0000000000,2648,-1.0000000000,2649,-1.0000000000,2650,1.0000000000,2651,1.0000000000,2652,1.0000000000,2653,-1.0000000000,2654,1.0000000000,2655,1.0000000000,2656,-1.0000000000,2657,1.0000000000,790,-1.0000000000 +1231,0,-0.0000000000,2648,-1.0000000000,2649,1.0000000000,2650,1.0000000000,2651,-1.0000000000,2652,1.0000000000,2653,-1.0000000000,2654,1.0000000000,2655,-1.0000000000,2656,1.0000000000,2657,1.0000000000,791,-1.0000000000 +1232,0,-0.0000000000,2648,1.0000000000,2649,-1.0000000000,2650,-1.0000000000,2651,1.0000000000,2652,-1.0000000000,2653,1.0000000000,2654,-1.0000000000,2655,1.0000000000,2656,-1.0000000000,2657,-1.0000000000,792,-1.0000000000 +1233,0,-0.0000000000,2648,1.0000000000,2649,1.0000000000,2650,-1.0000000000,2651,-1.0000000000,2652,-1.0000000000,2653,1.0000000000,2654,-1.0000000000,2655,-1.0000000000,2656,1.0000000000,2657,-1.0000000000,793,-1.0000000000 +1234,2,0,789,-1.0000000000,788,1.0000000000 +0,sign,1678,1628 +1,sign,1679,1629 +2,sign,1680,1630 +3,sign,1681,1631 +4,sign,1682,1632 +5,sign,1683,1633 +6,sign,1684,1634 +7,sign,1685,1635 +8,sign,1686,1636 +9,sign,1687,1637 +10,sign,1688,1638 +11,sign,1689,1639 +12,sign,1690,1640 +13,sign,1691,1641 +14,sign,1692,1642 +15,sign,1693,1643 +16,sign,1694,1644 +17,sign,1695,1645 +18,sign,1696,1646 +19,sign,1697,1647 +20,sign,1698,1648 +21,sign,1699,1649 +22,sign,1700,1650 +23,sign,1701,1651 +24,sign,1702,1652 +25,sign,1703,1653 +26,sign,1704,1654 +27,sign,1705,1655 +28,sign,1706,1656 +29,sign,1707,1657 +30,sign,1708,1658 +31,sign,1709,1659 +32,sign,1710,1660 +33,sign,1711,1661 +34,sign,1712,1662 +35,sign,1713,1663 +36,sign,1714,1664 +37,sign,1715,1665 +38,sign,1716,1666 +39,sign,1717,1667 +40,sign,1718,1668 +41,sign,1719,1669 +42,sign,1720,1670 +43,sign,1721,1671 +44,sign,1722,1672 +45,sign,1723,1673 +46,sign,1724,1674 +47,sign,1725,1675 +48,sign,1726,1676 +49,sign,1727,1677 +50,sign,1928,1878 +51,sign,1929,1879 +52,sign,1930,1880 +53,sign,1931,1881 +54,sign,1932,1882 +55,sign,1933,1883 +56,sign,1934,1884 +57,sign,1935,1885 +58,sign,1936,1886 +59,sign,1937,1887 +60,sign,1938,1888 +61,sign,1939,1889 +62,sign,1940,1890 +63,sign,1941,1891 +64,sign,1942,1892 +65,sign,1943,1893 +66,sign,1944,1894 +67,sign,1945,1895 +68,sign,1946,1896 +69,sign,1947,1897 +70,sign,1948,1898 +71,sign,1949,1899 +72,sign,1950,1900 +73,sign,1951,1901 +74,sign,1952,1902 +75,sign,1953,1903 +76,sign,1954,1904 +77,sign,1955,1905 +78,sign,1956,1906 +79,sign,1957,1907 +80,sign,1958,1908 +81,sign,1959,1909 +82,sign,1960,1910 +83,sign,1961,1911 +84,sign,1962,1912 +85,sign,1963,1913 +86,sign,1964,1914 +87,sign,1965,1915 +88,sign,1966,1916 +89,sign,1967,1917 +90,sign,1968,1918 +91,sign,1969,1919 +92,sign,1970,1920 +93,sign,1971,1921 +94,sign,1972,1922 +95,sign,1973,1923 +96,sign,1974,1924 +97,sign,1975,1925 +98,sign,1976,1926 +99,sign,1977,1927 +100,sign,2178,2128 +101,sign,2179,2129 +102,sign,2180,2130 +103,sign,2181,2131 +104,sign,2182,2132 +105,sign,2183,2133 +106,sign,2184,2134 +107,sign,2185,2135 +108,sign,2186,2136 +109,sign,2187,2137 +110,sign,2188,2138 +111,sign,2189,2139 +112,sign,2190,2140 +113,sign,2191,2141 +114,sign,2192,2142 +115,sign,2193,2143 +116,sign,2194,2144 +117,sign,2195,2145 +118,sign,2196,2146 +119,sign,2197,2147 +120,sign,2198,2148 +121,sign,2199,2149 +122,sign,2200,2150 +123,sign,2201,2151 +124,sign,2202,2152 +125,sign,2203,2153 +126,sign,2204,2154 +127,sign,2205,2155 +128,sign,2206,2156 +129,sign,2207,2157 +130,sign,2208,2158 +131,sign,2209,2159 +132,sign,2210,2160 +133,sign,2211,2161 +134,sign,2212,2162 +135,sign,2213,2163 +136,sign,2214,2164 +137,sign,2215,2165 +138,sign,2216,2166 +139,sign,2217,2167 +140,sign,2218,2168 +141,sign,2219,2169 +142,sign,2220,2170 +143,sign,2221,2171 +144,sign,2222,2172 +145,sign,2223,2173 +146,sign,2224,2174 +147,sign,2225,2175 +148,sign,2226,2176 +149,sign,2227,2177 +150,sign,2428,2378 +151,sign,2429,2379 +152,sign,2430,2380 +153,sign,2431,2381 +154,sign,2432,2382 +155,sign,2433,2383 +156,sign,2434,2384 +157,sign,2435,2385 +158,sign,2436,2386 +159,sign,2437,2387 +160,sign,2438,2388 +161,sign,2439,2389 +162,sign,2440,2390 +163,sign,2441,2391 +164,sign,2442,2392 +165,sign,2443,2393 +166,sign,2444,2394 +167,sign,2445,2395 +168,sign,2446,2396 +169,sign,2447,2397 +170,sign,2448,2398 +171,sign,2449,2399 +172,sign,2450,2400 +173,sign,2451,2401 +174,sign,2452,2402 +175,sign,2453,2403 +176,sign,2454,2404 +177,sign,2455,2405 +178,sign,2456,2406 +179,sign,2457,2407 +180,sign,2458,2408 +181,sign,2459,2409 +182,sign,2460,2410 +183,sign,2461,2411 +184,sign,2462,2412 +185,sign,2463,2413 +186,sign,2464,2414 +187,sign,2465,2415 +188,sign,2466,2416 +189,sign,2467,2417 +190,sign,2468,2418 +191,sign,2469,2419 +192,sign,2470,2420 +193,sign,2471,2421 +194,sign,2472,2422 +195,sign,2473,2423 +196,sign,2474,2424 +197,sign,2475,2425 +198,sign,2476,2426 +199,sign,2477,2427 +200,sign,2598,2588 +201,sign,2599,2589 +202,sign,2600,2590 +203,sign,2601,2591 +204,sign,2602,2592 +205,sign,2603,2593 +206,sign,2604,2594 +207,sign,2605,2595 +208,sign,2606,2596 +209,sign,2607,2597 +210,sign,2648,2638 +211,sign,2649,2639 +212,sign,2650,2640 +213,sign,2651,2641 +214,sign,2652,2642 +215,sign,2653,2643 +216,sign,2654,2644 +217,sign,2655,2645 +218,sign,2656,2646 +219,sign,2657,2647 diff --git a/regress/regress1/input_queries/deep_6_index_5566.ipq b/regress/regress1/input_queries/deep_6_index_5566.ipq new file mode 100644 index 0000000000..16ae2018cf --- /dev/null +++ b/regress/regress1/input_queries/deep_6_index_5566.ipq @@ -0,0 +1,4264 @@ +2678 +1004 +1004 +1235 +220 +784 +0,0 +1,1 +2,2 +3,3 +4,4 +5,5 +6,6 +7,7 +8,8 +9,9 +10,10 +11,11 +12,12 +13,13 +14,14 +15,15 +16,16 +17,17 +18,18 +19,19 +20,20 +21,21 +22,22 +23,23 +24,24 +25,25 +26,26 +27,27 +28,28 +29,29 +30,30 +31,31 +32,32 +33,33 +34,34 +35,35 +36,36 +37,37 +38,38 +39,39 +40,40 +41,41 +42,42 +43,43 +44,44 +45,45 +46,46 +47,47 +48,48 +49,49 +50,50 +51,51 +52,52 +53,53 +54,54 +55,55 +56,56 +57,57 +58,58 +59,59 +60,60 +61,61 +62,62 +63,63 +64,64 +65,65 +66,66 +67,67 +68,68 +69,69 +70,70 +71,71 +72,72 +73,73 +74,74 +75,75 +76,76 +77,77 +78,78 +79,79 +80,80 +81,81 +82,82 +83,83 +84,84 +85,85 +86,86 +87,87 +88,88 +89,89 +90,90 +91,91 +92,92 +93,93 +94,94 +95,95 +96,96 +97,97 +98,98 +99,99 +100,100 +101,101 +102,102 +103,103 +104,104 +105,105 +106,106 +107,107 +108,108 +109,109 +110,110 +111,111 +112,112 +113,113 +114,114 +115,115 +116,116 +117,117 +118,118 +119,119 +120,120 +121,121 +122,122 +123,123 +124,124 +125,125 +126,126 +127,127 +128,128 +129,129 +130,130 +131,131 +132,132 +133,133 +134,134 +135,135 +136,136 +137,137 +138,138 +139,139 +140,140 +141,141 +142,142 +143,143 +144,144 +145,145 +146,146 +147,147 +148,148 +149,149 +150,150 +151,151 +152,152 +153,153 +154,154 +155,155 +156,156 +157,157 +158,158 +159,159 +160,160 +161,161 +162,162 +163,163 +164,164 +165,165 +166,166 +167,167 +168,168 +169,169 +170,170 +171,171 +172,172 +173,173 +174,174 +175,175 +176,176 +177,177 +178,178 +179,179 +180,180 +181,181 +182,182 +183,183 +184,184 +185,185 +186,186 +187,187 +188,188 +189,189 +190,190 +191,191 +192,192 +193,193 +194,194 +195,195 +196,196 +197,197 +198,198 +199,199 +200,200 +201,201 +202,202 +203,203 +204,204 +205,205 +206,206 +207,207 +208,208 +209,209 +210,210 +211,211 +212,212 +213,213 +214,214 +215,215 +216,216 +217,217 +218,218 +219,219 +220,220 +221,221 +222,222 +223,223 +224,224 +225,225 +226,226 +227,227 +228,228 +229,229 +230,230 +231,231 +232,232 +233,233 +234,234 +235,235 +236,236 +237,237 +238,238 +239,239 +240,240 +241,241 +242,242 +243,243 +244,244 +245,245 +246,246 +247,247 +248,248 +249,249 +250,250 +251,251 +252,252 +253,253 +254,254 +255,255 +256,256 +257,257 +258,258 +259,259 +260,260 +261,261 +262,262 +263,263 +264,264 +265,265 +266,266 +267,267 +268,268 +269,269 +270,270 +271,271 +272,272 +273,273 +274,274 +275,275 +276,276 +277,277 +278,278 +279,279 +280,280 +281,281 +282,282 +283,283 +284,284 +285,285 +286,286 +287,287 +288,288 +289,289 +290,290 +291,291 +292,292 +293,293 +294,294 +295,295 +296,296 +297,297 +298,298 +299,299 +300,300 +301,301 +302,302 +303,303 +304,304 +305,305 +306,306 +307,307 +308,308 +309,309 +310,310 +311,311 +312,312 +313,313 +314,314 +315,315 +316,316 +317,317 +318,318 +319,319 +320,320 +321,321 +322,322 +323,323 +324,324 +325,325 +326,326 +327,327 +328,328 +329,329 +330,330 +331,331 +332,332 +333,333 +334,334 +335,335 +336,336 +337,337 +338,338 +339,339 +340,340 +341,341 +342,342 +343,343 +344,344 +345,345 +346,346 +347,347 +348,348 +349,349 +350,350 +351,351 +352,352 +353,353 +354,354 +355,355 +356,356 +357,357 +358,358 +359,359 +360,360 +361,361 +362,362 +363,363 +364,364 +365,365 +366,366 +367,367 +368,368 +369,369 +370,370 +371,371 +372,372 +373,373 +374,374 +375,375 +376,376 +377,377 +378,378 +379,379 +380,380 +381,381 +382,382 +383,383 +384,384 +385,385 +386,386 +387,387 +388,388 +389,389 +390,390 +391,391 +392,392 +393,393 +394,394 +395,395 +396,396 +397,397 +398,398 +399,399 +400,400 +401,401 +402,402 +403,403 +404,404 +405,405 +406,406 +407,407 +408,408 +409,409 +410,410 +411,411 +412,412 +413,413 +414,414 +415,415 +416,416 +417,417 +418,418 +419,419 +420,420 +421,421 +422,422 +423,423 +424,424 +425,425 +426,426 +427,427 +428,428 +429,429 +430,430 +431,431 +432,432 +433,433 +434,434 +435,435 +436,436 +437,437 +438,438 +439,439 +440,440 +441,441 +442,442 +443,443 +444,444 +445,445 +446,446 +447,447 +448,448 +449,449 +450,450 +451,451 +452,452 +453,453 +454,454 +455,455 +456,456 +457,457 +458,458 +459,459 +460,460 +461,461 +462,462 +463,463 +464,464 +465,465 +466,466 +467,467 +468,468 +469,469 +470,470 +471,471 +472,472 +473,473 +474,474 +475,475 +476,476 +477,477 +478,478 +479,479 +480,480 +481,481 +482,482 +483,483 +484,484 +485,485 +486,486 +487,487 +488,488 +489,489 +490,490 +491,491 +492,492 +493,493 +494,494 +495,495 +496,496 +497,497 +498,498 +499,499 +500,500 +501,501 +502,502 +503,503 +504,504 +505,505 +506,506 +507,507 +508,508 +509,509 +510,510 +511,511 +512,512 +513,513 +514,514 +515,515 +516,516 +517,517 +518,518 +519,519 +520,520 +521,521 +522,522 +523,523 +524,524 +525,525 +526,526 +527,527 +528,528 +529,529 +530,530 +531,531 +532,532 +533,533 +534,534 +535,535 +536,536 +537,537 +538,538 +539,539 +540,540 +541,541 +542,542 +543,543 +544,544 +545,545 +546,546 +547,547 +548,548 +549,549 +550,550 +551,551 +552,552 +553,553 +554,554 +555,555 +556,556 +557,557 +558,558 +559,559 +560,560 +561,561 +562,562 +563,563 +564,564 +565,565 +566,566 +567,567 +568,568 +569,569 +570,570 +571,571 +572,572 +573,573 +574,574 +575,575 +576,576 +577,577 +578,578 +579,579 +580,580 +581,581 +582,582 +583,583 +584,584 +585,585 +586,586 +587,587 +588,588 +589,589 +590,590 +591,591 +592,592 +593,593 +594,594 +595,595 +596,596 +597,597 +598,598 +599,599 +600,600 +601,601 +602,602 +603,603 +604,604 +605,605 +606,606 +607,607 +608,608 +609,609 +610,610 +611,611 +612,612 +613,613 +614,614 +615,615 +616,616 +617,617 +618,618 +619,619 +620,620 +621,621 +622,622 +623,623 +624,624 +625,625 +626,626 +627,627 +628,628 +629,629 +630,630 +631,631 +632,632 +633,633 +634,634 +635,635 +636,636 +637,637 +638,638 +639,639 +640,640 +641,641 +642,642 +643,643 +644,644 +645,645 +646,646 +647,647 +648,648 +649,649 +650,650 +651,651 +652,652 +653,653 +654,654 +655,655 +656,656 +657,657 +658,658 +659,659 +660,660 +661,661 +662,662 +663,663 +664,664 +665,665 +666,666 +667,667 +668,668 +669,669 +670,670 +671,671 +672,672 +673,673 +674,674 +675,675 +676,676 +677,677 +678,678 +679,679 +680,680 +681,681 +682,682 +683,683 +684,684 +685,685 +686,686 +687,687 +688,688 +689,689 +690,690 +691,691 +692,692 +693,693 +694,694 +695,695 +696,696 +697,697 +698,698 +699,699 +700,700 +701,701 +702,702 +703,703 +704,704 +705,705 +706,706 +707,707 +708,708 +709,709 +710,710 +711,711 +712,712 +713,713 +714,714 +715,715 +716,716 +717,717 +718,718 +719,719 +720,720 +721,721 +722,722 +723,723 +724,724 +725,725 +726,726 +727,727 +728,728 +729,729 +730,730 +731,731 +732,732 +733,733 +734,734 +735,735 +736,736 +737,737 +738,738 +739,739 +740,740 +741,741 +742,742 +743,743 +744,744 +745,745 +746,746 +747,747 +748,748 +749,749 +750,750 +751,751 +752,752 +753,753 +754,754 +755,755 +756,756 +757,757 +758,758 +759,759 +760,760 +761,761 +762,762 +763,763 +764,764 +765,765 +766,766 +767,767 +768,768 +769,769 +770,770 +771,771 +772,772 +773,773 +774,774 +775,775 +776,776 +777,777 +778,778 +779,779 +780,780 +781,781 +782,782 +783,783 +10 +0,784 +1,785 +2,786 +3,787 +4,788 +5,789 +6,790 +7,791 +8,792 +9,793 +0,0 +1,0 +2,0 +3,0 +4,0 +5,0 +6,0 +7,0 +8,0 +9,0 +10,0 +11,0 +12,0 +13,0 +14,0 +15,0 +16,0 +17,0 +18,0 +19,0 +20,0 +21,0 +22,0 +23,0 +24,0 +25,0 +26,0 +27,0 +28,0 +29,0 +30,0 +31,0 +32,0 +33,0 +34,0 +35,0 +36,0 +37,0 +38,0 +39,0 +40,0 +41,0 +42,0 +43,0 +44,0 +45,0 +46,0 +47,0 +48,0 +49,0 +50,0 +51,0 +52,0 +53,0 +54,0 +55,0 +56,0 +57,0 +58,0 +59,0 +60,0 +61,0 +62,0 +63,0 +64,0 +65,0 +66,0 +67,0 +68,0 +69,0 +70,0 +71,0 +72,0 +73,0 +74,0 +75,0 +76,0 +77,0 +78,0 +79,0 +80,0 +81,0 +82,0 +83,0 +84,0 +85,0 +86,0 +87,0 +88,0 +89,0 +90,0 +91,0 +92,0 +93,0 +94,0 +95,0 +96,0 +97,0 +98,0 +99,0 +100,0 +101,0 +102,0 +103,0 +104,0 +105,0 +106,0 +107,0 +108,0 +109,0 +110,0 +111,0 +112,0 +113,0 +114,0 +115,0 +116,0 +117,0 +118,0 +119,0 +120,0 +121,0 +122,0 +123,0 +124,0 +125,0 +126,0 +127,0 +128,0 +129,0 +130,0 +131,0 +132,0 +133,0 +134,0 +135,0 +136,0 +137,0 +138,0 +139,0 +140,0 +141,0 +142,0 +143,0 +144,0 +145,0 +146,0 +147,0 +148,0 +149,0 +150,0 +151,0 +152,0.007061887254901961 +153,0.7403952205882354 +154,0.99921875 +155,0.8541207107843137 +156,0.09725796568627451 +157,0 +158,0 +159,0 +160,0 +161,0 +162,0 +163,0 +164,0 +165,0 +166,0 +167,0 +168,0 +169,0 +170,0 +171,0 +172,0 +173,0 +174,0 +175,0 +176,0 +177,0 +178,0 +179,0 +180,0.2188265931372549 +181,0.9913756127450981 +182,0.9913756127450981 +183,0.9913756127450981 +184,0.19137561274509804 +185,0 +186,0 +187,0 +188,0 +189,0 +190,0 +191,0 +192,0 +193,0 +194,0 +195,0 +196,0 +197,0 +198,0 +199,0 +200,0 +201,0 +202,0 +203,0 +204,0 +205,0 +206,0 +207,0 +208,0.2188265931372549 +209,0.9913756127450981 +210,0.9913756127450981 +211,0.9913756127450981 +212,0.19137561274509804 +213,0 +214,0 +215,0 +216,0 +217,0 +218,0 +219,0 +220,0 +221,0 +222,0 +223,0 +224,0 +225,0 +226,0 +227,0 +228,0 +229,0 +230,0 +231,0 +232,0 +233,0 +234,0 +235,0 +236,0.2188265931372549 +237,0.9913756127450981 +238,0.9913756127450981 +239,0.9913756127450981 +240,0.19137561274509804 +241,0 +242,0 +243,0 +244,0 +245,0 +246,0 +247,0 +248,0 +249,0 +250,0 +251,0 +252,0 +253,0 +254,0 +255,0 +256,0 +257,0 +258,0 +259,0 +260,0 +261,0 +262,0 +263,0 +264,0.2188265931372549 +265,0.9913756127450981 +266,0.9913756127450981 +267,0.9913756127450981 +268,0.19137561274509804 +269,0 +270,0 +271,0 +272,0 +273,0 +274,0 +275,0 +276,0 +277,0 +278,0 +279,0 +280,0 +281,0 +282,0 +283,0 +284,0 +285,0 +286,0 +287,0 +288,0 +289,0 +290,0 +291,0 +292,0.2188265931372549 +293,0.9913756127450981 +294,0.9913756127450981 +295,0.9913756127450981 +296,0.19137561274509804 +297,0 +298,0 +299,0 +300,0 +301,0 +302,0 +303,0 +304,0 +305,0 +306,0 +307,0 +308,0 +309,0 +310,0 +311,0 +312,0 +313,0 +314,0 +315,0 +316,0 +317,0 +318,0 +319,0 +320,0.2188265931372549 +321,0.9913756127450981 +322,0.9913756127450981 +323,0.9913756127450981 +324,0.19137561274509804 +325,0 +326,0 +327,0 +328,0 +329,0 +330,0 +331,0 +332,0 +333,0 +334,0 +335,0 +336,0 +337,0 +338,0 +339,0 +340,0 +341,0 +342,0 +343,0 +344,0 +345,0 +346,0 +347,0 +348,0.3168658088235294 +349,0.9913756127450981 +350,0.9913756127450981 +351,0.9913756127450981 +352,0.19137561274509804 +353,0 +354,0 +355,0 +356,0 +357,0 +358,0 +359,0 +360,0 +361,0 +362,0 +363,0 +364,0 +365,0 +366,0 +367,0 +368,0 +369,0 +370,0 +371,0 +372,0 +373,0 +374,0 +375,0 +376,0.7051011029411766 +377,0.9913756127450981 +378,0.9913756127450981 +379,0.9913756127450981 +380,0.19137561274509804 +381,0 +382,0 +383,0 +384,0 +385,0 +386,0 +387,0 +388,0 +389,0 +390,0 +391,0 +392,0 +393,0 +394,0 +395,0 +396,0 +397,0 +398,0 +399,0 +400,0 +401,0 +402,0 +403,0 +404,0.7051011029411766 +405,0.9913756127450981 +406,0.9913756127450981 +407,0.9913756127450981 +408,0.19137561274509804 +409,0 +410,0 +411,0 +412,0 +413,0 +414,0 +415,0 +416,0 +417,0 +418,0 +419,0 +420,0 +421,0 +422,0 +423,0 +424,0 +425,0 +426,0 +427,0 +428,0 +429,0 +430,0 +431,0 +432,0.7051011029411766 +433,0.9913756127450981 +434,0.9913756127450981 +435,0.9913756127450981 +436,0.19137561274509804 +437,0 +438,0 +439,0 +440,0 +441,0 +442,0 +443,0 +444,0 +445,0 +446,0 +447,0 +448,0 +449,0 +450,0 +451,0 +452,0 +453,0 +454,0 +455,0 +456,0 +457,0 +458,0 +459,0 +460,0.7051011029411766 +461,0.9913756127450981 +462,0.9913756127450981 +463,0.9913756127450981 +464,0.19137561274509804 +465,0 +466,0 +467,0 +468,0 +469,0 +470,0 +471,0 +472,0 +473,0 +474,0 +475,0 +476,0 +477,0 +478,0 +479,0 +480,0 +481,0 +482,0 +483,0 +484,0 +485,0 +486,0 +487,0 +488,0.7051011029411766 +489,0.9913756127450981 +490,0.9913756127450981 +491,0.8501991421568628 +492,0.09725796568627451 +493,0 +494,0 +495,0 +496,0 +497,0 +498,0 +499,0 +500,0 +501,0 +502,0 +503,0 +504,0 +505,0 +506,0 +507,0 +508,0 +509,0 +510,0 +511,0 +512,0 +513,0 +514,0 +515,0.06980698529411765 +516,0.803140318627451 +517,0.9913756127450981 +518,0.9913756127450981 +519,0.7482383578431373 +520,0.034512867647058826 +521,0 +522,0 +523,0 +524,0 +525,0 +526,0 +527,0 +528,0 +529,0 +530,0 +531,0 +532,0 +533,0 +534,0 +535,0 +536,0 +537,0 +538,0 +539,0 +540,0 +541,0 +542,0 +543,0.195297181372549 +544,0.9913756127450981 +545,0.9913756127450981 +546,0.9913756127450981 +547,0.7011795343137255 +548,0 +549,0 +550,0 +551,0 +552,0 +553,0 +554,0 +555,0 +556,0 +557,0 +558,0 +559,0 +560,0 +561,0 +562,0 +563,0 +564,0 +565,0 +566,0 +567,0 +568,0 +569,0 +570,0 +571,0.195297181372549 +572,0.9913756127450981 +573,0.9913756127450981 +574,0.9913756127450981 +575,0.27372855392156864 +576,0 +577,0 +578,0 +579,0 +580,0 +581,0 +582,0 +583,0 +584,0 +585,0 +586,0 +587,0 +588,0 +589,0 +590,0 +591,0 +592,0 +593,0 +594,0 +595,0 +596,0 +597,0 +598,0 +599,0.195297181372549 +600,0.9913756127450981 +601,0.9913756127450981 +602,0.8815716911764706 +603,0.12470894607843137 +604,0 +605,0 +606,0 +607,0 +608,0 +609,0 +610,0 +611,0 +612,0 +613,0 +614,0 +615,0 +616,0 +617,0 +618,0 +619,0 +620,0 +621,0 +622,0 +623,0 +624,0 +625,0 +626,0 +627,0.6462775735294118 +628,0.9913756127450981 +629,0.9913756127450981 +630,0.7247089460784314 +631,0 +632,0 +633,0 +634,0 +635,0 +636,0 +637,0 +638,0 +639,0 +640,0 +641,0 +642,0 +643,0 +644,0 +645,0 +646,0 +647,0 +648,0 +649,0 +650,0 +651,0 +652,0 +653,0 +654,0 +655,0.2188265931372549 +656,0.9913756127450981 +657,0.9913756127450981 +658,0.7247089460784314 +659,0 +660,0 +661,0 +662,0 +663,0 +664,0 +665,0 +666,0 +667,0 +668,0 +669,0 +670,0 +671,0 +672,0 +673,0 +674,0 +675,0 +676,0 +677,0 +678,0 +679,0 +680,0 +681,0 +682,0 +683,0.10117953431372549 +684,0.8501991421568628 +685,0.9913756127450981 +686,0.4894148284313725 +687,0 +688,0 +689,0 +690,0 +691,0 +692,0 +693,0 +694,0 +695,0 +696,0 +697,0 +698,0 +699,0 +700,0 +701,0 +702,0 +703,0 +704,0 +705,0 +706,0 +707,0 +708,0 +709,0 +710,0 +711,0 +712,0 +713,0 +714,0 +715,0 +716,0 +717,0 +718,0 +719,0 +720,0 +721,0 +722,0 +723,0 +724,0 +725,0 +726,0 +727,0 +728,0 +729,0 +730,0 +731,0 +732,0 +733,0 +734,0 +735,0 +736,0 +737,0 +738,0 +739,0 +740,0 +741,0 +742,0 +743,0 +744,0 +745,0 +746,0 +747,0 +748,0 +749,0 +750,0 +751,0 +752,0 +753,0 +754,0 +755,0 +756,0 +757,0 +758,0 +759,0 +760,0 +761,0 +762,0 +763,0 +764,0 +765,0 +766,0 +767,0 +768,0 +769,0 +770,0 +771,0 +772,0 +773,0 +774,0 +775,0 +776,0 +777,0 +778,0 +779,0 +780,0 +781,0 +782,0 +783,0 +1678,-1.0000000000 +1679,-1.0000000000 +1680,-1.0000000000 +1681,-1.0000000000 +1682,-1.0000000000 +1683,-1.0000000000 +1684,-1.0000000000 +1685,-1.0000000000 +1686,-1.0000000000 +1687,-1.0000000000 +1688,-1.0000000000 +1689,-1.0000000000 +1690,-1.0000000000 +1691,-1.0000000000 +1692,-1.0000000000 +1693,-1.0000000000 +1694,-1.0000000000 +1695,-1.0000000000 +1696,-1.0000000000 +1697,-1.0000000000 +1698,-1.0000000000 +1699,-1.0000000000 +1700,-1.0000000000 +1701,-1.0000000000 +1702,-1.0000000000 +1703,-1.0000000000 +1704,-1.0000000000 +1705,-1.0000000000 +1706,-1.0000000000 +1707,-1.0000000000 +1708,-1.0000000000 +1709,-1.0000000000 +1710,-1.0000000000 +1711,-1.0000000000 +1712,-1.0000000000 +1713,-1.0000000000 +1714,-1.0000000000 +1715,-1.0000000000 +1716,-1.0000000000 +1717,-1.0000000000 +1718,-1.0000000000 +1719,-1.0000000000 +1720,-1.0000000000 +1721,-1.0000000000 +1722,-1.0000000000 +1723,-1.0000000000 +1724,-1.0000000000 +1725,-1.0000000000 +1726,-1.0000000000 +1727,-1.0000000000 +1928,-1.0000000000 +1929,-1.0000000000 +1930,-1.0000000000 +1931,-1.0000000000 +1932,-1.0000000000 +1933,-1.0000000000 +1934,-1.0000000000 +1935,-1.0000000000 +1936,-1.0000000000 +1937,-1.0000000000 +1938,-1.0000000000 +1939,-1.0000000000 +1940,-1.0000000000 +1941,-1.0000000000 +1942,-1.0000000000 +1943,-1.0000000000 +1944,-1.0000000000 +1945,-1.0000000000 +1946,-1.0000000000 +1947,-1.0000000000 +1948,-1.0000000000 +1949,-1.0000000000 +1950,-1.0000000000 +1951,-1.0000000000 +1952,-1.0000000000 +1953,-1.0000000000 +1954,-1.0000000000 +1955,-1.0000000000 +1956,-1.0000000000 +1957,-1.0000000000 +1958,-1.0000000000 +1959,-1.0000000000 +1960,-1.0000000000 +1961,-1.0000000000 +1962,-1.0000000000 +1963,-1.0000000000 +1964,-1.0000000000 +1965,-1.0000000000 +1966,-1.0000000000 +1967,-1.0000000000 +1968,-1.0000000000 +1969,-1.0000000000 +1970,-1.0000000000 +1971,-1.0000000000 +1972,-1.0000000000 +1973,-1.0000000000 +1974,-1.0000000000 +1975,-1.0000000000 +1976,-1.0000000000 +1977,-1.0000000000 +2178,-1.0000000000 +2179,-1.0000000000 +2180,-1.0000000000 +2181,-1.0000000000 +2182,-1.0000000000 +2183,-1.0000000000 +2184,-1.0000000000 +2185,-1.0000000000 +2186,-1.0000000000 +2187,-1.0000000000 +2188,-1.0000000000 +2189,-1.0000000000 +2190,-1.0000000000 +2191,-1.0000000000 +2192,-1.0000000000 +2193,-1.0000000000 +2194,-1.0000000000 +2195,-1.0000000000 +2196,-1.0000000000 +2197,-1.0000000000 +2198,-1.0000000000 +2199,-1.0000000000 +2200,-1.0000000000 +2201,-1.0000000000 +2202,-1.0000000000 +2203,-1.0000000000 +2204,-1.0000000000 +2205,-1.0000000000 +2206,-1.0000000000 +2207,-1.0000000000 +2208,-1.0000000000 +2209,-1.0000000000 +2210,-1.0000000000 +2211,-1.0000000000 +2212,-1.0000000000 +2213,-1.0000000000 +2214,-1.0000000000 +2215,-1.0000000000 +2216,-1.0000000000 +2217,-1.0000000000 +2218,-1.0000000000 +2219,-1.0000000000 +2220,-1.0000000000 +2221,-1.0000000000 +2222,-1.0000000000 +2223,-1.0000000000 +2224,-1.0000000000 +2225,-1.0000000000 +2226,-1.0000000000 +2227,-1.0000000000 +2428,-1.0000000000 +2429,-1.0000000000 +2430,-1.0000000000 +2431,-1.0000000000 +2432,-1.0000000000 +2433,-1.0000000000 +2434,-1.0000000000 +2435,-1.0000000000 +2436,-1.0000000000 +2437,-1.0000000000 +2438,-1.0000000000 +2439,-1.0000000000 +2440,-1.0000000000 +2441,-1.0000000000 +2442,-1.0000000000 +2443,-1.0000000000 +2444,-1.0000000000 +2445,-1.0000000000 +2446,-1.0000000000 +2447,-1.0000000000 +2448,-1.0000000000 +2449,-1.0000000000 +2450,-1.0000000000 +2451,-1.0000000000 +2452,-1.0000000000 +2453,-1.0000000000 +2454,-1.0000000000 +2455,-1.0000000000 +2456,-1.0000000000 +2457,-1.0000000000 +2458,-1.0000000000 +2459,-1.0000000000 +2460,-1.0000000000 +2461,-1.0000000000 +2462,-1.0000000000 +2463,-1.0000000000 +2464,-1.0000000000 +2465,-1.0000000000 +2466,-1.0000000000 +2467,-1.0000000000 +2468,-1.0000000000 +2469,-1.0000000000 +2470,-1.0000000000 +2471,-1.0000000000 +2472,-1.0000000000 +2473,-1.0000000000 +2474,-1.0000000000 +2475,-1.0000000000 +2476,-1.0000000000 +2477,-1.0000000000 +2598,-1.0000000000 +2599,-1.0000000000 +2600,-1.0000000000 +2601,-1.0000000000 +2602,-1.0000000000 +2603,-1.0000000000 +2604,-1.0000000000 +2605,-1.0000000000 +2606,-1.0000000000 +2607,-1.0000000000 +2648,-1.0000000000 +2649,-1.0000000000 +2650,-1.0000000000 +2651,-1.0000000000 +2652,-1.0000000000 +2653,-1.0000000000 +2654,-1.0000000000 +2655,-1.0000000000 +2656,-1.0000000000 +2657,-1.0000000000 +0,0.00078125 +1,0.00078125 +2,0.00078125 +3,0.00078125 +4,0.00078125 +5,0.00078125 +6,0.00078125 +7,0.00078125 +8,0.00078125 +9,0.00078125 +10,0.00078125 +11,0.00078125 +12,0.00078125 +13,0.00078125 +14,0.00078125 +15,0.00078125 +16,0.00078125 +17,0.00078125 +18,0.00078125 +19,0.00078125 +20,0.00078125 +21,0.00078125 +22,0.00078125 +23,0.00078125 +24,0.00078125 +25,0.00078125 +26,0.00078125 +27,0.00078125 +28,0.00078125 +29,0.00078125 +30,0.00078125 +31,0.00078125 +32,0.00078125 +33,0.00078125 +34,0.00078125 +35,0.00078125 +36,0.00078125 +37,0.00078125 +38,0.00078125 +39,0.00078125 +40,0.00078125 +41,0.00078125 +42,0.00078125 +43,0.00078125 +44,0.00078125 +45,0.00078125 +46,0.00078125 +47,0.00078125 +48,0.00078125 +49,0.00078125 +50,0.00078125 +51,0.00078125 +52,0.00078125 +53,0.00078125 +54,0.00078125 +55,0.00078125 +56,0.00078125 +57,0.00078125 +58,0.00078125 +59,0.00078125 +60,0.00078125 +61,0.00078125 +62,0.00078125 +63,0.00078125 +64,0.00078125 +65,0.00078125 +66,0.00078125 +67,0.00078125 +68,0.00078125 +69,0.00078125 +70,0.00078125 +71,0.00078125 +72,0.00078125 +73,0.00078125 +74,0.00078125 +75,0.00078125 +76,0.00078125 +77,0.00078125 +78,0.00078125 +79,0.00078125 +80,0.00078125 +81,0.00078125 +82,0.00078125 +83,0.00078125 +84,0.00078125 +85,0.00078125 +86,0.00078125 +87,0.00078125 +88,0.00078125 +89,0.00078125 +90,0.00078125 +91,0.00078125 +92,0.00078125 +93,0.00078125 +94,0.00078125 +95,0.00078125 +96,0.00078125 +97,0.00078125 +98,0.00078125 +99,0.00078125 +100,0.00078125 +101,0.00078125 +102,0.00078125 +103,0.00078125 +104,0.00078125 +105,0.00078125 +106,0.00078125 +107,0.00078125 +108,0.00078125 +109,0.00078125 +110,0.00078125 +111,0.00078125 +112,0.00078125 +113,0.00078125 +114,0.00078125 +115,0.00078125 +116,0.00078125 +117,0.00078125 +118,0.00078125 +119,0.00078125 +120,0.00078125 +121,0.00078125 +122,0.00078125 +123,0.00078125 +124,0.00078125 +125,0.00078125 +126,0.00078125 +127,0.00078125 +128,0.00078125 +129,0.00078125 +130,0.00078125 +131,0.00078125 +132,0.00078125 +133,0.00078125 +134,0.00078125 +135,0.00078125 +136,0.00078125 +137,0.00078125 +138,0.00078125 +139,0.00078125 +140,0.00078125 +141,0.00078125 +142,0.00078125 +143,0.00078125 +144,0.00078125 +145,0.00078125 +146,0.00078125 +147,0.00078125 +148,0.00078125 +149,0.00078125 +150,0.00078125 +151,0.00078125 +152,0.008624387254901961 +153,0.7419577205882353 +154,1 +155,0.8556832107843136 +156,0.0988204656862745 +157,0.00078125 +158,0.00078125 +159,0.00078125 +160,0.00078125 +161,0.00078125 +162,0.00078125 +163,0.00078125 +164,0.00078125 +165,0.00078125 +166,0.00078125 +167,0.00078125 +168,0.00078125 +169,0.00078125 +170,0.00078125 +171,0.00078125 +172,0.00078125 +173,0.00078125 +174,0.00078125 +175,0.00078125 +176,0.00078125 +177,0.00078125 +178,0.00078125 +179,0.00078125 +180,0.2203890931372549 +181,0.992938112745098 +182,0.992938112745098 +183,0.992938112745098 +184,0.19293811274509806 +185,0.00078125 +186,0.00078125 +187,0.00078125 +188,0.00078125 +189,0.00078125 +190,0.00078125 +191,0.00078125 +192,0.00078125 +193,0.00078125 +194,0.00078125 +195,0.00078125 +196,0.00078125 +197,0.00078125 +198,0.00078125 +199,0.00078125 +200,0.00078125 +201,0.00078125 +202,0.00078125 +203,0.00078125 +204,0.00078125 +205,0.00078125 +206,0.00078125 +207,0.00078125 +208,0.2203890931372549 +209,0.992938112745098 +210,0.992938112745098 +211,0.992938112745098 +212,0.19293811274509806 +213,0.00078125 +214,0.00078125 +215,0.00078125 +216,0.00078125 +217,0.00078125 +218,0.00078125 +219,0.00078125 +220,0.00078125 +221,0.00078125 +222,0.00078125 +223,0.00078125 +224,0.00078125 +225,0.00078125 +226,0.00078125 +227,0.00078125 +228,0.00078125 +229,0.00078125 +230,0.00078125 +231,0.00078125 +232,0.00078125 +233,0.00078125 +234,0.00078125 +235,0.00078125 +236,0.2203890931372549 +237,0.992938112745098 +238,0.992938112745098 +239,0.992938112745098 +240,0.19293811274509806 +241,0.00078125 +242,0.00078125 +243,0.00078125 +244,0.00078125 +245,0.00078125 +246,0.00078125 +247,0.00078125 +248,0.00078125 +249,0.00078125 +250,0.00078125 +251,0.00078125 +252,0.00078125 +253,0.00078125 +254,0.00078125 +255,0.00078125 +256,0.00078125 +257,0.00078125 +258,0.00078125 +259,0.00078125 +260,0.00078125 +261,0.00078125 +262,0.00078125 +263,0.00078125 +264,0.2203890931372549 +265,0.992938112745098 +266,0.992938112745098 +267,0.992938112745098 +268,0.19293811274509806 +269,0.00078125 +270,0.00078125 +271,0.00078125 +272,0.00078125 +273,0.00078125 +274,0.00078125 +275,0.00078125 +276,0.00078125 +277,0.00078125 +278,0.00078125 +279,0.00078125 +280,0.00078125 +281,0.00078125 +282,0.00078125 +283,0.00078125 +284,0.00078125 +285,0.00078125 +286,0.00078125 +287,0.00078125 +288,0.00078125 +289,0.00078125 +290,0.00078125 +291,0.00078125 +292,0.2203890931372549 +293,0.992938112745098 +294,0.992938112745098 +295,0.992938112745098 +296,0.19293811274509806 +297,0.00078125 +298,0.00078125 +299,0.00078125 +300,0.00078125 +301,0.00078125 +302,0.00078125 +303,0.00078125 +304,0.00078125 +305,0.00078125 +306,0.00078125 +307,0.00078125 +308,0.00078125 +309,0.00078125 +310,0.00078125 +311,0.00078125 +312,0.00078125 +313,0.00078125 +314,0.00078125 +315,0.00078125 +316,0.00078125 +317,0.00078125 +318,0.00078125 +319,0.00078125 +320,0.2203890931372549 +321,0.992938112745098 +322,0.992938112745098 +323,0.992938112745098 +324,0.19293811274509806 +325,0.00078125 +326,0.00078125 +327,0.00078125 +328,0.00078125 +329,0.00078125 +330,0.00078125 +331,0.00078125 +332,0.00078125 +333,0.00078125 +334,0.00078125 +335,0.00078125 +336,0.00078125 +337,0.00078125 +338,0.00078125 +339,0.00078125 +340,0.00078125 +341,0.00078125 +342,0.00078125 +343,0.00078125 +344,0.00078125 +345,0.00078125 +346,0.00078125 +347,0.00078125 +348,0.3184283088235294 +349,0.992938112745098 +350,0.992938112745098 +351,0.992938112745098 +352,0.19293811274509806 +353,0.00078125 +354,0.00078125 +355,0.00078125 +356,0.00078125 +357,0.00078125 +358,0.00078125 +359,0.00078125 +360,0.00078125 +361,0.00078125 +362,0.00078125 +363,0.00078125 +364,0.00078125 +365,0.00078125 +366,0.00078125 +367,0.00078125 +368,0.00078125 +369,0.00078125 +370,0.00078125 +371,0.00078125 +372,0.00078125 +373,0.00078125 +374,0.00078125 +375,0.00078125 +376,0.7066636029411765 +377,0.992938112745098 +378,0.992938112745098 +379,0.992938112745098 +380,0.19293811274509806 +381,0.00078125 +382,0.00078125 +383,0.00078125 +384,0.00078125 +385,0.00078125 +386,0.00078125 +387,0.00078125 +388,0.00078125 +389,0.00078125 +390,0.00078125 +391,0.00078125 +392,0.00078125 +393,0.00078125 +394,0.00078125 +395,0.00078125 +396,0.00078125 +397,0.00078125 +398,0.00078125 +399,0.00078125 +400,0.00078125 +401,0.00078125 +402,0.00078125 +403,0.00078125 +404,0.7066636029411765 +405,0.992938112745098 +406,0.992938112745098 +407,0.992938112745098 +408,0.19293811274509806 +409,0.00078125 +410,0.00078125 +411,0.00078125 +412,0.00078125 +413,0.00078125 +414,0.00078125 +415,0.00078125 +416,0.00078125 +417,0.00078125 +418,0.00078125 +419,0.00078125 +420,0.00078125 +421,0.00078125 +422,0.00078125 +423,0.00078125 +424,0.00078125 +425,0.00078125 +426,0.00078125 +427,0.00078125 +428,0.00078125 +429,0.00078125 +430,0.00078125 +431,0.00078125 +432,0.7066636029411765 +433,0.992938112745098 +434,0.992938112745098 +435,0.992938112745098 +436,0.19293811274509806 +437,0.00078125 +438,0.00078125 +439,0.00078125 +440,0.00078125 +441,0.00078125 +442,0.00078125 +443,0.00078125 +444,0.00078125 +445,0.00078125 +446,0.00078125 +447,0.00078125 +448,0.00078125 +449,0.00078125 +450,0.00078125 +451,0.00078125 +452,0.00078125 +453,0.00078125 +454,0.00078125 +455,0.00078125 +456,0.00078125 +457,0.00078125 +458,0.00078125 +459,0.00078125 +460,0.7066636029411765 +461,0.992938112745098 +462,0.992938112745098 +463,0.992938112745098 +464,0.19293811274509806 +465,0.00078125 +466,0.00078125 +467,0.00078125 +468,0.00078125 +469,0.00078125 +470,0.00078125 +471,0.00078125 +472,0.00078125 +473,0.00078125 +474,0.00078125 +475,0.00078125 +476,0.00078125 +477,0.00078125 +478,0.00078125 +479,0.00078125 +480,0.00078125 +481,0.00078125 +482,0.00078125 +483,0.00078125 +484,0.00078125 +485,0.00078125 +486,0.00078125 +487,0.00078125 +488,0.7066636029411765 +489,0.992938112745098 +490,0.992938112745098 +491,0.8517616421568627 +492,0.0988204656862745 +493,0.00078125 +494,0.00078125 +495,0.00078125 +496,0.00078125 +497,0.00078125 +498,0.00078125 +499,0.00078125 +500,0.00078125 +501,0.00078125 +502,0.00078125 +503,0.00078125 +504,0.00078125 +505,0.00078125 +506,0.00078125 +507,0.00078125 +508,0.00078125 +509,0.00078125 +510,0.00078125 +511,0.00078125 +512,0.00078125 +513,0.00078125 +514,0.00078125 +515,0.07136948529411764 +516,0.804702818627451 +517,0.992938112745098 +518,0.992938112745098 +519,0.7498008578431372 +520,0.03607536764705882 +521,0.00078125 +522,0.00078125 +523,0.00078125 +524,0.00078125 +525,0.00078125 +526,0.00078125 +527,0.00078125 +528,0.00078125 +529,0.00078125 +530,0.00078125 +531,0.00078125 +532,0.00078125 +533,0.00078125 +534,0.00078125 +535,0.00078125 +536,0.00078125 +537,0.00078125 +538,0.00078125 +539,0.00078125 +540,0.00078125 +541,0.00078125 +542,0.00078125 +543,0.19685968137254903 +544,0.992938112745098 +545,0.992938112745098 +546,0.992938112745098 +547,0.7027420343137254 +548,0.00078125 +549,0.00078125 +550,0.00078125 +551,0.00078125 +552,0.00078125 +553,0.00078125 +554,0.00078125 +555,0.00078125 +556,0.00078125 +557,0.00078125 +558,0.00078125 +559,0.00078125 +560,0.00078125 +561,0.00078125 +562,0.00078125 +563,0.00078125 +564,0.00078125 +565,0.00078125 +566,0.00078125 +567,0.00078125 +568,0.00078125 +569,0.00078125 +570,0.00078125 +571,0.19685968137254903 +572,0.992938112745098 +573,0.992938112745098 +574,0.992938112745098 +575,0.27529105392156866 +576,0.00078125 +577,0.00078125 +578,0.00078125 +579,0.00078125 +580,0.00078125 +581,0.00078125 +582,0.00078125 +583,0.00078125 +584,0.00078125 +585,0.00078125 +586,0.00078125 +587,0.00078125 +588,0.00078125 +589,0.00078125 +590,0.00078125 +591,0.00078125 +592,0.00078125 +593,0.00078125 +594,0.00078125 +595,0.00078125 +596,0.00078125 +597,0.00078125 +598,0.00078125 +599,0.19685968137254903 +600,0.992938112745098 +601,0.992938112745098 +602,0.8831341911764705 +603,0.12627144607843138 +604,0.00078125 +605,0.00078125 +606,0.00078125 +607,0.00078125 +608,0.00078125 +609,0.00078125 +610,0.00078125 +611,0.00078125 +612,0.00078125 +613,0.00078125 +614,0.00078125 +615,0.00078125 +616,0.00078125 +617,0.00078125 +618,0.00078125 +619,0.00078125 +620,0.00078125 +621,0.00078125 +622,0.00078125 +623,0.00078125 +624,0.00078125 +625,0.00078125 +626,0.00078125 +627,0.6478400735294118 +628,0.992938112745098 +629,0.992938112745098 +630,0.7262714460784313 +631,0.00078125 +632,0.00078125 +633,0.00078125 +634,0.00078125 +635,0.00078125 +636,0.00078125 +637,0.00078125 +638,0.00078125 +639,0.00078125 +640,0.00078125 +641,0.00078125 +642,0.00078125 +643,0.00078125 +644,0.00078125 +645,0.00078125 +646,0.00078125 +647,0.00078125 +648,0.00078125 +649,0.00078125 +650,0.00078125 +651,0.00078125 +652,0.00078125 +653,0.00078125 +654,0.00078125 +655,0.2203890931372549 +656,0.992938112745098 +657,0.992938112745098 +658,0.7262714460784313 +659,0.00078125 +660,0.00078125 +661,0.00078125 +662,0.00078125 +663,0.00078125 +664,0.00078125 +665,0.00078125 +666,0.00078125 +667,0.00078125 +668,0.00078125 +669,0.00078125 +670,0.00078125 +671,0.00078125 +672,0.00078125 +673,0.00078125 +674,0.00078125 +675,0.00078125 +676,0.00078125 +677,0.00078125 +678,0.00078125 +679,0.00078125 +680,0.00078125 +681,0.00078125 +682,0.00078125 +683,0.10274203431372549 +684,0.8517616421568627 +685,0.992938112745098 +686,0.49097732843137254 +687,0.00078125 +688,0.00078125 +689,0.00078125 +690,0.00078125 +691,0.00078125 +692,0.00078125 +693,0.00078125 +694,0.00078125 +695,0.00078125 +696,0.00078125 +697,0.00078125 +698,0.00078125 +699,0.00078125 +700,0.00078125 +701,0.00078125 +702,0.00078125 +703,0.00078125 +704,0.00078125 +705,0.00078125 +706,0.00078125 +707,0.00078125 +708,0.00078125 +709,0.00078125 +710,0.00078125 +711,0.00078125 +712,0.00078125 +713,0.00078125 +714,0.00078125 +715,0.00078125 +716,0.00078125 +717,0.00078125 +718,0.00078125 +719,0.00078125 +720,0.00078125 +721,0.00078125 +722,0.00078125 +723,0.00078125 +724,0.00078125 +725,0.00078125 +726,0.00078125 +727,0.00078125 +728,0.00078125 +729,0.00078125 +730,0.00078125 +731,0.00078125 +732,0.00078125 +733,0.00078125 +734,0.00078125 +735,0.00078125 +736,0.00078125 +737,0.00078125 +738,0.00078125 +739,0.00078125 +740,0.00078125 +741,0.00078125 +742,0.00078125 +743,0.00078125 +744,0.00078125 +745,0.00078125 +746,0.00078125 +747,0.00078125 +748,0.00078125 +749,0.00078125 +750,0.00078125 +751,0.00078125 +752,0.00078125 +753,0.00078125 +754,0.00078125 +755,0.00078125 +756,0.00078125 +757,0.00078125 +758,0.00078125 +759,0.00078125 +760,0.00078125 +761,0.00078125 +762,0.00078125 +763,0.00078125 +764,0.00078125 +765,0.00078125 +766,0.00078125 +767,0.00078125 +768,0.00078125 +769,0.00078125 +770,0.00078125 +771,0.00078125 +772,0.00078125 +773,0.00078125 +774,0.00078125 +775,0.00078125 +776,0.00078125 +777,0.00078125 +778,0.00078125 +779,0.00078125 +780,0.00078125 +781,0.00078125 +782,0.00078125 +783,0.00078125 +1678,1.0000000000 +1679,1.0000000000 +1680,1.0000000000 +1681,1.0000000000 +1682,1.0000000000 +1683,1.0000000000 +1684,1.0000000000 +1685,1.0000000000 +1686,1.0000000000 +1687,1.0000000000 +1688,1.0000000000 +1689,1.0000000000 +1690,1.0000000000 +1691,1.0000000000 +1692,1.0000000000 +1693,1.0000000000 +1694,1.0000000000 +1695,1.0000000000 +1696,1.0000000000 +1697,1.0000000000 +1698,1.0000000000 +1699,1.0000000000 +1700,1.0000000000 +1701,1.0000000000 +1702,1.0000000000 +1703,1.0000000000 +1704,1.0000000000 +1705,1.0000000000 +1706,1.0000000000 +1707,1.0000000000 +1708,1.0000000000 +1709,1.0000000000 +1710,1.0000000000 +1711,1.0000000000 +1712,1.0000000000 +1713,1.0000000000 +1714,1.0000000000 +1715,1.0000000000 +1716,1.0000000000 +1717,1.0000000000 +1718,1.0000000000 +1719,1.0000000000 +1720,1.0000000000 +1721,1.0000000000 +1722,1.0000000000 +1723,1.0000000000 +1724,1.0000000000 +1725,1.0000000000 +1726,1.0000000000 +1727,1.0000000000 +1928,1.0000000000 +1929,1.0000000000 +1930,1.0000000000 +1931,1.0000000000 +1932,1.0000000000 +1933,1.0000000000 +1934,1.0000000000 +1935,1.0000000000 +1936,1.0000000000 +1937,1.0000000000 +1938,1.0000000000 +1939,1.0000000000 +1940,1.0000000000 +1941,1.0000000000 +1942,1.0000000000 +1943,1.0000000000 +1944,1.0000000000 +1945,1.0000000000 +1946,1.0000000000 +1947,1.0000000000 +1948,1.0000000000 +1949,1.0000000000 +1950,1.0000000000 +1951,1.0000000000 +1952,1.0000000000 +1953,1.0000000000 +1954,1.0000000000 +1955,1.0000000000 +1956,1.0000000000 +1957,1.0000000000 +1958,1.0000000000 +1959,1.0000000000 +1960,1.0000000000 +1961,1.0000000000 +1962,1.0000000000 +1963,1.0000000000 +1964,1.0000000000 +1965,1.0000000000 +1966,1.0000000000 +1967,1.0000000000 +1968,1.0000000000 +1969,1.0000000000 +1970,1.0000000000 +1971,1.0000000000 +1972,1.0000000000 +1973,1.0000000000 +1974,1.0000000000 +1975,1.0000000000 +1976,1.0000000000 +1977,1.0000000000 +2178,1.0000000000 +2179,1.0000000000 +2180,1.0000000000 +2181,1.0000000000 +2182,1.0000000000 +2183,1.0000000000 +2184,1.0000000000 +2185,1.0000000000 +2186,1.0000000000 +2187,1.0000000000 +2188,1.0000000000 +2189,1.0000000000 +2190,1.0000000000 +2191,1.0000000000 +2192,1.0000000000 +2193,1.0000000000 +2194,1.0000000000 +2195,1.0000000000 +2196,1.0000000000 +2197,1.0000000000 +2198,1.0000000000 +2199,1.0000000000 +2200,1.0000000000 +2201,1.0000000000 +2202,1.0000000000 +2203,1.0000000000 +2204,1.0000000000 +2205,1.0000000000 +2206,1.0000000000 +2207,1.0000000000 +2208,1.0000000000 +2209,1.0000000000 +2210,1.0000000000 +2211,1.0000000000 +2212,1.0000000000 +2213,1.0000000000 +2214,1.0000000000 +2215,1.0000000000 +2216,1.0000000000 +2217,1.0000000000 +2218,1.0000000000 +2219,1.0000000000 +2220,1.0000000000 +2221,1.0000000000 +2222,1.0000000000 +2223,1.0000000000 +2224,1.0000000000 +2225,1.0000000000 +2226,1.0000000000 +2227,1.0000000000 +2428,1.0000000000 +2429,1.0000000000 +2430,1.0000000000 +2431,1.0000000000 +2432,1.0000000000 +2433,1.0000000000 +2434,1.0000000000 +2435,1.0000000000 +2436,1.0000000000 +2437,1.0000000000 +2438,1.0000000000 +2439,1.0000000000 +2440,1.0000000000 +2441,1.0000000000 +2442,1.0000000000 +2443,1.0000000000 +2444,1.0000000000 +2445,1.0000000000 +2446,1.0000000000 +2447,1.0000000000 +2448,1.0000000000 +2449,1.0000000000 +2450,1.0000000000 +2451,1.0000000000 +2452,1.0000000000 +2453,1.0000000000 +2454,1.0000000000 +2455,1.0000000000 +2456,1.0000000000 +2457,1.0000000000 +2458,1.0000000000 +2459,1.0000000000 +2460,1.0000000000 +2461,1.0000000000 +2462,1.0000000000 +2463,1.0000000000 +2464,1.0000000000 +2465,1.0000000000 +2466,1.0000000000 +2467,1.0000000000 +2468,1.0000000000 +2469,1.0000000000 +2470,1.0000000000 +2471,1.0000000000 +2472,1.0000000000 +2473,1.0000000000 +2474,1.0000000000 +2475,1.0000000000 +2476,1.0000000000 +2477,1.0000000000 +2598,1.0000000000 +2599,1.0000000000 +2600,1.0000000000 +2601,1.0000000000 +2602,1.0000000000 +2603,1.0000000000 +2604,1.0000000000 +2605,1.0000000000 +2606,1.0000000000 +2607,1.0000000000 +2648,1.0000000000 +2649,1.0000000000 +2650,1.0000000000 +2651,1.0000000000 +2652,1.0000000000 +2653,1.0000000000 +2654,1.0000000000 +2655,1.0000000000 +2656,1.0000000000 +2657,1.0000000000 +0,0,0.0002079358,0,31.6227760315,794,-1.0000000000 +1,0,-0.0002583992,1,31.6227760315,795,-1.0000000000 +2,0,-0.0003494073,2,31.6227760315,796,-1.0000000000 +3,0,0.0003390284,3,31.6227760315,797,-1.0000000000 +4,0,-0.0003349786,4,31.6227760315,798,-1.0000000000 +5,0,0.0001279500,5,31.6227760315,799,-1.0000000000 +6,0,0.0001763496,6,31.6227760315,800,-1.0000000000 +7,0,-0.0001354526,7,31.6227760315,801,-1.0000000000 +8,0,0.0003771311,8,31.6227760315,802,-1.0000000000 +9,0,0.0003647278,9,31.6227760315,803,-1.0000000000 +10,0,-0.0002333800,10,31.6227760315,804,-1.0000000000 +11,0,-0.0000413705,11,31.6227760315,805,-1.0000000000 +12,0,0.0000488727,12,31.6227760315,806,-1.0000000000 +13,0,-0.0002826663,13,31.6227760315,807,-1.0000000000 +14,0,0.0006292058,14,31.6227760315,808,-1.0000000000 +15,0,-0.0001313380,15,31.6227760315,809,-1.0000000000 +16,0,0.0000416177,16,31.6227760315,810,-1.0000000000 +17,0,0.0003893470,17,31.6227760315,811,-1.0000000000 +18,0,-0.0002245790,18,31.6227760315,812,-1.0000000000 +19,0,0.0003470236,19,31.6227760315,813,-1.0000000000 +20,0,0.0003778675,20,31.6227760315,814,-1.0000000000 +21,0,0.0003159090,21,31.6227760315,815,-1.0000000000 +22,0,-0.0004873525,22,31.6227760315,816,-1.0000000000 +23,0,0.0005008946,23,31.6227760315,817,-1.0000000000 +24,0,0.0000937252,24,31.6227760315,818,-1.0000000000 +25,0,0.0003262460,25,31.6227760315,819,-1.0000000000 +26,0,0.0002706744,26,31.6227760315,820,-1.0000000000 +27,0,0.0000455972,27,31.6227760315,821,-1.0000000000 +28,0,0.0002516698,28,31.6227760315,822,-1.0000000000 +29,0,-0.0003327862,29,31.6227760315,823,-1.0000000000 +30,0,-0.0002052352,30,31.6227760315,824,-1.0000000000 +31,0,-0.0001236253,31,31.6227760315,825,-1.0000000000 +32,0,0.0000176382,32,31.6227760315,826,-1.0000000000 +33,0,0.0003008715,33,31.6227760315,827,-1.0000000000 +34,0,0.0006836313,34,31.6220626831,828,-1.0000000000 +35,0,-0.0001673320,35,31.6206951141,829,-1.0000000000 +36,0,0.0000483380,36,31.6100864410,830,-1.0000000000 +37,0,0.0004174529,37,31.5675048828,831,-1.0000000000 +38,0,0.0002150589,38,31.6203975677,832,-1.0000000000 +39,0,0.0002132856,39,31.6220436096,833,-1.0000000000 +40,0,-0.0000718096,40,31.6225090027,834,-1.0000000000 +41,0,0.0172859076,41,28.4602222443,835,-1.0000000000 +42,0,0.0323503427,42,19.9615135193,836,-1.0000000000 +43,0,0.0184166469,43,28.4836978912,837,-1.0000000000 +44,0,0.0017066360,44,30.7574901581,838,-1.0000000000 +45,0,0.0020751858,45,31.0119667053,839,-1.0000000000 +46,0,0.0014388275,46,31.2325229645,840,-1.0000000000 +47,0,0.0054573664,47,29.7056388855,841,-1.0000000000 +48,0,0.0080556581,48,28.2757072449,842,-1.0000000000 +49,0,0.0014539692,49,31.2102050781,843,-1.0000000000 +50,0,0.0007705564,50,31.6227760315,844,-1.0000000000 +51,0,0.0005107099,51,31.6227760315,845,-1.0000000000 +52,0,0.0002250048,52,31.6227760315,846,-1.0000000000 +53,0,-0.0005018546,53,31.6227760315,847,-1.0000000000 +54,0,0.0004192109,54,31.6227760315,848,-1.0000000000 +55,0,0.0000303526,55,31.6227760315,849,-1.0000000000 +56,0,0.0002229478,56,31.6227760315,850,-1.0000000000 +57,0,0.0004961172,57,31.6227760315,851,-1.0000000000 +58,0,0.0006572621,58,31.6227760315,852,-1.0000000000 +59,0,-0.0001420256,59,31.6227760315,853,-1.0000000000 +60,0,0.0006846254,60,31.6227760315,854,-1.0000000000 +61,0,-0.0001651450,61,31.6227741241,855,-1.0000000000 +62,0,0.0004542769,62,31.5634021759,856,-1.0000000000 +63,0,0.0031030406,63,31.1031246185,857,-1.0000000000 +64,0,0.0280330572,64,25.3654117584,858,-1.0000000000 +65,0,0.0385130979,65,19.3904418945,859,-1.0000000000 +66,0,0.0384126604,66,21.4482326508,860,-1.0000000000 +67,0,0.0882032439,67,15.1026964188,861,-1.0000000000 +68,0,0.1183664203,68,9.6312952042,862,-1.0000000000 +69,0,0.1238476709,69,8.9555406570,863,-1.0000000000 +70,0,0.1293599755,70,8.7221813202,864,-1.0000000000 +71,0,0.1229867041,71,10.2591333389,865,-1.0000000000 +72,0,0.1245075017,72,9.6111621857,866,-1.0000000000 +73,0,0.1211254299,73,9.3289775848,867,-1.0000000000 +74,0,0.1249790415,74,11.7950582504,868,-1.0000000000 +75,0,0.1247130036,75,9.8608808517,869,-1.0000000000 +76,0,0.1161369383,76,9.3387050629,870,-1.0000000000 +77,0,0.0982553512,77,11.3408269882,871,-1.0000000000 +78,0,0.0534446128,78,22.4022750854,872,-1.0000000000 +79,0,0.0021463588,79,30.7039184570,873,-1.0000000000 +80,0,0.0000134101,80,31.5947437286,874,-1.0000000000 +81,0,0.0001864402,81,31.6227760315,875,-1.0000000000 +82,0,-0.0004649443,82,31.6227760315,876,-1.0000000000 +83,0,-0.0001222452,83,31.6227760315,877,-1.0000000000 +84,0,-0.0001723979,84,31.6227760315,878,-1.0000000000 +85,0,0.0000698144,85,31.6227760315,879,-1.0000000000 +86,0,-0.0002891293,86,31.6227760315,880,-1.0000000000 +87,0,-0.0000747551,87,31.6227760315,881,-1.0000000000 +88,0,-0.0003064532,88,31.6227760315,882,-1.0000000000 +89,0,-0.0003921269,89,31.6218929291,883,-1.0000000000 +90,0,0.0089464234,90,30.5839347839,884,-1.0000000000 +91,0,0.0684941635,91,15.9870204926,885,-1.0000000000 +92,0,0.0888411775,92,12.1635036469,886,-1.0000000000 +93,0,0.0983949155,93,10.6395206451,887,-1.0000000000 +94,0,0.1431194246,94,8.6441278458,888,-1.0000000000 +95,0,0.1838538200,95,7.2239866257,889,-1.0000000000 +96,0,0.2103057802,96,6.1776309013,890,-1.0000000000 +97,0,0.2509822547,97,5.7684159279,891,-1.0000000000 +98,0,0.2644919157,98,5.0066733360,892,-1.0000000000 +99,0,0.2750744522,99,4.9207816124,893,-1.0000000000 +100,0,0.2888795733,100,4.8772101402,894,-1.0000000000 +101,0,0.2598167956,101,5.0838270187,895,-1.0000000000 +102,0,0.2218356729,102,6.0849299431,896,-1.0000000000 +103,0,0.1860902607,103,6.2116336823,897,-1.0000000000 +104,0,0.1604204327,104,7.4374589920,898,-1.0000000000 +105,0,0.1235561371,105,8.7856378555,899,-1.0000000000 +106,0,0.0918275937,106,17.3154182434,900,-1.0000000000 +107,0,0.0287123173,107,21.9835720062,901,-1.0000000000 +108,0,0.0145352446,108,27.4179573059,902,-1.0000000000 +109,0,0.0012948827,109,31.5514335632,903,-1.0000000000 +110,0,0.0000999159,110,31.6227760315,904,-1.0000000000 +111,0,0.0002175442,111,31.6227760315,905,-1.0000000000 +112,0,0.0002331373,112,31.6227760315,906,-1.0000000000 +113,0,0.0001173035,113,31.6223812103,907,-1.0000000000 +114,0,-0.0003774550,114,31.6227760315,908,-1.0000000000 +115,0,0.0000420564,115,31.6210212708,909,-1.0000000000 +116,0,-0.0008032957,116,31.6226425171,910,-1.0000000000 +117,0,0.0138732493,117,29.9801807404,911,-1.0000000000 +118,0,0.0654990301,118,16.7729282379,912,-1.0000000000 +119,0,0.1190289780,119,9.7614259720,913,-1.0000000000 +120,0,0.1674656868,120,8.2633466721,914,-1.0000000000 +121,0,0.2256945670,121,6.8788871765,915,-1.0000000000 +122,0,0.3065535724,122,4.5844759941,916,-1.0000000000 +123,0,0.3674325645,123,3.8042459488,917,-1.0000000000 +124,0,0.4210087359,124,3.4374401569,918,-1.0000000000 +125,0,0.4700816572,125,3.2917919159,919,-1.0000000000 +126,0,0.5004815459,126,3.0672521591,920,-1.0000000000 +127,0,0.5274384022,127,2.9202229977,921,-1.0000000000 +128,0,0.5072142482,128,2.9477114677,922,-1.0000000000 +129,0,0.4729066789,129,3.1703896523,923,-1.0000000000 +130,0,0.4116190672,130,3.6987824440,924,-1.0000000000 +131,0,0.3370232880,131,4.3520565033,925,-1.0000000000 +132,0,0.2831015885,132,5.0502543449,926,-1.0000000000 +133,0,0.2085866928,133,6.4650530815,927,-1.0000000000 +134,0,0.1565031260,134,8.8168840408,928,-1.0000000000 +135,0,0.1231054738,135,11.4613828659,929,-1.0000000000 +136,0,0.0485384166,136,19.9370212555,930,-1.0000000000 +137,0,0.0126857972,137,29.6892795563,931,-1.0000000000 +138,0,0.0004422957,138,31.6210861206,932,-1.0000000000 +139,0,0.0000184700,139,31.6227760315,933,-1.0000000000 +140,0,0.0001403502,140,31.6227760315,934,-1.0000000000 +141,0,0.0000654595,141,31.6227760315,935,-1.0000000000 +142,0,0.0000607840,142,31.6227760315,936,-1.0000000000 +143,0,-0.0005186090,143,31.6206760406,937,-1.0000000000 +144,0,0.0214564912,144,26.3024940491,938,-1.0000000000 +145,0,0.0900339484,145,14.6895189285,939,-1.0000000000 +146,0,0.1642016321,146,9.0687723160,940,-1.0000000000 +147,0,0.2214516252,147,6.4044857025,941,-1.0000000000 +148,0,0.2872681916,148,4.8680295944,942,-1.0000000000 +149,0,0.3685337305,149,3.8092288971,943,-1.0000000000 +150,0,0.4711169004,150,3.1616506577,944,-1.0000000000 +151,0,0.5671803355,151,2.7714066505,945,-1.0000000000 +152,0,0.6571742296,152,2.5546631813,946,-1.0000000000 +153,0,0.7373042703,153,2.4611840248,947,-1.0000000000 +154,0,0.8158724904,154,2.4277541637,948,-1.0000000000 +155,0,0.8480603099,155,2.3826928139,949,-1.0000000000 +156,0,0.8326759934,156,2.4234437943,950,-1.0000000000 +157,0,0.7751068473,157,2.4501872063,951,-1.0000000000 +158,0,0.6702090502,158,2.6260018349,952,-1.0000000000 +159,0,0.5534479022,159,2.8712155819,953,-1.0000000000 +160,0,0.4441415370,160,3.4023094177,954,-1.0000000000 +161,0,0.3377563059,161,4.1463561058,955,-1.0000000000 +162,0,0.2536413372,162,5.1094250679,956,-1.0000000000 +163,0,0.2015810758,163,6.4431381226,957,-1.0000000000 +164,0,0.1061781123,164,11.9039440155,958,-1.0000000000 +165,0,0.0474606641,165,19.9438781738,959,-1.0000000000 +166,0,0.0081077237,166,30.3990650177,960,-1.0000000000 +167,0,-0.0000006077,167,31.6227760315,961,-1.0000000000 +168,0,0.0000963342,168,31.6227760315,962,-1.0000000000 +169,0,0.0002636870,169,31.6205902100,963,-1.0000000000 +170,0,-0.0003005093,170,31.6178646088,964,-1.0000000000 +171,0,0.0115523944,171,29.6655826569,965,-1.0000000000 +172,0,0.0760080963,172,16.1452503204,966,-1.0000000000 +173,0,0.1558186561,173,8.4764928818,967,-1.0000000000 +174,0,0.2341038138,174,5.7819528580,968,-1.0000000000 +175,0,0.3126183152,175,4.5563411713,969,-1.0000000000 +176,0,0.4008408189,176,3.6441061497,970,-1.0000000000 +177,0,0.5085703731,177,3.0180699825,971,-1.0000000000 +178,0,0.6294556856,178,2.6308863163,972,-1.0000000000 +179,0,0.7481387258,179,2.4874277115,973,-1.0000000000 +180,0,0.8824155331,180,2.3697898388,974,-1.0000000000 +181,0,0.9917500019,181,2.3214147091,975,-1.0000000000 +182,0,1.0729775429,182,2.3268144131,976,-1.0000000000 +183,0,1.1049280167,183,2.3041279316,977,-1.0000000000 +184,0,1.0722656250,184,2.2890098095,978,-1.0000000000 +185,0,0.9774256349,185,2.2437229156,979,-1.0000000000 +186,0,0.8916051388,186,2.3827562332,980,-1.0000000000 +187,0,0.7057592273,187,2.4946858883,981,-1.0000000000 +188,0,0.5681874156,188,2.8479213715,982,-1.0000000000 +189,0,0.4187501967,189,3.4652247429,983,-1.0000000000 +190,0,0.3286397457,190,4.2516651154,984,-1.0000000000 +191,0,0.2453264892,191,5.6235122681,985,-1.0000000000 +192,0,0.1493728757,192,9.1089239120,986,-1.0000000000 +193,0,0.1055997238,193,12.5630216599,987,-1.0000000000 +194,0,0.0577709414,194,17.1816596985,988,-1.0000000000 +195,0,0.0001650765,195,31.6227550507,989,-1.0000000000 +196,0,0.0001360730,196,31.6227760315,990,-1.0000000000 +197,0,0.0286665205,197,25.7242279053,991,-1.0000000000 +198,0,0.0185648240,198,29.1938343048,992,-1.0000000000 +199,0,0.0463312007,199,17.7456054688,993,-1.0000000000 +200,0,0.1100403145,200,11.7338247299,994,-1.0000000000 +201,0,0.1908266991,201,6.9581613541,995,-1.0000000000 +202,0,0.3026175797,202,4.6381225586,996,-1.0000000000 +203,0,0.3958640099,203,3.6027181149,997,-1.0000000000 +204,0,0.4933891296,204,3.0626730919,998,-1.0000000000 +205,0,0.6277903318,205,2.6963646412,999,-1.0000000000 +206,0,0.7647606730,206,2.4716770649,1000,-1.0000000000 +207,0,0.8989660740,207,2.4109206200,1001,-1.0000000000 +208,0,1.0284951925,208,2.3586513996,1002,-1.0000000000 +209,0,1.0996196270,209,2.3010489941,1003,-1.0000000000 +210,0,1.1790245771,210,2.3166940212,1004,-1.0000000000 +211,0,1.2310339212,211,2.3528943062,1005,-1.0000000000 +212,0,1.2175028324,212,2.3542003632,1006,-1.0000000000 +213,0,1.1302845478,213,2.3178131580,1007,-1.0000000000 +214,0,1.0352075100,214,2.3592703342,1008,-1.0000000000 +215,0,0.8394643068,215,2.3962028027,1009,-1.0000000000 +216,0,0.6509366035,216,2.7720828056,1010,-1.0000000000 +217,0,0.4646136165,217,3.1780204773,1011,-1.0000000000 +218,0,0.3690448403,218,3.7357251644,1012,-1.0000000000 +219,0,0.2772509754,219,4.9801034927,1013,-1.0000000000 +220,0,0.1976015866,220,6.7223825455,1014,-1.0000000000 +221,0,0.1370779425,221,9.2390718460,1015,-1.0000000000 +222,0,0.0497566685,222,18.3531360626,1016,-1.0000000000 +223,0,-0.0003765492,223,31.6227493286,1017,-1.0000000000 +224,0,-0.0000978563,224,31.6227760315,1018,-1.0000000000 +225,0,0.0055302819,225,29.4070453644,1019,-1.0000000000 +226,0,0.0239453297,226,26.8379230499,1020,-1.0000000000 +227,0,0.0624308847,227,17.4192199707,1021,-1.0000000000 +228,0,0.1402922124,228,9.4714317322,1022,-1.0000000000 +229,0,0.2283508927,229,6.0654091835,1023,-1.0000000000 +230,0,0.3311395645,230,4.1958436966,1024,-1.0000000000 +231,0,0.4342799783,231,3.2883524895,1025,-1.0000000000 +232,0,0.5590006709,232,2.8224635124,1026,-1.0000000000 +233,0,0.7316516638,233,2.5400061607,1027,-1.0000000000 +234,0,0.8548274636,234,2.4144558907,1028,-1.0000000000 +235,0,0.9891402721,235,2.3530962467,1029,-1.0000000000 +236,0,1.0502716303,236,2.3016290665,1030,-1.0000000000 +237,0,1.0607392788,237,2.2903811932,1031,-1.0000000000 +238,0,1.1183186769,238,2.3235101700,1032,-1.0000000000 +239,0,1.1194092035,239,2.3126912117,1033,-1.0000000000 +240,0,1.1294481754,240,2.3333547115,1034,-1.0000000000 +241,0,1.1141145229,241,2.3193163872,1035,-1.0000000000 +242,0,1.0437884331,242,2.2823159695,1036,-1.0000000000 +243,0,0.8947256804,243,2.3181655407,1037,-1.0000000000 +244,0,0.7067958117,244,2.5579893589,1038,-1.0000000000 +245,0,0.5081296563,245,3.0765430927,1039,-1.0000000000 +246,0,0.3798761666,246,3.6714072227,1040,-1.0000000000 +247,0,0.2857289016,247,4.7601342201,1041,-1.0000000000 +248,0,0.2004447579,248,6.0894117355,1042,-1.0000000000 +249,0,0.1385634840,249,9.3406229019,1043,-1.0000000000 +250,0,0.0403848663,250,19.1417312622,1044,-1.0000000000 +251,0,0.0001982165,251,31.6227760315,1045,-1.0000000000 +252,0,0.0001750147,252,31.6227760315,1046,-1.0000000000 +253,0,0.0042383769,253,30.0029430389,1047,-1.0000000000 +254,0,0.0337815769,254,21.3715801239,1048,-1.0000000000 +255,0,0.0844024718,255,14.8542079926,1049,-1.0000000000 +256,0,0.1610622257,256,7.5341968536,1050,-1.0000000000 +257,0,0.2227348387,257,5.6300301552,1051,-1.0000000000 +258,0,0.3526701033,258,3.9894003868,1052,-1.0000000000 +259,0,0.4723548591,259,3.1466460228,1053,-1.0000000000 +260,0,0.6160907149,260,2.7099738121,1054,-1.0000000000 +261,0,0.7912367582,261,2.4634957314,1055,-1.0000000000 +262,0,0.9398992062,262,2.3564286232,1056,-1.0000000000 +263,0,1.0118169785,263,2.2864329815,1057,-1.0000000000 +264,0,0.9678423405,264,2.3070170879,1058,-1.0000000000 +265,0,0.9376413226,265,2.3450162411,1059,-1.0000000000 +266,0,0.9355269670,266,2.3803303242,1060,-1.0000000000 +267,0,0.9543191195,267,2.3556554317,1061,-1.0000000000 +268,0,1.0108853579,268,2.3408815861,1062,-1.0000000000 +269,0,1.0471606255,269,2.3146529198,1063,-1.0000000000 +270,0,0.9970059395,270,2.2666883469,1064,-1.0000000000 +271,0,0.8818715811,271,2.3353953362,1065,-1.0000000000 +272,0,0.6957759261,272,2.5611574650,1066,-1.0000000000 +273,0,0.5319196582,273,3.0077891350,1067,-1.0000000000 +274,0,0.3815186620,274,3.6669015884,1068,-1.0000000000 +275,0,0.2636581063,275,5.1261324883,1069,-1.0000000000 +276,0,0.1597977132,276,8.1884031296,1070,-1.0000000000 +277,0,0.0801797807,277,14.1901311874,1071,-1.0000000000 +278,0,0.0370516144,278,20.5537090302,1072,-1.0000000000 +279,0,-0.0004002613,279,31.6050453186,1073,-1.0000000000 +280,0,-0.0003776760,280,31.6227111816,1074,-1.0000000000 +281,0,0.0021100610,281,31.5973281860,1075,-1.0000000000 +282,0,0.0257851910,282,26.2151908875,1076,-1.0000000000 +283,0,0.0611026809,283,17.1719360352,1077,-1.0000000000 +284,0,0.1393538266,284,8.7866668701,1078,-1.0000000000 +285,0,0.2184684724,285,6.0777459145,1079,-1.0000000000 +286,0,0.3355731368,286,4.2265377045,1080,-1.0000000000 +287,0,0.4826321006,287,3.1534481049,1081,-1.0000000000 +288,0,0.6489428878,288,2.6726737022,1082,-1.0000000000 +289,0,0.8263921738,289,2.3904621601,1083,-1.0000000000 +290,0,0.9376775622,290,2.3048274517,1084,-1.0000000000 +291,0,0.9587321281,291,2.3109583855,1085,-1.0000000000 +292,0,0.8675266504,292,2.3774199486,1086,-1.0000000000 +293,0,0.8094529510,293,2.5560112000,1087,-1.0000000000 +294,0,0.7863086462,294,2.5117721558,1088,-1.0000000000 +295,0,0.8640347719,295,2.3969352245,1089,-1.0000000000 +296,0,0.9173959494,296,2.3281571865,1090,-1.0000000000 +297,0,0.9688491821,297,2.3375737667,1091,-1.0000000000 +298,0,0.9456661344,298,2.3412094116,1092,-1.0000000000 +299,0,0.8205282092,299,2.3724005222,1093,-1.0000000000 +300,0,0.6771087646,300,2.5506916046,1094,-1.0000000000 +301,0,0.5108327866,301,2.9238371849,1095,-1.0000000000 +302,0,0.3787623048,302,3.7161893845,1096,-1.0000000000 +303,0,0.2699432671,303,5.4588193893,1097,-1.0000000000 +304,0,0.1464111656,304,10.0295314789,1098,-1.0000000000 +305,0,0.0792720169,305,16.0952014923,1099,-1.0000000000 +306,0,0.0059705833,306,31.2058010101,1100,-1.0000000000 +307,0,0.0004632693,307,31.5308609009,1101,-1.0000000000 +308,0,0.0043669338,308,30.6051616669,1102,-1.0000000000 +309,0,0.0063748998,309,29.8326950073,1103,-1.0000000000 +310,0,0.0159165747,310,28.5636730194,1104,-1.0000000000 +311,0,0.0448154770,311,20.4961643219,1105,-1.0000000000 +312,0,0.1235546991,312,10.9966354370,1106,-1.0000000000 +313,0,0.2231135815,313,6.1386961937,1107,-1.0000000000 +314,0,0.3377698064,314,4.2937984467,1108,-1.0000000000 +315,0,0.4951098561,315,3.1601424217,1109,-1.0000000000 +316,0,0.6553843021,316,2.6288735867,1110,-1.0000000000 +317,0,0.8079286218,317,2.3804090023,1111,-1.0000000000 +318,0,0.9239451885,318,2.3580360413,1112,-1.0000000000 +319,0,0.8803372979,319,2.3451416492,1113,-1.0000000000 +320,0,0.7921043038,320,2.4804413319,1114,-1.0000000000 +321,0,0.7499290109,321,2.5833342075,1115,-1.0000000000 +322,0,0.7702397704,322,2.4749538898,1116,-1.0000000000 +323,0,0.8655048609,323,2.3455898762,1117,-1.0000000000 +324,0,0.9550458789,324,2.3513987064,1118,-1.0000000000 +325,0,0.9986506104,325,2.3708248138,1119,-1.0000000000 +326,0,0.9347382188,326,2.3565754890,1120,-1.0000000000 +327,0,0.8275583982,327,2.4049818516,1121,-1.0000000000 +328,0,0.6480501294,328,2.6506526470,1122,-1.0000000000 +329,0,0.4856687486,329,3.0139541626,1123,-1.0000000000 +330,0,0.3583132625,330,3.9707667828,1124,-1.0000000000 +331,0,0.2453819662,331,5.6648898125,1125,-1.0000000000 +332,0,0.1315680295,332,9.5050153732,1126,-1.0000000000 +333,0,0.0543179512,333,19.6717777252,1127,-1.0000000000 +334,0,0.0002487019,334,31.5746517181,1128,-1.0000000000 +335,0,-0.0004916147,335,31.6226940155,1129,-1.0000000000 +336,0,0.0001359140,336,31.6227760315,1130,-1.0000000000 +337,0,0.0007245721,337,31.6227684021,1131,-1.0000000000 +338,0,-0.0002426033,338,31.5914230347,1132,-1.0000000000 +339,0,0.0228728075,339,26.4781723022,1133,-1.0000000000 +340,0,0.1194402054,340,12.1590147018,1134,-1.0000000000 +341,0,0.2250171900,341,6.1180801392,1135,-1.0000000000 +342,0,0.3482197821,342,4.1998472214,1136,-1.0000000000 +343,0,0.5096925497,343,3.1183922291,1137,-1.0000000000 +344,0,0.6711575985,344,2.5549144745,1138,-1.0000000000 +345,0,0.8273203373,345,2.3965148926,1139,-1.0000000000 +346,0,0.8989909887,346,2.3424625397,1140,-1.0000000000 +347,0,0.8338220119,347,2.3802590370,1141,-1.0000000000 +348,0,0.7712999582,348,2.4435381889,1142,-1.0000000000 +349,0,0.7810522914,349,2.4618661404,1143,-1.0000000000 +350,0,0.8488454223,350,2.3637220860,1144,-1.0000000000 +351,0,0.9808951616,351,2.2952208519,1145,-1.0000000000 +352,0,1.0584679842,352,2.3287153244,1146,-1.0000000000 +353,0,1.0484929085,353,2.3668515682,1147,-1.0000000000 +354,0,0.9439478517,354,2.3677756786,1148,-1.0000000000 +355,0,0.8024018407,355,2.4240152836,1149,-1.0000000000 +356,0,0.6145404577,356,2.7419781685,1150,-1.0000000000 +357,0,0.4524665475,357,3.2188079357,1151,-1.0000000000 +358,0,0.3541513085,358,4.3514347076,1152,-1.0000000000 +359,0,0.2111083865,359,6.3587808609,1153,-1.0000000000 +360,0,0.1307028979,360,10.0998725891,1154,-1.0000000000 +361,0,0.0321570523,361,21.4319057465,1155,-1.0000000000 +362,0,0.0006438673,362,31.6147212982,1156,-1.0000000000 +363,0,0.0009358423,363,31.6227760315,1157,-1.0000000000 +364,0,0.0002634405,364,31.6227760315,1158,-1.0000000000 +365,0,0.0010150694,365,31.6227722168,1159,-1.0000000000 +366,0,0.0004529505,366,31.6223411560,1160,-1.0000000000 +367,0,0.0137116825,367,27.4318256378,1161,-1.0000000000 +368,0,0.1160466224,368,10.0018968582,1162,-1.0000000000 +369,0,0.2345420271,369,5.8403391838,1163,-1.0000000000 +370,0,0.3708416522,370,3.8688480854,1164,-1.0000000000 +371,0,0.5300990939,371,2.9528651237,1165,-1.0000000000 +372,0,0.6892153025,372,2.5064487457,1166,-1.0000000000 +373,0,0.8098425865,373,2.3663296700,1167,-1.0000000000 +374,0,0.8341104388,374,2.3519144058,1168,-1.0000000000 +375,0,0.8101239204,375,2.4575023651,1169,-1.0000000000 +376,0,0.7889069915,376,2.4505796432,1170,-1.0000000000 +377,0,0.8793845773,377,2.4021737576,1171,-1.0000000000 +378,0,1.0059598684,378,2.3136579990,1172,-1.0000000000 +379,0,1.1230267286,379,2.2888503075,1173,-1.0000000000 +380,0,1.1797831059,380,2.3769843578,1174,-1.0000000000 +381,0,1.1613332033,381,2.4126398563,1175,-1.0000000000 +382,0,0.9623417258,382,2.2927162647,1176,-1.0000000000 +383,0,0.7934286594,383,2.4647991657,1177,-1.0000000000 +384,0,0.5926273465,384,2.7928922176,1178,-1.0000000000 +385,0,0.4492661655,385,3.2474975586,1179,-1.0000000000 +386,0,0.3443657458,386,4.2985219955,1180,-1.0000000000 +387,0,0.2314104587,387,5.9285354614,1181,-1.0000000000 +388,0,0.1472378820,388,9.3181419373,1182,-1.0000000000 +389,0,0.0351320319,389,20.6197624207,1183,-1.0000000000 +390,0,0.0014228243,390,31.5211696625,1184,-1.0000000000 +391,0,0.0008443597,391,31.6227760315,1185,-1.0000000000 +392,0,0.0099181151,392,29.6695613861,1186,-1.0000000000 +393,0,0.0006278105,393,31.6227760315,1187,-1.0000000000 +394,0,0.0003538693,394,31.6227512360,1188,-1.0000000000 +395,0,0.0145763783,395,27.5814151764,1189,-1.0000000000 +396,0,0.1199709773,396,10.8346366882,1190,-1.0000000000 +397,0,0.2440324277,397,5.7197704315,1191,-1.0000000000 +398,0,0.3900867701,398,3.5687365532,1192,-1.0000000000 +399,0,0.5461060405,399,2.8410024643,1193,-1.0000000000 +400,0,0.6898619533,400,2.5129566193,1194,-1.0000000000 +401,0,0.7780957818,401,2.4161820412,1195,-1.0000000000 +402,0,0.8212936521,402,2.4362788200,1196,-1.0000000000 +403,0,0.8196046352,403,2.4716432095,1197,-1.0000000000 +404,0,0.8615708947,404,2.4565105438,1198,-1.0000000000 +405,0,1.0007439852,405,2.3347504139,1199,-1.0000000000 +406,0,1.1029356718,406,2.2086555958,1200,-1.0000000000 +407,0,1.2631444931,407,2.3114092350,1201,-1.0000000000 +408,0,1.2674189806,408,2.3837871552,1202,-1.0000000000 +409,0,1.1696907282,409,2.3068034649,1203,-1.0000000000 +410,0,1.0013144016,410,2.2855141163,1204,-1.0000000000 +411,0,0.7892069817,411,2.4214391708,1205,-1.0000000000 +412,0,0.6106898189,412,2.7888779640,1206,-1.0000000000 +413,0,0.4649244547,413,3.2812552452,1207,-1.0000000000 +414,0,0.3470404446,414,4.0626425743,1208,-1.0000000000 +415,0,0.2548494935,415,5.3905172348,1209,-1.0000000000 +416,0,0.1753427535,416,7.4863877296,1210,-1.0000000000 +417,0,0.0696761087,417,15.3962125778,1211,-1.0000000000 +418,0,0.0011654531,418,31.4477596283,1212,-1.0000000000 +419,0,0.0005153015,419,31.6227760315,1213,-1.0000000000 +420,0,0.0022581830,420,31.3947219849,1214,-1.0000000000 +421,0,-0.0005039608,421,31.6227760315,1215,-1.0000000000 +422,0,0.0006990994,422,31.6138477325,1216,-1.0000000000 +423,0,0.0477251969,423,22.0904197693,1217,-1.0000000000 +424,0,0.1369994134,424,9.3862142563,1218,-1.0000000000 +425,0,0.2709477246,425,5.0977196693,1219,-1.0000000000 +426,0,0.4073841870,426,3.4829053879,1220,-1.0000000000 +427,0,0.5448542237,427,2.8721144199,1221,-1.0000000000 +428,0,0.6622777581,428,2.5826773643,1222,-1.0000000000 +429,0,0.7555070519,429,2.4061858654,1223,-1.0000000000 +430,0,0.8002126217,430,2.4329354763,1224,-1.0000000000 +431,0,0.8153559566,431,2.3994085789,1225,-1.0000000000 +432,0,0.8970652223,432,2.3870296478,1226,-1.0000000000 +433,0,1.0205209255,433,2.2956838608,1227,-1.0000000000 +434,0,1.1738963127,434,2.2933826447,1228,-1.0000000000 +435,0,1.2575677633,435,2.3463256359,1229,-1.0000000000 +436,0,1.2230237722,436,2.3524501324,1230,-1.0000000000 +437,0,1.1259639263,437,2.2667458057,1231,-1.0000000000 +438,0,0.9997518659,438,2.2932496071,1232,-1.0000000000 +439,0,0.7922306657,439,2.4435393810,1233,-1.0000000000 +440,0,0.6165519357,440,2.7788236141,1234,-1.0000000000 +441,0,0.4822996259,441,3.1403548717,1235,-1.0000000000 +442,0,0.3766285479,442,3.7291548252,1236,-1.0000000000 +443,0,0.2857866883,443,4.6315340996,1237,-1.0000000000 +444,0,0.1797532737,444,6.7200350761,1238,-1.0000000000 +445,0,0.0752173588,445,14.3447551727,1239,-1.0000000000 +446,0,0.0005639646,446,31.2004222870,1240,-1.0000000000 +447,0,-0.0001979070,447,31.6074485779,1241,-1.0000000000 +448,0,-0.0003395307,448,31.6227760315,1242,-1.0000000000 +449,0,-0.0001639747,449,31.6227760315,1243,-1.0000000000 +450,0,0.0036350526,450,30.9096469879,1244,-1.0000000000 +451,0,0.0473100618,451,20.2599525452,1245,-1.0000000000 +452,0,0.1546910107,452,8.4040956497,1246,-1.0000000000 +453,0,0.2969757318,453,4.8829870224,1247,-1.0000000000 +454,0,0.4089812934,454,3.4783515930,1248,-1.0000000000 +455,0,0.5411127210,455,2.9201178551,1249,-1.0000000000 +456,0,0.6237353086,456,2.6100988388,1250,-1.0000000000 +457,0,0.7418503165,457,2.4577949047,1251,-1.0000000000 +458,0,0.7519995570,458,2.4328489304,1252,-1.0000000000 +459,0,0.8003866076,459,2.4379255772,1253,-1.0000000000 +460,0,0.8349192142,460,2.3691625595,1254,-1.0000000000 +461,0,0.9357497692,461,2.3182308674,1255,-1.0000000000 +462,0,1.0823613405,462,2.3047502041,1256,-1.0000000000 +463,0,1.1418485641,463,2.3236503601,1257,-1.0000000000 +464,0,1.1479303837,464,2.3056936264,1258,-1.0000000000 +465,0,1.0592665672,465,2.3006165028,1259,-1.0000000000 +466,0,0.9168865085,466,2.3271152973,1260,-1.0000000000 +467,0,0.7404270768,467,2.4720604420,1261,-1.0000000000 +468,0,0.6123292446,468,2.7189273834,1262,-1.0000000000 +469,0,0.4894371331,469,3.0747077465,1263,-1.0000000000 +470,0,0.3859493136,470,3.6469478607,1264,-1.0000000000 +471,0,0.2822641730,471,4.7010302544,1265,-1.0000000000 +472,0,0.1787402332,472,7.5456037521,1266,-1.0000000000 +473,0,0.0621588230,473,16.5414638519,1267,-1.0000000000 +474,0,0.0011913897,474,31.1215934753,1268,-1.0000000000 +475,0,-0.0002103663,475,31.4152126312,1269,-1.0000000000 +476,0,0.0003792991,476,31.6227760315,1270,-1.0000000000 +477,0,0.0001732394,477,31.4972496033,1271,-1.0000000000 +478,0,0.0046014036,478,30.8621158600,1272,-1.0000000000 +479,0,0.0576600619,479,19.4848232269,1273,-1.0000000000 +480,0,0.1628940701,480,7.7923212051,1274,-1.0000000000 +481,0,0.2965573668,481,4.9645648003,1275,-1.0000000000 +482,0,0.4250472188,482,3.4230914116,1276,-1.0000000000 +483,0,0.5318685770,483,2.9077155590,1277,-1.0000000000 +484,0,0.6013643146,484,2.6383554935,1278,-1.0000000000 +485,0,0.6761335135,485,2.5247249603,1279,-1.0000000000 +486,0,0.7152107358,486,2.5478014946,1280,-1.0000000000 +487,0,0.7259470820,487,2.4765470028,1281,-1.0000000000 +488,0,0.7759909034,488,2.4189951420,1282,-1.0000000000 +489,0,0.8643364310,489,2.3606874943,1283,-1.0000000000 +490,0,0.9827626348,490,2.2951855659,1284,-1.0000000000 +491,0,1.0664774179,491,2.2927172184,1285,-1.0000000000 +492,0,1.0456911325,492,2.2863845825,1286,-1.0000000000 +493,0,0.9820244312,493,2.3256044388,1287,-1.0000000000 +494,0,0.8542780876,494,2.3467662334,1288,-1.0000000000 +495,0,0.7340826988,495,2.5039217472,1289,-1.0000000000 +496,0,0.5968572497,496,2.7374470234,1290,-1.0000000000 +497,0,0.4873765409,497,3.0340442657,1291,-1.0000000000 +498,0,0.3672321439,498,3.8976264000,1292,-1.0000000000 +499,0,0.2460707277,499,5.2589669228,1293,-1.0000000000 +500,0,0.1587331593,500,8.3845701218,1294,-1.0000000000 +501,0,0.0695172399,501,15.4914751053,1295,-1.0000000000 +502,0,0.0014563977,502,31.0409355164,1296,-1.0000000000 +503,0,-0.0004635351,503,31.6086044312,1297,-1.0000000000 +504,0,0.0006251551,504,31.6227684021,1298,-1.0000000000 +505,0,0.0001793502,505,31.3493156433,1299,-1.0000000000 +506,0,0.0272259805,506,26.2832393646,1300,-1.0000000000 +507,0,0.0631093308,507,16.6588172913,1301,-1.0000000000 +508,0,0.1657525301,508,7.3287153244,1302,-1.0000000000 +509,0,0.2855381370,509,5.0466980934,1303,-1.0000000000 +510,0,0.4234611988,510,3.3581931591,1304,-1.0000000000 +511,0,0.5355196595,511,2.9099872112,1305,-1.0000000000 +512,0,0.5872064233,512,2.7330672741,1306,-1.0000000000 +513,0,0.6371801496,513,2.5911569595,1307,-1.0000000000 +514,0,0.7026461959,514,2.5588054657,1308,-1.0000000000 +515,0,0.7171602249,515,2.4488122463,1309,-1.0000000000 +516,0,0.7390315533,516,2.4854843616,1310,-1.0000000000 +517,0,0.8491621017,517,2.3858935833,1311,-1.0000000000 +518,0,0.9590334296,518,2.3105680943,1312,-1.0000000000 +519,0,1.0337742567,519,2.3163540363,1313,-1.0000000000 +520,0,1.0172015429,520,2.3164091110,1314,-1.0000000000 +521,0,0.9606239796,521,2.3229632378,1315,-1.0000000000 +522,0,0.8654842377,522,2.3833553791,1316,-1.0000000000 +523,0,0.7076365352,523,2.4972376823,1317,-1.0000000000 +524,0,0.5839534402,524,2.7767996788,1318,-1.0000000000 +525,0,0.4629037380,525,3.2973482609,1319,-1.0000000000 +526,0,0.3223178983,526,4.1649656296,1320,-1.0000000000 +527,0,0.2451560944,527,5.5368881226,1321,-1.0000000000 +528,0,0.1502188295,528,8.9174118042,1322,-1.0000000000 +529,0,0.0671202466,529,16.8515014648,1323,-1.0000000000 +530,0,0.0168995671,530,27.8533496857,1324,-1.0000000000 +531,0,0.0027108516,531,30.7577781677,1325,-1.0000000000 +532,0,-0.0004748474,532,31.6227760315,1326,-1.0000000000 +533,0,0.0000889081,533,31.4278774261,1327,-1.0000000000 +534,0,0.0426550955,534,18.8880081177,1328,-1.0000000000 +535,0,0.0897340700,535,14.2352895737,1329,-1.0000000000 +536,0,0.1835324466,536,6.9632315636,1330,-1.0000000000 +537,0,0.2979731560,537,4.7712202072,1331,-1.0000000000 +538,0,0.4157102704,538,3.4161942005,1332,-1.0000000000 +539,0,0.5524196029,539,2.9093339443,1333,-1.0000000000 +540,0,0.6347330213,540,2.6985633373,1334,-1.0000000000 +541,0,0.6873387098,541,2.5735416412,1335,-1.0000000000 +542,0,0.7337716818,542,2.5132219791,1336,-1.0000000000 +543,0,0.7439809442,543,2.4510378838,1337,-1.0000000000 +544,0,0.8024758697,544,2.4043424129,1338,-1.0000000000 +545,0,0.9168453813,545,2.3399312496,1339,-1.0000000000 +546,0,1.0280338526,546,2.3012630939,1340,-1.0000000000 +547,0,1.0949355364,547,2.3466596603,1341,-1.0000000000 +548,0,1.0854176283,548,2.3466114998,1342,-1.0000000000 +549,0,0.9963572621,549,2.3077476025,1343,-1.0000000000 +550,0,0.8625664115,550,2.3717453480,1344,-1.0000000000 +551,0,0.6984025836,551,2.5627849102,1345,-1.0000000000 +552,0,0.5655143857,552,2.8067283630,1346,-1.0000000000 +553,0,0.4338583946,553,3.3975961208,1347,-1.0000000000 +554,0,0.3148156703,554,4.4280271530,1348,-1.0000000000 +555,0,0.2177419066,555,6.1449913979,1349,-1.0000000000 +556,0,0.1394918263,556,9.3737068176,1350,-1.0000000000 +557,0,0.0666871071,557,15.0768060684,1351,-1.0000000000 +558,0,0.0241600294,558,21.9253787994,1352,-1.0000000000 +559,0,0.0023356657,559,31.0733852386,1353,-1.0000000000 +560,0,0.0005278823,560,31.6227760315,1354,-1.0000000000 +561,0,0.0003284318,561,31.6154689789,1355,-1.0000000000 +562,0,0.0723905489,562,16.1907138824,1356,-1.0000000000 +563,0,0.1137683168,563,10.0528793335,1357,-1.0000000000 +564,0,0.1933699250,564,6.3731698990,1358,-1.0000000000 +565,0,0.2978318036,565,4.5994777679,1359,-1.0000000000 +566,0,0.4207669199,566,3.4823834896,1360,-1.0000000000 +567,0,0.5616418719,567,2.8318614960,1361,-1.0000000000 +568,0,0.6912870407,568,2.5435352325,1362,-1.0000000000 +569,0,0.7708287239,569,2.4794592857,1363,-1.0000000000 +570,0,0.8215371370,570,2.4028928280,1364,-1.0000000000 +571,0,0.8826347589,571,2.3621711731,1365,-1.0000000000 +572,0,0.9627836943,572,2.3196456432,1366,-1.0000000000 +573,0,1.1106199026,573,2.3130993843,1367,-1.0000000000 +574,0,1.2246385813,574,2.3607060909,1368,-1.0000000000 +575,0,1.2177535295,575,2.3455936909,1369,-1.0000000000 +576,0,1.1265897751,576,2.3350877762,1370,-1.0000000000 +577,0,1.0035156012,577,2.3239722252,1371,-1.0000000000 +578,0,0.8064009547,578,2.4052209854,1372,-1.0000000000 +579,0,0.6292597055,579,2.6512899399,1373,-1.0000000000 +580,0,0.4997098446,580,3.0128855705,1374,-1.0000000000 +581,0,0.3879833221,581,3.6579921246,1375,-1.0000000000 +582,0,0.2890135050,582,4.8065571785,1376,-1.0000000000 +583,0,0.1925205886,583,7.4596571922,1377,-1.0000000000 +584,0,0.1238536388,584,11.0189476013,1378,-1.0000000000 +585,0,0.0504309833,585,19.6995429993,1379,-1.0000000000 +586,0,0.0241918098,586,29.3324947357,1380,-1.0000000000 +587,0,0.0003931704,587,31.6227760315,1381,-1.0000000000 +588,0,0.0000209329,588,31.6227760315,1382,-1.0000000000 +589,0,-0.0001734847,589,31.6227760315,1383,-1.0000000000 +590,0,0.0607455708,590,14.3712387085,1384,-1.0000000000 +591,0,0.1017537937,591,11.4408884048,1385,-1.0000000000 +592,0,0.1845139414,592,7.3711776733,1386,-1.0000000000 +593,0,0.2864980102,593,4.6154351234,1387,-1.0000000000 +594,0,0.4105657041,594,3.3562819958,1388,-1.0000000000 +595,0,0.5539539456,595,2.8899328709,1389,-1.0000000000 +596,0,0.6790744066,596,2.5217244625,1390,-1.0000000000 +597,0,0.8194868565,597,2.3978948593,1391,-1.0000000000 +598,0,0.9098239541,598,2.3392369747,1392,-1.0000000000 +599,0,1.0223187208,599,2.2961740494,1393,-1.0000000000 +600,0,1.1595125198,600,2.3070757389,1394,-1.0000000000 +601,0,1.3060013056,601,2.3680303097,1395,-1.0000000000 +602,0,1.3420419693,602,2.3928475380,1396,-1.0000000000 +603,0,1.2148033381,603,2.3111648560,1397,-1.0000000000 +604,0,1.0699449778,604,2.3505551815,1398,-1.0000000000 +605,0,0.8734347224,605,2.3596315384,1399,-1.0000000000 +606,0,0.7014126182,606,2.5934374332,1400,-1.0000000000 +607,0,0.5386259556,607,3.0620768070,1401,-1.0000000000 +608,0,0.4120286405,608,3.6871492863,1402,-1.0000000000 +609,0,0.3218664825,609,4.3526191711,1403,-1.0000000000 +610,0,0.2504507601,610,5.4890518188,1404,-1.0000000000 +611,0,0.1661561131,611,7.5762300491,1405,-1.0000000000 +612,0,0.1281819940,612,9.1167297363,1406,-1.0000000000 +613,0,0.0845847353,613,12.5985088348,1407,-1.0000000000 +614,0,0.0390512794,614,22.3714408875,1408,-1.0000000000 +615,0,-0.0009076580,615,31.6227760315,1409,-1.0000000000 +616,0,0.0006949858,616,31.6227760315,1410,-1.0000000000 +617,0,-0.0002807755,617,31.6227760315,1411,-1.0000000000 +618,0,0.0402883030,618,21.7810173035,1412,-1.0000000000 +619,0,0.0869438499,619,13.5456027985,1413,-1.0000000000 +620,0,0.1526628584,620,8.6529712677,1414,-1.0000000000 +621,0,0.2470432669,621,5.2813711166,1415,-1.0000000000 +622,0,0.3586099148,622,3.9963319302,1416,-1.0000000000 +623,0,0.4875319004,623,3.1646375656,1417,-1.0000000000 +624,0,0.6175509095,624,2.6909687519,1418,-1.0000000000 +625,0,0.7506234050,625,2.4454865456,1419,-1.0000000000 +626,0,0.8995615244,626,2.3818230629,1420,-1.0000000000 +627,0,1.0349189043,627,2.3495621681,1421,-1.0000000000 +628,0,1.1513767242,628,2.3277025223,1422,-1.0000000000 +629,0,1.1925117970,629,2.3252859116,1423,-1.0000000000 +630,0,1.1708381176,630,2.3266208172,1424,-1.0000000000 +631,0,1.0055685043,631,2.2985715866,1425,-1.0000000000 +632,0,0.8375660777,632,2.3881287575,1426,-1.0000000000 +633,0,0.6791220307,633,2.5529067516,1427,-1.0000000000 +634,0,0.5486404896,634,3.0046038628,1428,-1.0000000000 +635,0,0.4031040370,635,3.6131353378,1429,-1.0000000000 +636,0,0.3038705885,636,4.2178559303,1430,-1.0000000000 +637,0,0.2524210811,637,5.2704262733,1431,-1.0000000000 +638,0,0.1901981086,638,7.2279939651,1432,-1.0000000000 +639,0,0.1363730580,639,9.2050275803,1433,-1.0000000000 +640,0,0.1073145792,640,11.0745315552,1434,-1.0000000000 +641,0,0.0684229210,641,17.0656967163,1435,-1.0000000000 +642,0,-0.0006744663,642,31.4324455261,1436,-1.0000000000 +643,0,0.0000577544,643,31.6227760315,1437,-1.0000000000 +644,0,0.0001570900,644,31.6227760315,1438,-1.0000000000 +645,0,0.0002731264,645,31.6227760315,1439,-1.0000000000 +646,0,0.0038284403,646,31.5273246765,1440,-1.0000000000 +647,0,0.0601321943,647,24.6100997925,1441,-1.0000000000 +648,0,0.1270000190,648,11.2679891586,1442,-1.0000000000 +649,0,0.1785868257,649,7.4269938469,1443,-1.0000000000 +650,0,0.2439755499,650,5.7582297325,1444,-1.0000000000 +651,0,0.3590478301,651,4.2548680305,1445,-1.0000000000 +652,0,0.4855530262,652,3.1840777397,1446,-1.0000000000 +653,0,0.6170494556,653,2.7186973095,1447,-1.0000000000 +654,0,0.7311881781,654,2.4960284233,1448,-1.0000000000 +655,0,0.8497233391,655,2.3866577148,1449,-1.0000000000 +656,0,0.8977967501,656,2.2938549519,1450,-1.0000000000 +657,0,0.9207286835,657,2.3358664513,1451,-1.0000000000 +658,0,0.8413833380,658,2.4213399887,1452,-1.0000000000 +659,0,0.7170580626,659,2.5448734760,1453,-1.0000000000 +660,0,0.5938371420,660,2.7929685116,1454,-1.0000000000 +661,0,0.5012392998,661,3.1163673401,1455,-1.0000000000 +662,0,0.3831444383,662,3.5627930164,1456,-1.0000000000 +663,0,0.2952043712,663,4.7107014656,1457,-1.0000000000 +664,0,0.2229586542,664,6.1396217346,1458,-1.0000000000 +665,0,0.1698745340,665,8.3822546005,1459,-1.0000000000 +666,0,0.1272457540,666,10.6636753082,1460,-1.0000000000 +667,0,0.0948237330,667,12.6990413666,1461,-1.0000000000 +668,0,0.0626095906,668,16.9660911560,1462,-1.0000000000 +669,0,0.0318746492,669,21.1093711853,1463,-1.0000000000 +670,0,-0.0004596915,670,31.6104564667,1464,-1.0000000000 +671,0,-0.0003297509,671,31.6227760315,1465,-1.0000000000 +672,0,0.0000154043,672,31.6227760315,1466,-1.0000000000 +673,0,-0.0001096721,673,31.6227760315,1467,-1.0000000000 +674,0,0.0178631432,674,29.5287456512,1468,-1.0000000000 +675,0,0.0546890534,675,16.1463527679,1469,-1.0000000000 +676,0,0.0868572965,676,12.2466621399,1470,-1.0000000000 +677,0,0.1117715240,677,10.5556993484,1471,-1.0000000000 +678,0,0.1618072391,678,8.4793176651,1472,-1.0000000000 +679,0,0.2181115299,679,6.4094319344,1473,-1.0000000000 +680,0,0.3212501407,680,4.3094873428,1474,-1.0000000000 +681,0,0.4112867415,681,3.4613811970,1475,-1.0000000000 +682,0,0.5046284795,682,3.0084741116,1476,-1.0000000000 +683,0,0.5720140934,683,2.7893841267,1477,-1.0000000000 +684,0,0.5922526121,684,2.7598524094,1478,-1.0000000000 +685,0,0.5841865540,685,2.8037195206,1479,-1.0000000000 +686,0,0.5365922451,686,3.0683386326,1480,-1.0000000000 +687,0,0.4612809718,687,3.3554875851,1481,-1.0000000000 +688,0,0.3670029640,688,3.9444963932,1482,-1.0000000000 +689,0,0.3295761645,689,4.3042774200,1483,-1.0000000000 +690,0,0.2607125342,690,5.3240251541,1484,-1.0000000000 +691,0,0.1775101870,691,7.7890319824,1485,-1.0000000000 +692,0,0.1102388427,692,12.0671710968,1486,-1.0000000000 +693,0,0.0604847036,693,18.2411289215,1487,-1.0000000000 +694,0,0.0366388559,694,21.5846443176,1488,-1.0000000000 +695,0,0.0300995968,695,25.3701477051,1489,-1.0000000000 +696,0,0.0216256510,696,27.5726089478,1490,-1.0000000000 +697,0,0.0095130559,697,30.6409358978,1491,-1.0000000000 +698,0,-0.0004731133,698,31.6227760315,1492,-1.0000000000 +699,0,0.0004173194,699,31.6227760315,1493,-1.0000000000 +700,0,0.0000373051,700,31.6227760315,1494,-1.0000000000 +701,0,0.0001317095,701,31.6227760315,1495,-1.0000000000 +702,0,0.0008505006,702,31.6226882935,1496,-1.0000000000 +703,0,-0.0003478700,703,31.6172637939,1497,-1.0000000000 +704,0,0.0189459547,704,23.7632350922,1498,-1.0000000000 +705,0,0.0240347050,705,25.5765171051,1499,-1.0000000000 +706,0,0.0671423450,706,20.8565483093,1500,-1.0000000000 +707,0,0.1300252825,707,10.1886911392,1501,-1.0000000000 +708,0,0.1885967255,708,6.9609127045,1502,-1.0000000000 +709,0,0.2572585344,709,5.1757941246,1503,-1.0000000000 +710,0,0.2850341201,710,4.6739964485,1504,-1.0000000000 +711,0,0.2925059199,711,4.6598939896,1505,-1.0000000000 +712,0,0.2976753414,712,4.3765192032,1506,-1.0000000000 +713,0,0.3117159903,713,4.3831186295,1507,-1.0000000000 +714,0,0.2751280963,714,4.9206175804,1508,-1.0000000000 +715,0,0.2536923289,715,5.5485920906,1509,-1.0000000000 +716,0,0.2220572233,716,5.7631196976,1510,-1.0000000000 +717,0,0.2168289870,717,5.8250527382,1511,-1.0000000000 +718,0,0.1724179536,718,7.2118659019,1512,-1.0000000000 +719,0,0.0910157040,719,12.4245290756,1513,-1.0000000000 +720,0,0.0563279390,720,17.5090179443,1514,-1.0000000000 +721,0,0.0309663750,721,21.6350479126,1515,-1.0000000000 +722,0,0.0123580080,722,26.7846317291,1516,-1.0000000000 +723,0,0.0015036017,723,31.4724483490,1517,-1.0000000000 +724,0,0.0008548850,724,31.6225376129,1518,-1.0000000000 +725,0,0.0006256067,725,31.6227760315,1519,-1.0000000000 +726,0,0.0002573585,726,31.6227760315,1520,-1.0000000000 +727,0,0.0000280884,727,31.6227760315,1521,-1.0000000000 +728,0,-0.0000565607,728,31.6227760315,1522,-1.0000000000 +729,0,0.0003511363,729,31.6227760315,1523,-1.0000000000 +730,0,-0.0001680269,730,31.6227760315,1524,-1.0000000000 +731,0,0.0000254372,731,31.6227760315,1525,-1.0000000000 +732,0,0.0008010912,732,31.6227760315,1526,-1.0000000000 +733,0,0.0012664478,733,31.4162387848,1527,-1.0000000000 +734,0,0.0087214625,734,28.7205638885,1528,-1.0000000000 +735,0,0.0626093596,735,19.5268421173,1529,-1.0000000000 +736,0,0.0923844799,736,11.2921705246,1530,-1.0000000000 +737,0,0.1464712471,737,9.9134054184,1531,-1.0000000000 +738,0,0.1504246145,738,8.1084785461,1532,-1.0000000000 +739,0,0.1739578098,739,7.7448530197,1533,-1.0000000000 +740,0,0.1997769475,740,6.6165623665,1534,-1.0000000000 +741,0,0.2006624788,741,6.4281668663,1535,-1.0000000000 +742,0,0.1754072160,742,6.9995551109,1536,-1.0000000000 +743,0,0.1449064016,743,9.2301797867,1537,-1.0000000000 +744,0,0.1363533288,744,9.0806503296,1538,-1.0000000000 +745,0,0.1309172958,745,8.9661102295,1539,-1.0000000000 +746,0,0.1192817390,746,10.3375415802,1540,-1.0000000000 +747,0,0.0636332557,747,14.1783494949,1541,-1.0000000000 +748,0,0.0384967402,748,22.9521389008,1542,-1.0000000000 +749,0,0.0151172429,749,28.6417751312,1543,-1.0000000000 +750,0,0.0002644823,750,31.6227531433,1544,-1.0000000000 +751,0,0.0001388959,751,31.6227760315,1545,-1.0000000000 +752,0,-0.0000449004,752,31.6227760315,1546,-1.0000000000 +753,0,-0.0001319500,753,31.6227760315,1547,-1.0000000000 +754,0,0.0001573211,754,31.6227760315,1548,-1.0000000000 +755,0,-0.0002211487,755,31.6227760315,1549,-1.0000000000 +756,0,0.0003631258,756,31.6227760315,1550,-1.0000000000 +757,0,-0.0004803424,757,31.6227760315,1551,-1.0000000000 +758,0,0.0002229759,758,31.6227760315,1552,-1.0000000000 +759,0,0.0001782212,759,31.6227760315,1553,-1.0000000000 +760,0,-0.0005359335,760,31.6227760315,1554,-1.0000000000 +761,0,0.0002537031,761,31.6227760315,1555,-1.0000000000 +762,0,0.0070610512,762,28.9331836700,1556,-1.0000000000 +763,0,0.0071148821,763,29.6497535706,1557,-1.0000000000 +764,0,0.0041782572,764,30.8653697968,1558,-1.0000000000 +765,0,0.0462772399,765,21.3133430481,1559,-1.0000000000 +766,0,0.0544400029,766,16.0949192047,1560,-1.0000000000 +767,0,0.0392944776,767,18.0789394379,1561,-1.0000000000 +768,0,0.0200691894,768,29.0664215088,1562,-1.0000000000 +769,0,0.0608186498,769,16.4322891235,1563,-1.0000000000 +770,0,0.0768310428,770,12.8409261703,1564,-1.0000000000 +771,0,0.0623596348,771,16.9758491516,1565,-1.0000000000 +772,0,0.0616865344,772,16.0248012543,1566,-1.0000000000 +773,0,0.0621746406,773,15.3318328857,1567,-1.0000000000 +774,0,0.0373334214,774,23.6103172302,1568,-1.0000000000 +775,0,0.0014662633,775,31.2061862946,1569,-1.0000000000 +776,0,0.0005060213,776,31.5637264252,1570,-1.0000000000 +777,0,-0.0001282875,777,31.6227760315,1571,-1.0000000000 +778,0,-0.0000724052,778,31.6227760315,1572,-1.0000000000 +779,0,-0.0003652821,779,31.6227760315,1573,-1.0000000000 +780,0,0.0004401279,780,31.6227760315,1574,-1.0000000000 +781,0,-0.0000989889,781,31.6227760315,1575,-1.0000000000 +782,0,-0.0000036841,782,31.6227760315,1576,-1.0000000000 +783,0,0.0003134308,783,31.6227760315,1577,-1.0000000000 +784,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,1.0000000000,835,-1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,1.0000000000,871,-1.0000000000,872,1.0000000000,873,1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,-1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,1.0000000000,973,-1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,-1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1578,-1.0000000000 +785,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,1.0000000000,835,-1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,-1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,-1.0000000000,978,1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1579,-1.0000000000 +786,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,-1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,1.0000000000,953,-1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1580,-1.0000000000 +787,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,-1.0000000000,843,1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,-1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,-1.0000000000,982,1.0000000000,983,-1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,-1.0000000000,1063,1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1581,-1.0000000000 +788,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,-1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,-1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,1.0000000000,868,-1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,1.0000000000,949,-1.0000000000,950,-1.0000000000,951,1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,-1.0000000000,981,-1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,-1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,-1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1582,-1.0000000000 +789,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1583,-1.0000000000 +790,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,-1.0000000000,862,1.0000000000,863,-1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1584,-1.0000000000 +791,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,-1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1585,-1.0000000000 +792,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,-1.0000000000,978,-1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,-1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,-1.0000000000,1567,1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1586,-1.0000000000 +793,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,-1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,-1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,-1.0000000000,972,1.0000000000,973,1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,-1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1587,-1.0000000000 +794,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,-1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1588,-1.0000000000 +795,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,1.0000000000,846,-1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,1.0000000000,859,-1.0000000000,860,1.0000000000,861,1.0000000000,862,-1.0000000000,863,1.0000000000,864,-1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,-1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,-1.0000000000,1589,-1.0000000000 +796,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,-1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,-1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1590,-1.0000000000 +797,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,1.0000000000,854,1.0000000000,855,1.0000000000,856,-1.0000000000,857,1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,-1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,-1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,-1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1591,-1.0000000000 +798,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,-1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,1.0000000000,888,-1.0000000000,889,1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,1.0000000000,896,-1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,-1.0000000000,907,-1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,-1.0000000000,933,1.0000000000,934,1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,1.0000000000,947,-1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,-1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,-1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1592,-1.0000000000 +799,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,-1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,-1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,1.0000000000,947,-1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1593,-1.0000000000 +800,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,-1.0000000000,1594,-1.0000000000 +801,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,1.0000000000,939,-1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,1.0000000000,981,-1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1595,-1.0000000000 +802,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1596,-1.0000000000 +803,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,-1.0000000000,972,1.0000000000,973,1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,1.0000000000,981,-1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,-1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,-1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,-1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1597,-1.0000000000 +804,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,-1.0000000000,862,-1.0000000000,863,1.0000000000,864,1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,-1.0000000000,888,1.0000000000,889,-1.0000000000,890,1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,-1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1598,-1.0000000000 +805,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,-1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,-1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,-1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,-1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1599,-1.0000000000 +806,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,-1.0000000000,913,-1.0000000000,914,1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1600,-1.0000000000 +807,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,-1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,-1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1601,-1.0000000000 +808,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,-1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1602,-1.0000000000 +809,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,1.0000000000,820,1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,-1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,1.0000000000,868,1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,-1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,1.0000000000,984,1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1603,-1.0000000000 +810,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,-1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1604,-1.0000000000 +811,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,-1.0000000000,940,1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,-1.0000000000,991,1.0000000000,992,-1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1605,-1.0000000000 +812,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,-1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,1.0000000000,979,-1.0000000000,980,1.0000000000,981,-1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,-1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,-1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,-1.0000000000,1606,-1.0000000000 +813,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,-1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1607,-1.0000000000 +814,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,-1.0000000000,840,1.0000000000,841,-1.0000000000,842,1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,-1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1608,-1.0000000000 +815,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,-1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,1.0000000000,868,1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,-1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1609,-1.0000000000 +816,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1610,-1.0000000000 +817,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,1.0000000000,939,1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,1.0000000000,971,-1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1611,-1.0000000000 +818,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1612,-1.0000000000 +819,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,-1.0000000000,867,1.0000000000,868,-1.0000000000,869,1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,1.0000000000,891,1.0000000000,892,-1.0000000000,893,-1.0000000000,894,1.0000000000,895,-1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,-1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1613,-1.0000000000 +820,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1614,-1.0000000000 +821,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,-1.0000000000,870,-1.0000000000,871,1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,-1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,-1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1615,-1.0000000000 +822,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,1.0000000000,864,1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,-1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1616,-1.0000000000 +823,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,-1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,-1.0000000000,862,1.0000000000,863,-1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,1.0000000000,895,-1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,1.0000000000,902,-1.0000000000,903,1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,-1.0000000000,928,-1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1617,-1.0000000000 +824,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,-1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,-1.0000000000,901,1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,1.0000000000,922,-1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,-1.0000000000,1618,-1.0000000000 +825,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,-1.0000000000,979,1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1619,-1.0000000000 +826,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,-1.0000000000,803,1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,-1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,-1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,-1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,1.0000000000,891,-1.0000000000,892,1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,-1.0000000000,970,1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,1.0000000000,987,-1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,-1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1620,-1.0000000000 +827,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,-1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,-1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1621,-1.0000000000 +828,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,-1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1622,-1.0000000000 +829,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,1.0000000000,844,1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,-1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,1.0000000000,891,-1.0000000000,892,1.0000000000,893,1.0000000000,894,-1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1623,-1.0000000000 +830,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,-1.0000000000,851,-1.0000000000,852,1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,1.0000000000,861,-1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,-1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,1.0000000000,968,1.0000000000,969,-1.0000000000,970,1.0000000000,971,1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,1.0000000000,992,-1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1624,-1.0000000000 +831,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,-1.0000000000,986,1.0000000000,987,-1.0000000000,988,1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,-1.0000000000,1093,1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1625,-1.0000000000 +832,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,-1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,1.0000000000,833,-1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,-1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,-1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1626,-1.0000000000 +833,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,-1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,-1.0000000000,852,1.0000000000,853,1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,-1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,1.0000000000,971,1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1627,-1.0000000000 +834,0,0.8421083689,1578,0.0235017370,1628,-1.0000000000 +835,0,-0.2846569419,1579,0.0261672977,1629,-1.0000000000 +836,0,-0.6479381323,1580,0.0223037712,1630,-1.0000000000 +837,0,0.3773280084,1581,0.0231465548,1631,-1.0000000000 +838,0,-1.0555180311,1582,0.0243742540,1632,-1.0000000000 +839,0,0.7876127958,1583,0.0225345884,1633,-1.0000000000 +840,0,-0.9667378664,1584,0.0249240641,1634,-1.0000000000 +841,0,-0.7313812971,1585,0.0240810122,1635,-1.0000000000 +842,0,0.7189067602,1586,0.0228495728,1636,-1.0000000000 +843,0,0.7211230993,1587,0.0222876444,1637,-1.0000000000 +844,0,-0.9235455990,1588,0.0243723150,1638,-1.0000000000 +845,0,-0.5571734905,1589,0.0194766801,1639,-1.0000000000 +846,0,0.8664592505,1590,0.0231784545,1640,-1.0000000000 +847,0,0.3598901629,1591,0.0223980900,1641,-1.0000000000 +848,0,0.8700128198,1592,0.0229846016,1642,-1.0000000000 +849,0,0.7697677016,1593,0.0229231622,1643,-1.0000000000 +850,0,0.2859251499,1594,0.0247299802,1644,-1.0000000000 +851,0,-0.7671884298,1595,0.0267935731,1645,-1.0000000000 +852,0,0.7625827193,1596,0.0292239934,1646,-1.0000000000 +853,0,-0.6408279538,1597,0.0266149249,1647,-1.0000000000 +854,0,0.4876926839,1598,0.0229843184,1648,-1.0000000000 +855,0,-0.7342277169,1599,0.0265182480,1649,-1.0000000000 +856,0,-0.0043167840,1600,0.0231549405,1650,-1.0000000000 +857,0,-0.9360870719,1601,0.0253012348,1651,-1.0000000000 +858,0,-0.2136942148,1602,0.0208041538,1652,-1.0000000000 +859,0,0.6678317189,1603,0.0230627339,1653,-1.0000000000 +860,0,-0.8490259647,1604,0.0283609889,1654,-1.0000000000 +861,0,-0.8502492905,1605,0.0245368518,1655,-1.0000000000 +862,0,0.3299311101,1606,0.0213238895,1656,-1.0000000000 +863,0,-0.6741704941,1607,0.0265815370,1657,-1.0000000000 +864,0,-0.7203316092,1608,0.0197502580,1658,-1.0000000000 +865,0,-0.5871137381,1609,0.0245222691,1659,-1.0000000000 +866,0,-0.1073979139,1610,0.0194286499,1660,-1.0000000000 +867,0,-0.6457850933,1611,0.0255288966,1661,-1.0000000000 +868,0,-0.7653211355,1612,0.0226976387,1662,-1.0000000000 +869,0,-0.7774050236,1613,0.0227414705,1663,-1.0000000000 +870,0,-0.7453527451,1614,0.0255117286,1664,-1.0000000000 +871,0,0.3966747224,1615,0.0273439139,1665,-1.0000000000 +872,0,0.6267040372,1616,0.0262405220,1666,-1.0000000000 +873,0,-0.7901589870,1617,0.0219206698,1667,-1.0000000000 +874,0,-0.6241480708,1618,0.0257767029,1668,-1.0000000000 +875,0,0.3426552415,1619,0.0209231097,1669,-1.0000000000 +876,0,1.0251504183,1620,0.0249391589,1670,-1.0000000000 +877,0,0.5753672123,1621,0.0281392988,1671,-1.0000000000 +878,0,0.0552809983,1622,0.0230191071,1672,-1.0000000000 +879,0,-0.7643856406,1623,0.0223054085,1673,-1.0000000000 +880,0,-0.9038895965,1624,0.0259901769,1674,-1.0000000000 +881,0,0.3115992844,1625,0.0212058239,1675,-1.0000000000 +882,0,0.8047288656,1626,0.0262604449,1676,-1.0000000000 +883,0,-0.1062955856,1627,0.0169141162,1677,-1.0000000000 +884,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1828,-1.0000000000 +885,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1829,-1.0000000000 +886,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1830,-1.0000000000 +887,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1831,-1.0000000000 +888,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1832,-1.0000000000 +889,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1833,-1.0000000000 +890,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1834,-1.0000000000 +891,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1835,-1.0000000000 +892,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1836,-1.0000000000 +893,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1837,-1.0000000000 +894,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1838,-1.0000000000 +895,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1839,-1.0000000000 +896,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1840,-1.0000000000 +897,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1841,-1.0000000000 +898,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1842,-1.0000000000 +899,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1843,-1.0000000000 +900,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1844,-1.0000000000 +901,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1845,-1.0000000000 +902,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1846,-1.0000000000 +903,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1847,-1.0000000000 +904,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1848,-1.0000000000 +905,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1849,-1.0000000000 +906,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1850,-1.0000000000 +907,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1851,-1.0000000000 +908,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1852,-1.0000000000 +909,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1853,-1.0000000000 +910,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,-1.0000000000,1854,-1.0000000000 +911,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1855,-1.0000000000 +912,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1856,-1.0000000000 +913,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1857,-1.0000000000 +914,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1858,-1.0000000000 +915,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1859,-1.0000000000 +916,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1860,-1.0000000000 +917,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1861,-1.0000000000 +918,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1862,-1.0000000000 +919,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1863,-1.0000000000 +920,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,-1.0000000000,1864,-1.0000000000 +921,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1865,-1.0000000000 +922,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1866,-1.0000000000 +923,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1867,-1.0000000000 +924,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1868,-1.0000000000 +925,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1869,-1.0000000000 +926,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1870,-1.0000000000 +927,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1871,-1.0000000000 +928,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1872,-1.0000000000 +929,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1873,-1.0000000000 +930,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1874,-1.0000000000 +931,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1875,-1.0000000000 +932,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1876,-1.0000000000 +933,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1877,-1.0000000000 +934,0,-0.4422365427,1828,0.1020488292,1878,-1.0000000000 +935,0,0.4480501115,1829,0.0991111100,1879,-1.0000000000 +936,0,-0.1003972590,1830,0.0965854451,1880,-1.0000000000 +937,0,-1.1484458447,1831,0.1059442237,1881,-1.0000000000 +938,0,1.0887894630,1832,0.0989778936,1882,-1.0000000000 +939,0,-1.0348954201,1833,0.1068197116,1883,-1.0000000000 +940,0,0.5534237027,1834,0.1160275713,1884,-1.0000000000 +941,0,0.9348842502,1835,0.1132629067,1885,-1.0000000000 +942,0,-0.4643164575,1836,0.1065536290,1886,-1.0000000000 +943,0,0.0835817456,1837,0.1003656834,1887,-1.0000000000 +944,0,0.3977578878,1838,0.1060394570,1888,-1.0000000000 +945,0,0.0678663701,1839,0.1013686582,1889,-1.0000000000 +946,0,-0.8597519398,1840,0.1015724093,1890,-1.0000000000 +947,0,1.2035224438,1841,0.1225976050,1891,-1.0000000000 +948,0,0.6223870516,1842,0.1063073128,1892,-1.0000000000 +949,0,-0.6301627755,1843,0.1010998860,1893,-1.0000000000 +950,0,-0.2829226255,1844,0.1127813533,1894,-1.0000000000 +951,0,-0.3967113197,1845,0.0949260890,1895,-1.0000000000 +952,0,-0.4686790705,1846,0.1089941412,1896,-1.0000000000 +953,0,0.1133320630,1847,0.1046472266,1897,-1.0000000000 +954,0,-0.8415259123,1848,0.1142742112,1898,-1.0000000000 +955,0,-0.9505460262,1849,0.1072790921,1899,-1.0000000000 +956,0,0.6531319022,1850,0.0998267680,1900,-1.0000000000 +957,0,-1.1331965923,1851,0.1025341526,1901,-1.0000000000 +958,0,1.3528954983,1852,0.0976141840,1902,-1.0000000000 +959,0,0.4627612829,1853,0.1206339747,1903,-1.0000000000 +960,0,0.8055898547,1854,0.1269099861,1904,-1.0000000000 +961,0,-0.9832527637,1855,0.1577575952,1905,-1.0000000000 +962,0,-0.1737223566,1856,0.1104114428,1906,-1.0000000000 +963,0,-0.0058632195,1857,0.1134437397,1907,-1.0000000000 +964,0,-0.9974204898,1858,0.1002218947,1908,-1.0000000000 +965,0,-1.0862815380,1859,0.1043362990,1909,-1.0000000000 +966,0,0.0564095974,1860,0.1188390180,1910,-1.0000000000 +967,0,1.0363285542,1861,0.1173062101,1911,-1.0000000000 +968,0,-0.7735077143,1862,0.1057077050,1912,-1.0000000000 +969,0,-0.4638699293,1863,0.1058885753,1913,-1.0000000000 +970,0,-0.6389272809,1864,0.1045930758,1914,-1.0000000000 +971,0,-0.0019936562,1865,0.1059108078,1915,-1.0000000000 +972,0,-0.4133639932,1866,0.1102507859,1916,-1.0000000000 +973,0,-0.2886965275,1867,0.1195091382,1917,-1.0000000000 +974,0,0.5997220874,1868,0.1224286780,1918,-1.0000000000 +975,0,1.2392590046,1869,0.1132306159,1919,-1.0000000000 +976,0,-1.6176872253,1870,0.1193554476,1920,-1.0000000000 +977,0,-0.0936360657,1871,0.1110986844,1921,-1.0000000000 +978,0,0.8811743259,1872,0.1029497087,1922,-1.0000000000 +979,0,0.3017511964,1873,0.0968364775,1923,-1.0000000000 +980,0,0.5134924650,1874,0.1179610640,1924,-1.0000000000 +981,0,-0.0661748648,1875,0.1095789969,1925,-1.0000000000 +982,0,-1.3897794485,1876,0.1369069517,1926,-1.0000000000 +983,0,-0.7762956619,1877,0.1096271724,1927,-1.0000000000 +984,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2078,-1.0000000000 +985,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2079,-1.0000000000 +986,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2080,-1.0000000000 +987,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2081,-1.0000000000 +988,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2082,-1.0000000000 +989,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2083,-1.0000000000 +990,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2084,-1.0000000000 +991,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2085,-1.0000000000 +992,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,-1.0000000000,1977,1.0000000000,2086,-1.0000000000 +993,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2087,-1.0000000000 +994,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2088,-1.0000000000 +995,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2089,-1.0000000000 +996,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2090,-1.0000000000 +997,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2091,-1.0000000000 +998,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2092,-1.0000000000 +999,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2093,-1.0000000000 +1000,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2094,-1.0000000000 +1001,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2095,-1.0000000000 +1002,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2096,-1.0000000000 +1003,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2097,-1.0000000000 +1004,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2098,-1.0000000000 +1005,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2099,-1.0000000000 +1006,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2100,-1.0000000000 +1007,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2101,-1.0000000000 +1008,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2102,-1.0000000000 +1009,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,1.0000000000,2103,-1.0000000000 +1010,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2104,-1.0000000000 +1011,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2105,-1.0000000000 +1012,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2106,-1.0000000000 +1013,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,1.0000000000,2107,-1.0000000000 +1014,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2108,-1.0000000000 +1015,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,-1.0000000000,1977,1.0000000000,2109,-1.0000000000 +1016,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2110,-1.0000000000 +1017,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2111,-1.0000000000 +1018,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2112,-1.0000000000 +1019,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2113,-1.0000000000 +1020,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2114,-1.0000000000 +1021,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2115,-1.0000000000 +1022,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2116,-1.0000000000 +1023,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2117,-1.0000000000 +1024,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2118,-1.0000000000 +1025,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2119,-1.0000000000 +1026,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2120,-1.0000000000 +1027,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,1.0000000000,2121,-1.0000000000 +1028,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2122,-1.0000000000 +1029,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2123,-1.0000000000 +1030,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2124,-1.0000000000 +1031,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2125,-1.0000000000 +1032,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2126,-1.0000000000 +1033,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2127,-1.0000000000 +1034,0,-1.5439108610,2078,0.0876089185,2128,-1.0000000000 +1035,0,-0.4739111364,2079,0.0961711332,2129,-1.0000000000 +1036,0,-1.0415468216,2080,0.0937085450,2130,-1.0000000000 +1037,0,0.6139742732,2081,0.0812947005,2131,-1.0000000000 +1038,0,0.5557186604,2082,0.0871866420,2132,-1.0000000000 +1039,0,-0.3893597722,2083,0.0804945678,2133,-1.0000000000 +1040,0,-0.8266534805,2084,0.0812162086,2134,-1.0000000000 +1041,0,0.2232298106,2085,0.0948337018,2135,-1.0000000000 +1042,0,-0.0620028004,2086,0.0776069760,2136,-1.0000000000 +1043,0,1.1303224564,2087,0.0934174880,2137,-1.0000000000 +1044,0,-0.2364211082,2088,0.0797051936,2138,-1.0000000000 +1045,0,-0.9706853628,2089,0.0967904106,2139,-1.0000000000 +1046,0,-0.2923468649,2090,0.0907429308,2140,-1.0000000000 +1047,0,-0.5784704685,2091,0.0755174533,2141,-1.0000000000 +1048,0,-0.0592839196,2092,0.0796242356,2142,-1.0000000000 +1049,0,0.3860493600,2093,0.0900726616,2143,-1.0000000000 +1050,0,1.4812798500,2094,0.0888576508,2144,-1.0000000000 +1051,0,-0.8718976378,2095,0.1031556055,2145,-1.0000000000 +1052,0,-0.1305737942,2096,0.0803080872,2146,-1.0000000000 +1053,0,-0.2846091986,2097,0.0820637047,2147,-1.0000000000 +1054,0,0.1756512523,2098,0.0995460078,2148,-1.0000000000 +1055,0,1.2454360723,2099,0.1092514172,2149,-1.0000000000 +1056,0,1.0246465206,2100,0.0863156915,2150,-1.0000000000 +1057,0,0.2504656911,2101,0.0761504471,2151,-1.0000000000 +1058,0,0.7058990002,2102,0.0841773748,2152,-1.0000000000 +1059,0,0.0360603780,2103,0.0885879919,2153,-1.0000000000 +1060,0,-0.5337175727,2104,0.0816795677,2154,-1.0000000000 +1061,0,1.3386275768,2105,0.0769669712,2155,-1.0000000000 +1062,0,-0.5070524216,2106,0.0816306695,2156,-1.0000000000 +1063,0,-0.7249984741,2107,0.0855440348,2157,-1.0000000000 +1064,0,1.4707089663,2108,0.0787225068,2158,-1.0000000000 +1065,0,0.2180018425,2109,0.0845124200,2159,-1.0000000000 +1066,0,0.6674256325,2110,0.0969409272,2160,-1.0000000000 +1067,0,0.0993419141,2111,0.0880582631,2161,-1.0000000000 +1068,0,0.0910886228,2112,0.0868164375,2162,-1.0000000000 +1069,0,-0.5364635587,2113,0.1057630703,2163,-1.0000000000 +1070,0,1.2253115177,2114,0.0867191926,2164,-1.0000000000 +1071,0,0.8443910480,2115,0.0999500081,2165,-1.0000000000 +1072,0,1.0910279751,2116,0.0895362720,2166,-1.0000000000 +1073,0,0.1953761876,2117,0.0960677862,2167,-1.0000000000 +1074,0,0.4993414283,2118,0.0850909576,2168,-1.0000000000 +1075,0,0.2611379027,2119,0.0794575140,2169,-1.0000000000 +1076,0,-1.7781825066,2120,0.0924188271,2170,-1.0000000000 +1077,0,-0.6430346966,2121,0.0960254595,2171,-1.0000000000 +1078,0,0.7111772299,2122,0.0932400376,2172,-1.0000000000 +1079,0,0.5366181135,2123,0.0883551985,2173,-1.0000000000 +1080,0,1.2333692312,2124,0.0930536613,2174,-1.0000000000 +1081,0,0.7760955095,2125,0.0919722095,2175,-1.0000000000 +1082,0,-0.0114938617,2126,0.0945464075,2176,-1.0000000000 +1083,0,0.8896213770,2127,0.1000391170,2177,-1.0000000000 +1084,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,1.0000000000,2328,-1.0000000000 +1085,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2329,-1.0000000000 +1086,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2330,-1.0000000000 +1087,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2331,-1.0000000000 +1088,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2332,-1.0000000000 +1089,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,1.0000000000,2333,-1.0000000000 +1090,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2334,-1.0000000000 +1091,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2335,-1.0000000000 +1092,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2336,-1.0000000000 +1093,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2337,-1.0000000000 +1094,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2338,-1.0000000000 +1095,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2339,-1.0000000000 +1096,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,-1.0000000000,2340,-1.0000000000 +1097,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2341,-1.0000000000 +1098,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2342,-1.0000000000 +1099,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2343,-1.0000000000 +1100,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2344,-1.0000000000 +1101,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2345,-1.0000000000 +1102,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2346,-1.0000000000 +1103,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2347,-1.0000000000 +1104,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2348,-1.0000000000 +1105,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2349,-1.0000000000 +1106,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2350,-1.0000000000 +1107,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2351,-1.0000000000 +1108,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,-1.0000000000,2352,-1.0000000000 +1109,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2353,-1.0000000000 +1110,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2354,-1.0000000000 +1111,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,1.0000000000,2355,-1.0000000000 +1112,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2356,-1.0000000000 +1113,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2357,-1.0000000000 +1114,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2358,-1.0000000000 +1115,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2359,-1.0000000000 +1116,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2360,-1.0000000000 +1117,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2361,-1.0000000000 +1118,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,1.0000000000,2362,-1.0000000000 +1119,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,1.0000000000,2363,-1.0000000000 +1120,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,1.0000000000,2364,-1.0000000000 +1121,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2365,-1.0000000000 +1122,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,-1.0000000000,2366,-1.0000000000 +1123,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2367,-1.0000000000 +1124,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2368,-1.0000000000 +1125,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2369,-1.0000000000 +1126,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2370,-1.0000000000 +1127,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2371,-1.0000000000 +1128,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2372,-1.0000000000 +1129,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2373,-1.0000000000 +1130,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2374,-1.0000000000 +1131,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2375,-1.0000000000 +1132,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2376,-1.0000000000 +1133,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2377,-1.0000000000 +1134,0,0.0831787437,2328,0.0764585137,2378,-1.0000000000 +1135,0,-0.1364517659,2329,0.0798864216,2379,-1.0000000000 +1136,0,1.8092790842,2330,0.0792033300,2380,-1.0000000000 +1137,0,0.2641986907,2331,0.0732443780,2381,-1.0000000000 +1138,0,1.2061002254,2332,0.0782436728,2382,-1.0000000000 +1139,0,-1.8642137051,2333,0.0861918181,2383,-1.0000000000 +1140,0,-0.1733025759,2334,0.0763822570,2384,-1.0000000000 +1141,0,1.4934809208,2335,0.0766226798,2385,-1.0000000000 +1142,0,-0.1346085519,2336,0.0771160796,2386,-1.0000000000 +1143,0,0.1427569836,2337,0.0810657293,2387,-1.0000000000 +1144,0,-0.0470439941,2338,0.0790032297,2388,-1.0000000000 +1145,0,0.3314089775,2339,0.0826260373,2389,-1.0000000000 +1146,0,0.5605881810,2340,0.0821316242,2390,-1.0000000000 +1147,0,-0.0279953144,2341,0.0758167356,2391,-1.0000000000 +1148,0,0.1289070398,2342,0.0772503018,2392,-1.0000000000 +1149,0,-0.2735776901,2343,0.0737596825,2393,-1.0000000000 +1150,0,0.0808036923,2344,0.0803246498,2394,-1.0000000000 +1151,0,0.3288836777,2345,0.0781317875,2395,-1.0000000000 +1152,0,-0.0946673453,2346,0.0748800337,2396,-1.0000000000 +1153,0,0.1801957637,2347,0.0833257213,2397,-1.0000000000 +1154,0,-0.3167375326,2348,0.0825496614,2398,-1.0000000000 +1155,0,-1.6758612394,2349,0.0833077803,2399,-1.0000000000 +1156,0,0.4785592556,2350,0.0786740705,2400,-1.0000000000 +1157,0,-0.0440198034,2351,0.0839604437,2401,-1.0000000000 +1158,0,-0.4510684013,2352,0.0727607608,2402,-1.0000000000 +1159,0,0.4796656966,2353,0.0754371658,2403,-1.0000000000 +1160,0,-0.1467658728,2354,0.0801599845,2404,-1.0000000000 +1161,0,-1.6980912685,2355,0.0824286491,2405,-1.0000000000 +1162,0,-0.5121878386,2356,0.0887714252,2406,-1.0000000000 +1163,0,-0.1283654422,2357,0.0806707665,2407,-1.0000000000 +1164,0,-0.5782864094,2358,0.0757020339,2408,-1.0000000000 +1165,0,-1.3219553232,2359,0.0830138251,2409,-1.0000000000 +1166,0,1.3010077477,2360,0.0867237747,2410,-1.0000000000 +1167,0,1.8038090467,2361,0.0811277553,2411,-1.0000000000 +1168,0,1.0391250849,2362,0.0832474679,2412,-1.0000000000 +1169,0,-0.8869209290,2363,0.0883564204,2413,-1.0000000000 +1170,0,0.4410263300,2364,0.0816484168,2414,-1.0000000000 +1171,0,0.5588466525,2365,0.0827038214,2415,-1.0000000000 +1172,0,-0.4485054016,2366,0.0719914138,2416,-1.0000000000 +1173,0,0.2402071357,2367,0.0743149817,2417,-1.0000000000 +1174,0,-1.7117775679,2368,0.0778249726,2418,-1.0000000000 +1175,0,-0.2367737740,2369,0.0717907771,2419,-1.0000000000 +1176,0,0.0982874855,2370,0.0753626451,2420,-1.0000000000 +1177,0,-0.0940445662,2371,0.0761000440,2421,-1.0000000000 +1178,0,-0.0428520180,2372,0.0847094953,2422,-1.0000000000 +1179,0,0.5425710678,2373,0.0811219513,2423,-1.0000000000 +1180,0,0.4396020770,2374,0.0789181367,2424,-1.0000000000 +1181,0,0.3062215745,2375,0.0784865990,2425,-1.0000000000 +1182,0,-0.2372326851,2376,0.0754072890,2426,-1.0000000000 +1183,0,0.4145061076,2377,0.0873605311,2427,-1.0000000000 +1184,0,-0.0000000000,2428,1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,-1.0000000000,2433,-1.0000000000,2434,-1.0000000000,2435,1.0000000000,2436,1.0000000000,2437,-1.0000000000,2438,1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,-1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,-1.0000000000,2445,-1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,-1.0000000000,2449,1.0000000000,2450,1.0000000000,2451,-1.0000000000,2452,-1.0000000000,2453,1.0000000000,2454,1.0000000000,2455,1.0000000000,2456,-1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,-1.0000000000,2469,1.0000000000,2470,1.0000000000,2471,-1.0000000000,2472,1.0000000000,2473,1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,1.0000000000,2578,-1.0000000000 +1185,0,-0.0000000000,2428,1.0000000000,2429,-1.0000000000,2430,-1.0000000000,2431,1.0000000000,2432,1.0000000000,2433,-1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,1.0000000000,2441,1.0000000000,2442,-1.0000000000,2443,1.0000000000,2444,1.0000000000,2445,-1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,-1.0000000000,2449,1.0000000000,2450,-1.0000000000,2451,-1.0000000000,2452,1.0000000000,2453,-1.0000000000,2454,-1.0000000000,2455,-1.0000000000,2456,-1.0000000000,2457,-1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,1.0000000000,2462,-1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,1.0000000000,2466,-1.0000000000,2467,-1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,1.0000000000,2473,1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,1.0000000000,2579,-1.0000000000 +1186,0,-0.0000000000,2428,-1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,-1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,-1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,1.0000000000,2440,-1.0000000000,2441,1.0000000000,2442,1.0000000000,2443,-1.0000000000,2444,-1.0000000000,2445,1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,-1.0000000000,2449,-1.0000000000,2450,-1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,-1.0000000000,2454,-1.0000000000,2455,1.0000000000,2456,1.0000000000,2457,1.0000000000,2458,-1.0000000000,2459,-1.0000000000,2460,-1.0000000000,2461,1.0000000000,2462,-1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,-1.0000000000,2473,-1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,-1.0000000000,2580,-1.0000000000 +1187,0,-0.0000000000,2428,-1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,-1.0000000000,2437,-1.0000000000,2438,1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,-1.0000000000,2442,1.0000000000,2443,-1.0000000000,2444,-1.0000000000,2445,1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,-1.0000000000,2449,-1.0000000000,2450,1.0000000000,2451,-1.0000000000,2452,-1.0000000000,2453,1.0000000000,2454,-1.0000000000,2455,1.0000000000,2456,-1.0000000000,2457,1.0000000000,2458,-1.0000000000,2459,-1.0000000000,2460,1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,1.0000000000,2464,-1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,-1.0000000000,2469,-1.0000000000,2470,1.0000000000,2471,-1.0000000000,2472,-1.0000000000,2473,1.0000000000,2474,1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,1.0000000000,2581,-1.0000000000 +1188,0,-0.0000000000,2428,-1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,-1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,1.0000000000,2436,1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,-1.0000000000,2445,1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,-1.0000000000,2449,-1.0000000000,2450,-1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,-1.0000000000,2454,-1.0000000000,2455,1.0000000000,2456,-1.0000000000,2457,-1.0000000000,2458,-1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,-1.0000000000,2464,1.0000000000,2465,1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,1.0000000000,2469,-1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,1.0000000000,2473,-1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,-1.0000000000,2582,-1.0000000000 +1189,0,-0.0000000000,2428,1.0000000000,2429,1.0000000000,2430,-1.0000000000,2431,-1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,1.0000000000,2435,1.0000000000,2436,1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,-1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,-1.0000000000,2445,-1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,1.0000000000,2449,-1.0000000000,2450,1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,1.0000000000,2454,-1.0000000000,2455,-1.0000000000,2456,1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,1.0000000000,2469,-1.0000000000,2470,-1.0000000000,2471,-1.0000000000,2472,1.0000000000,2473,-1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,-1.0000000000,2583,-1.0000000000 +1190,0,-0.0000000000,2428,1.0000000000,2429,-1.0000000000,2430,-1.0000000000,2431,1.0000000000,2432,1.0000000000,2433,-1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,1.0000000000,2437,-1.0000000000,2438,1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,-1.0000000000,2445,-1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,-1.0000000000,2449,-1.0000000000,2450,-1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,-1.0000000000,2454,1.0000000000,2455,-1.0000000000,2456,1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,-1.0000000000,2460,-1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,1.0000000000,2464,-1.0000000000,2465,-1.0000000000,2466,1.0000000000,2467,1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,1.0000000000,2471,1.0000000000,2472,-1.0000000000,2473,-1.0000000000,2474,1.0000000000,2475,-1.0000000000,2476,-1.0000000000,2477,-1.0000000000,2584,-1.0000000000 +1191,0,-0.0000000000,2428,1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,-1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,1.0000000000,2441,1.0000000000,2442,-1.0000000000,2443,1.0000000000,2444,1.0000000000,2445,-1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,-1.0000000000,2449,1.0000000000,2450,-1.0000000000,2451,-1.0000000000,2452,1.0000000000,2453,-1.0000000000,2454,1.0000000000,2455,-1.0000000000,2456,-1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,1.0000000000,2461,1.0000000000,2462,-1.0000000000,2463,1.0000000000,2464,-1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,-1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,-1.0000000000,2473,1.0000000000,2474,1.0000000000,2475,-1.0000000000,2476,-1.0000000000,2477,1.0000000000,2585,-1.0000000000 +1192,0,-0.0000000000,2428,1.0000000000,2429,1.0000000000,2430,1.0000000000,2431,-1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,1.0000000000,2435,1.0000000000,2436,-1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,1.0000000000,2440,-1.0000000000,2441,1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,1.0000000000,2445,-1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,1.0000000000,2449,1.0000000000,2450,-1.0000000000,2451,1.0000000000,2452,1.0000000000,2453,-1.0000000000,2454,1.0000000000,2455,-1.0000000000,2456,1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,1.0000000000,2462,1.0000000000,2463,-1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,-1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,-1.0000000000,2473,-1.0000000000,2474,1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,-1.0000000000,2586,-1.0000000000 +1193,0,-0.0000000000,2428,1.0000000000,2429,1.0000000000,2430,1.0000000000,2431,-1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,-1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,-1.0000000000,2442,-1.0000000000,2443,1.0000000000,2444,1.0000000000,2445,1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,1.0000000000,2449,1.0000000000,2450,1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,1.0000000000,2454,-1.0000000000,2455,1.0000000000,2456,-1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,1.0000000000,2462,-1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,-1.0000000000,2468,1.0000000000,2469,-1.0000000000,2470,-1.0000000000,2471,-1.0000000000,2472,-1.0000000000,2473,1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,1.0000000000,2587,-1.0000000000 +1194,0,-0.2191663980,2578,0.0748265833,2588,-1.0000000000 +1195,0,0.1379462183,2579,0.0680898950,2589,-1.0000000000 +1196,0,0.3651287258,2580,0.0697829127,2590,-1.0000000000 +1197,0,-0.3790612817,2581,0.0699527264,2591,-1.0000000000 +1198,0,0.0887304395,2582,0.0746282265,2592,-1.0000000000 +1199,0,0.1295915544,2583,0.0643937513,2593,-1.0000000000 +1200,0,0.3341619074,2584,0.0683351308,2594,-1.0000000000 +1201,0,-0.0701742172,2585,0.0764223784,2595,-1.0000000000 +1202,0,0.2174075395,2586,0.0778548196,2596,-1.0000000000 +1203,0,0.3690969944,2587,0.0806291550,2597,-1.0000000000 +1204,0,-0.0000000000,2598,1.0000000000,2599,1.0000000000,2600,1.0000000000,2601,-1.0000000000,2602,1.0000000000,2603,1.0000000000,2604,-1.0000000000,2605,-1.0000000000,2606,1.0000000000,2607,1.0000000000,2628,-1.0000000000 +1205,0,-0.0000000000,2598,1.0000000000,2599,-1.0000000000,2600,-1.0000000000,2601,1.0000000000,2602,-1.0000000000,2603,1.0000000000,2604,-1.0000000000,2605,-1.0000000000,2606,-1.0000000000,2607,1.0000000000,2629,-1.0000000000 +1206,0,-0.0000000000,2598,1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,1.0000000000,2602,1.0000000000,2603,-1.0000000000,2604,-1.0000000000,2605,1.0000000000,2606,-1.0000000000,2607,1.0000000000,2630,-1.0000000000 +1207,0,-0.0000000000,2598,1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,1.0000000000,2603,1.0000000000,2604,1.0000000000,2605,-1.0000000000,2606,-1.0000000000,2607,-1.0000000000,2631,-1.0000000000 +1208,0,-0.0000000000,2598,-1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,-1.0000000000,2603,-1.0000000000,2604,-1.0000000000,2605,1.0000000000,2606,-1.0000000000,2607,1.0000000000,2632,-1.0000000000 +1209,0,-0.0000000000,2598,-1.0000000000,2599,1.0000000000,2600,1.0000000000,2601,-1.0000000000,2602,1.0000000000,2603,1.0000000000,2604,-1.0000000000,2605,1.0000000000,2606,1.0000000000,2607,1.0000000000,2633,-1.0000000000 +1210,0,-0.0000000000,2598,-1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,-1.0000000000,2603,-1.0000000000,2604,-1.0000000000,2605,1.0000000000,2606,1.0000000000,2607,-1.0000000000,2634,-1.0000000000 +1211,0,-0.0000000000,2598,1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,-1.0000000000,2603,1.0000000000,2604,1.0000000000,2605,1.0000000000,2606,-1.0000000000,2607,1.0000000000,2635,-1.0000000000 +1212,0,-0.0000000000,2598,-1.0000000000,2599,-1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,-1.0000000000,2603,1.0000000000,2604,-1.0000000000,2605,-1.0000000000,2606,1.0000000000,2607,-1.0000000000,2636,-1.0000000000 +1213,0,-0.0000000000,2598,-1.0000000000,2599,1.0000000000,2600,1.0000000000,2601,1.0000000000,2602,1.0000000000,2603,-1.0000000000,2604,-1.0000000000,2605,-1.0000000000,2606,-1.0000000000,2607,-1.0000000000,2637,-1.0000000000 +1214,0,0.0786820799,2628,0.2380353510,2638,-1.0000000000 +1215,0,0.2452328354,2629,0.2767313421,2639,-1.0000000000 +1216,0,0.4382847250,2630,0.2744768858,2640,-1.0000000000 +1217,0,0.1370536983,2631,0.2933354974,2641,-1.0000000000 +1218,0,-0.0251469873,2632,0.2791853845,2642,-1.0000000000 +1219,0,-0.2257008702,2633,0.2494552583,2643,-1.0000000000 +1220,0,-0.0018014926,2634,0.3040358126,2644,-1.0000000000 +1221,0,-0.0473403111,2635,0.2666788399,2645,-1.0000000000 +1222,0,-0.3460843861,2636,0.2826097310,2646,-1.0000000000 +1223,0,0.0315086767,2637,0.2692045569,2647,-1.0000000000 +1224,0,-0.0000000000,2648,-1.0000000000,2649,-1.0000000000,2650,-1.0000000000,2651,-1.0000000000,2652,1.0000000000,2653,1.0000000000,2654,1.0000000000,2655,1.0000000000,2656,1.0000000000,2657,-1.0000000000,784,-1.0000000000 +1225,0,-0.0000000000,2648,-1.0000000000,2649,-1.0000000000,2650,-1.0000000000,2651,-1.0000000000,2652,-1.0000000000,2653,-1.0000000000,2654,-1.0000000000,2655,-1.0000000000,2656,-1.0000000000,2657,1.0000000000,785,-1.0000000000 +1226,0,-0.0000000000,2648,1.0000000000,2649,-1.0000000000,2650,-1.0000000000,2651,1.0000000000,2652,-1.0000000000,2653,1.0000000000,2654,1.0000000000,2655,-1.0000000000,2656,1.0000000000,2657,1.0000000000,786,-1.0000000000 +1227,0,-0.0000000000,2648,1.0000000000,2649,-1.0000000000,2650,1.0000000000,2651,-1.0000000000,2652,1.0000000000,2653,1.0000000000,2654,-1.0000000000,2655,-1.0000000000,2656,-1.0000000000,2657,1.0000000000,787,-1.0000000000 +1228,0,-0.0000000000,2648,-1.0000000000,2649,1.0000000000,2650,-1.0000000000,2651,1.0000000000,2652,-1.0000000000,2653,-1.0000000000,2654,-1.0000000000,2655,1.0000000000,2656,1.0000000000,2657,1.0000000000,788,-1.0000000000 +1229,0,-0.0000000000,2648,1.0000000000,2649,1.0000000000,2650,1.0000000000,2651,1.0000000000,2652,1.0000000000,2653,1.0000000000,2654,-1.0000000000,2655,1.0000000000,2656,1.0000000000,2657,-1.0000000000,789,-1.0000000000 +1230,0,-0.0000000000,2648,-1.0000000000,2649,-1.0000000000,2650,1.0000000000,2651,1.0000000000,2652,1.0000000000,2653,-1.0000000000,2654,1.0000000000,2655,1.0000000000,2656,-1.0000000000,2657,1.0000000000,790,-1.0000000000 +1231,0,-0.0000000000,2648,-1.0000000000,2649,1.0000000000,2650,1.0000000000,2651,-1.0000000000,2652,1.0000000000,2653,-1.0000000000,2654,1.0000000000,2655,-1.0000000000,2656,1.0000000000,2657,1.0000000000,791,-1.0000000000 +1232,0,-0.0000000000,2648,1.0000000000,2649,-1.0000000000,2650,-1.0000000000,2651,1.0000000000,2652,-1.0000000000,2653,1.0000000000,2654,-1.0000000000,2655,1.0000000000,2656,-1.0000000000,2657,-1.0000000000,792,-1.0000000000 +1233,0,-0.0000000000,2648,1.0000000000,2649,1.0000000000,2650,-1.0000000000,2651,-1.0000000000,2652,-1.0000000000,2653,1.0000000000,2654,-1.0000000000,2655,-1.0000000000,2656,1.0000000000,2657,-1.0000000000,793,-1.0000000000 +1234,2,0,788,-1.0000000000,785,1.0000000000 +0,sign,1678,1628 +1,sign,1679,1629 +2,sign,1680,1630 +3,sign,1681,1631 +4,sign,1682,1632 +5,sign,1683,1633 +6,sign,1684,1634 +7,sign,1685,1635 +8,sign,1686,1636 +9,sign,1687,1637 +10,sign,1688,1638 +11,sign,1689,1639 +12,sign,1690,1640 +13,sign,1691,1641 +14,sign,1692,1642 +15,sign,1693,1643 +16,sign,1694,1644 +17,sign,1695,1645 +18,sign,1696,1646 +19,sign,1697,1647 +20,sign,1698,1648 +21,sign,1699,1649 +22,sign,1700,1650 +23,sign,1701,1651 +24,sign,1702,1652 +25,sign,1703,1653 +26,sign,1704,1654 +27,sign,1705,1655 +28,sign,1706,1656 +29,sign,1707,1657 +30,sign,1708,1658 +31,sign,1709,1659 +32,sign,1710,1660 +33,sign,1711,1661 +34,sign,1712,1662 +35,sign,1713,1663 +36,sign,1714,1664 +37,sign,1715,1665 +38,sign,1716,1666 +39,sign,1717,1667 +40,sign,1718,1668 +41,sign,1719,1669 +42,sign,1720,1670 +43,sign,1721,1671 +44,sign,1722,1672 +45,sign,1723,1673 +46,sign,1724,1674 +47,sign,1725,1675 +48,sign,1726,1676 +49,sign,1727,1677 +50,sign,1928,1878 +51,sign,1929,1879 +52,sign,1930,1880 +53,sign,1931,1881 +54,sign,1932,1882 +55,sign,1933,1883 +56,sign,1934,1884 +57,sign,1935,1885 +58,sign,1936,1886 +59,sign,1937,1887 +60,sign,1938,1888 +61,sign,1939,1889 +62,sign,1940,1890 +63,sign,1941,1891 +64,sign,1942,1892 +65,sign,1943,1893 +66,sign,1944,1894 +67,sign,1945,1895 +68,sign,1946,1896 +69,sign,1947,1897 +70,sign,1948,1898 +71,sign,1949,1899 +72,sign,1950,1900 +73,sign,1951,1901 +74,sign,1952,1902 +75,sign,1953,1903 +76,sign,1954,1904 +77,sign,1955,1905 +78,sign,1956,1906 +79,sign,1957,1907 +80,sign,1958,1908 +81,sign,1959,1909 +82,sign,1960,1910 +83,sign,1961,1911 +84,sign,1962,1912 +85,sign,1963,1913 +86,sign,1964,1914 +87,sign,1965,1915 +88,sign,1966,1916 +89,sign,1967,1917 +90,sign,1968,1918 +91,sign,1969,1919 +92,sign,1970,1920 +93,sign,1971,1921 +94,sign,1972,1922 +95,sign,1973,1923 +96,sign,1974,1924 +97,sign,1975,1925 +98,sign,1976,1926 +99,sign,1977,1927 +100,sign,2178,2128 +101,sign,2179,2129 +102,sign,2180,2130 +103,sign,2181,2131 +104,sign,2182,2132 +105,sign,2183,2133 +106,sign,2184,2134 +107,sign,2185,2135 +108,sign,2186,2136 +109,sign,2187,2137 +110,sign,2188,2138 +111,sign,2189,2139 +112,sign,2190,2140 +113,sign,2191,2141 +114,sign,2192,2142 +115,sign,2193,2143 +116,sign,2194,2144 +117,sign,2195,2145 +118,sign,2196,2146 +119,sign,2197,2147 +120,sign,2198,2148 +121,sign,2199,2149 +122,sign,2200,2150 +123,sign,2201,2151 +124,sign,2202,2152 +125,sign,2203,2153 +126,sign,2204,2154 +127,sign,2205,2155 +128,sign,2206,2156 +129,sign,2207,2157 +130,sign,2208,2158 +131,sign,2209,2159 +132,sign,2210,2160 +133,sign,2211,2161 +134,sign,2212,2162 +135,sign,2213,2163 +136,sign,2214,2164 +137,sign,2215,2165 +138,sign,2216,2166 +139,sign,2217,2167 +140,sign,2218,2168 +141,sign,2219,2169 +142,sign,2220,2170 +143,sign,2221,2171 +144,sign,2222,2172 +145,sign,2223,2173 +146,sign,2224,2174 +147,sign,2225,2175 +148,sign,2226,2176 +149,sign,2227,2177 +150,sign,2428,2378 +151,sign,2429,2379 +152,sign,2430,2380 +153,sign,2431,2381 +154,sign,2432,2382 +155,sign,2433,2383 +156,sign,2434,2384 +157,sign,2435,2385 +158,sign,2436,2386 +159,sign,2437,2387 +160,sign,2438,2388 +161,sign,2439,2389 +162,sign,2440,2390 +163,sign,2441,2391 +164,sign,2442,2392 +165,sign,2443,2393 +166,sign,2444,2394 +167,sign,2445,2395 +168,sign,2446,2396 +169,sign,2447,2397 +170,sign,2448,2398 +171,sign,2449,2399 +172,sign,2450,2400 +173,sign,2451,2401 +174,sign,2452,2402 +175,sign,2453,2403 +176,sign,2454,2404 +177,sign,2455,2405 +178,sign,2456,2406 +179,sign,2457,2407 +180,sign,2458,2408 +181,sign,2459,2409 +182,sign,2460,2410 +183,sign,2461,2411 +184,sign,2462,2412 +185,sign,2463,2413 +186,sign,2464,2414 +187,sign,2465,2415 +188,sign,2466,2416 +189,sign,2467,2417 +190,sign,2468,2418 +191,sign,2469,2419 +192,sign,2470,2420 +193,sign,2471,2421 +194,sign,2472,2422 +195,sign,2473,2423 +196,sign,2474,2424 +197,sign,2475,2425 +198,sign,2476,2426 +199,sign,2477,2427 +200,sign,2598,2588 +201,sign,2599,2589 +202,sign,2600,2590 +203,sign,2601,2591 +204,sign,2602,2592 +205,sign,2603,2593 +206,sign,2604,2594 +207,sign,2605,2595 +208,sign,2606,2596 +209,sign,2607,2597 +210,sign,2648,2638 +211,sign,2649,2639 +212,sign,2650,2640 +213,sign,2651,2641 +214,sign,2652,2642 +215,sign,2653,2643 +216,sign,2654,2644 +217,sign,2655,2645 +218,sign,2656,2646 +219,sign,2657,2647 diff --git a/regress/regress1/input_queries/deep_6_index_5567.ipq b/regress/regress1/input_queries/deep_6_index_5567.ipq new file mode 100644 index 0000000000..d8d1f5b6cb --- /dev/null +++ b/regress/regress1/input_queries/deep_6_index_5567.ipq @@ -0,0 +1,4264 @@ +2678 +1004 +1004 +1235 +220 +784 +0,0 +1,1 +2,2 +3,3 +4,4 +5,5 +6,6 +7,7 +8,8 +9,9 +10,10 +11,11 +12,12 +13,13 +14,14 +15,15 +16,16 +17,17 +18,18 +19,19 +20,20 +21,21 +22,22 +23,23 +24,24 +25,25 +26,26 +27,27 +28,28 +29,29 +30,30 +31,31 +32,32 +33,33 +34,34 +35,35 +36,36 +37,37 +38,38 +39,39 +40,40 +41,41 +42,42 +43,43 +44,44 +45,45 +46,46 +47,47 +48,48 +49,49 +50,50 +51,51 +52,52 +53,53 +54,54 +55,55 +56,56 +57,57 +58,58 +59,59 +60,60 +61,61 +62,62 +63,63 +64,64 +65,65 +66,66 +67,67 +68,68 +69,69 +70,70 +71,71 +72,72 +73,73 +74,74 +75,75 +76,76 +77,77 +78,78 +79,79 +80,80 +81,81 +82,82 +83,83 +84,84 +85,85 +86,86 +87,87 +88,88 +89,89 +90,90 +91,91 +92,92 +93,93 +94,94 +95,95 +96,96 +97,97 +98,98 +99,99 +100,100 +101,101 +102,102 +103,103 +104,104 +105,105 +106,106 +107,107 +108,108 +109,109 +110,110 +111,111 +112,112 +113,113 +114,114 +115,115 +116,116 +117,117 +118,118 +119,119 +120,120 +121,121 +122,122 +123,123 +124,124 +125,125 +126,126 +127,127 +128,128 +129,129 +130,130 +131,131 +132,132 +133,133 +134,134 +135,135 +136,136 +137,137 +138,138 +139,139 +140,140 +141,141 +142,142 +143,143 +144,144 +145,145 +146,146 +147,147 +148,148 +149,149 +150,150 +151,151 +152,152 +153,153 +154,154 +155,155 +156,156 +157,157 +158,158 +159,159 +160,160 +161,161 +162,162 +163,163 +164,164 +165,165 +166,166 +167,167 +168,168 +169,169 +170,170 +171,171 +172,172 +173,173 +174,174 +175,175 +176,176 +177,177 +178,178 +179,179 +180,180 +181,181 +182,182 +183,183 +184,184 +185,185 +186,186 +187,187 +188,188 +189,189 +190,190 +191,191 +192,192 +193,193 +194,194 +195,195 +196,196 +197,197 +198,198 +199,199 +200,200 +201,201 +202,202 +203,203 +204,204 +205,205 +206,206 +207,207 +208,208 +209,209 +210,210 +211,211 +212,212 +213,213 +214,214 +215,215 +216,216 +217,217 +218,218 +219,219 +220,220 +221,221 +222,222 +223,223 +224,224 +225,225 +226,226 +227,227 +228,228 +229,229 +230,230 +231,231 +232,232 +233,233 +234,234 +235,235 +236,236 +237,237 +238,238 +239,239 +240,240 +241,241 +242,242 +243,243 +244,244 +245,245 +246,246 +247,247 +248,248 +249,249 +250,250 +251,251 +252,252 +253,253 +254,254 +255,255 +256,256 +257,257 +258,258 +259,259 +260,260 +261,261 +262,262 +263,263 +264,264 +265,265 +266,266 +267,267 +268,268 +269,269 +270,270 +271,271 +272,272 +273,273 +274,274 +275,275 +276,276 +277,277 +278,278 +279,279 +280,280 +281,281 +282,282 +283,283 +284,284 +285,285 +286,286 +287,287 +288,288 +289,289 +290,290 +291,291 +292,292 +293,293 +294,294 +295,295 +296,296 +297,297 +298,298 +299,299 +300,300 +301,301 +302,302 +303,303 +304,304 +305,305 +306,306 +307,307 +308,308 +309,309 +310,310 +311,311 +312,312 +313,313 +314,314 +315,315 +316,316 +317,317 +318,318 +319,319 +320,320 +321,321 +322,322 +323,323 +324,324 +325,325 +326,326 +327,327 +328,328 +329,329 +330,330 +331,331 +332,332 +333,333 +334,334 +335,335 +336,336 +337,337 +338,338 +339,339 +340,340 +341,341 +342,342 +343,343 +344,344 +345,345 +346,346 +347,347 +348,348 +349,349 +350,350 +351,351 +352,352 +353,353 +354,354 +355,355 +356,356 +357,357 +358,358 +359,359 +360,360 +361,361 +362,362 +363,363 +364,364 +365,365 +366,366 +367,367 +368,368 +369,369 +370,370 +371,371 +372,372 +373,373 +374,374 +375,375 +376,376 +377,377 +378,378 +379,379 +380,380 +381,381 +382,382 +383,383 +384,384 +385,385 +386,386 +387,387 +388,388 +389,389 +390,390 +391,391 +392,392 +393,393 +394,394 +395,395 +396,396 +397,397 +398,398 +399,399 +400,400 +401,401 +402,402 +403,403 +404,404 +405,405 +406,406 +407,407 +408,408 +409,409 +410,410 +411,411 +412,412 +413,413 +414,414 +415,415 +416,416 +417,417 +418,418 +419,419 +420,420 +421,421 +422,422 +423,423 +424,424 +425,425 +426,426 +427,427 +428,428 +429,429 +430,430 +431,431 +432,432 +433,433 +434,434 +435,435 +436,436 +437,437 +438,438 +439,439 +440,440 +441,441 +442,442 +443,443 +444,444 +445,445 +446,446 +447,447 +448,448 +449,449 +450,450 +451,451 +452,452 +453,453 +454,454 +455,455 +456,456 +457,457 +458,458 +459,459 +460,460 +461,461 +462,462 +463,463 +464,464 +465,465 +466,466 +467,467 +468,468 +469,469 +470,470 +471,471 +472,472 +473,473 +474,474 +475,475 +476,476 +477,477 +478,478 +479,479 +480,480 +481,481 +482,482 +483,483 +484,484 +485,485 +486,486 +487,487 +488,488 +489,489 +490,490 +491,491 +492,492 +493,493 +494,494 +495,495 +496,496 +497,497 +498,498 +499,499 +500,500 +501,501 +502,502 +503,503 +504,504 +505,505 +506,506 +507,507 +508,508 +509,509 +510,510 +511,511 +512,512 +513,513 +514,514 +515,515 +516,516 +517,517 +518,518 +519,519 +520,520 +521,521 +522,522 +523,523 +524,524 +525,525 +526,526 +527,527 +528,528 +529,529 +530,530 +531,531 +532,532 +533,533 +534,534 +535,535 +536,536 +537,537 +538,538 +539,539 +540,540 +541,541 +542,542 +543,543 +544,544 +545,545 +546,546 +547,547 +548,548 +549,549 +550,550 +551,551 +552,552 +553,553 +554,554 +555,555 +556,556 +557,557 +558,558 +559,559 +560,560 +561,561 +562,562 +563,563 +564,564 +565,565 +566,566 +567,567 +568,568 +569,569 +570,570 +571,571 +572,572 +573,573 +574,574 +575,575 +576,576 +577,577 +578,578 +579,579 +580,580 +581,581 +582,582 +583,583 +584,584 +585,585 +586,586 +587,587 +588,588 +589,589 +590,590 +591,591 +592,592 +593,593 +594,594 +595,595 +596,596 +597,597 +598,598 +599,599 +600,600 +601,601 +602,602 +603,603 +604,604 +605,605 +606,606 +607,607 +608,608 +609,609 +610,610 +611,611 +612,612 +613,613 +614,614 +615,615 +616,616 +617,617 +618,618 +619,619 +620,620 +621,621 +622,622 +623,623 +624,624 +625,625 +626,626 +627,627 +628,628 +629,629 +630,630 +631,631 +632,632 +633,633 +634,634 +635,635 +636,636 +637,637 +638,638 +639,639 +640,640 +641,641 +642,642 +643,643 +644,644 +645,645 +646,646 +647,647 +648,648 +649,649 +650,650 +651,651 +652,652 +653,653 +654,654 +655,655 +656,656 +657,657 +658,658 +659,659 +660,660 +661,661 +662,662 +663,663 +664,664 +665,665 +666,666 +667,667 +668,668 +669,669 +670,670 +671,671 +672,672 +673,673 +674,674 +675,675 +676,676 +677,677 +678,678 +679,679 +680,680 +681,681 +682,682 +683,683 +684,684 +685,685 +686,686 +687,687 +688,688 +689,689 +690,690 +691,691 +692,692 +693,693 +694,694 +695,695 +696,696 +697,697 +698,698 +699,699 +700,700 +701,701 +702,702 +703,703 +704,704 +705,705 +706,706 +707,707 +708,708 +709,709 +710,710 +711,711 +712,712 +713,713 +714,714 +715,715 +716,716 +717,717 +718,718 +719,719 +720,720 +721,721 +722,722 +723,723 +724,724 +725,725 +726,726 +727,727 +728,728 +729,729 +730,730 +731,731 +732,732 +733,733 +734,734 +735,735 +736,736 +737,737 +738,738 +739,739 +740,740 +741,741 +742,742 +743,743 +744,744 +745,745 +746,746 +747,747 +748,748 +749,749 +750,750 +751,751 +752,752 +753,753 +754,754 +755,755 +756,756 +757,757 +758,758 +759,759 +760,760 +761,761 +762,762 +763,763 +764,764 +765,765 +766,766 +767,767 +768,768 +769,769 +770,770 +771,771 +772,772 +773,773 +774,774 +775,775 +776,776 +777,777 +778,778 +779,779 +780,780 +781,781 +782,782 +783,783 +10 +0,784 +1,785 +2,786 +3,787 +4,788 +5,789 +6,790 +7,791 +8,792 +9,793 +0,0 +1,0 +2,0 +3,0 +4,0 +5,0 +6,0 +7,0 +8,0 +9,0 +10,0 +11,0 +12,0 +13,0 +14,0 +15,0 +16,0 +17,0 +18,0 +19,0 +20,0 +21,0 +22,0 +23,0 +24,0 +25,0 +26,0 +27,0 +28,0 +29,0 +30,0 +31,0 +32,0 +33,0 +34,0 +35,0 +36,0 +37,0 +38,0 +39,0 +40,0 +41,0 +42,0 +43,0 +44,0 +45,0 +46,0 +47,0 +48,0 +49,0 +50,0 +51,0 +52,0 +53,0 +54,0 +55,0 +56,0 +57,0 +58,0 +59,0 +60,0 +61,0 +62,0 +63,0 +64,0 +65,0 +66,0 +67,0 +68,0 +69,0 +70,0 +71,0 +72,0 +73,0 +74,0 +75,0 +76,0 +77,0 +78,0 +79,0 +80,0 +81,0 +82,0 +83,0 +84,0 +85,0 +86,0 +87,0 +88,0 +89,0 +90,0 +91,0 +92,0 +93,0 +94,0 +95,0 +96,0 +97,0 +98,0 +99,0 +100,0 +101,0 +102,0 +103,0 +104,0 +105,0 +106,0 +107,0 +108,0 +109,0 +110,0 +111,0 +112,0 +113,0 +114,0 +115,0 +116,0 +117,0 +118,0 +119,0 +120,0 +121,0 +122,0 +123,0 +124,0 +125,0.5011795343137255 +126,0.99921875 +127,0.99921875 +128,0.5011795343137255 +129,0 +130,0 +131,0 +132,0 +133,0 +134,0 +135,0 +136,0 +137,0 +138,0 +139,0 +140,0 +141,0 +142,0 +143,0 +144,0 +145,0 +146,0 +147,0 +148,0 +149,0 +150,0 +151,0 +152,0.7482383578431373 +153,0.99921875 +154,0.99921875 +155,0.99921875 +156,0.7482383578431373 +157,0 +158,0 +159,0 +160,0 +161,0 +162,0 +163,0 +164,0 +165,0 +166,0 +167,0 +168,0 +169,0 +170,0 +171,0 +172,0 +173,0 +174,0 +175,0 +176,0 +177,0 +178,0 +179,0.99921875 +180,0.99921875 +181,0.99921875 +182,0.99921875 +183,0.99921875 +184,0 +185,0 +186,0 +187,0 +188,0 +189,0 +190,0 +191,0 +192,0 +193,0 +194,0 +195,0 +196,0 +197,0 +198,0 +199,0 +200,0 +201,0 +202,0 +203,0 +204,0 +205,0 +206,0.5011795343137255 +207,0.99921875 +208,0.99921875 +209,0.99921875 +210,0.99921875 +211,0.99921875 +212,0.99921875 +213,0.5011795343137255 +214,0 +215,0 +216,0 +217,0 +218,0 +219,0 +220,0 +221,0 +222,0 +223,0 +224,0 +225,0 +226,0 +227,0 +228,0 +229,0 +230,0 +231,0 +232,0 +233,0.25019914215686273 +234,0.99921875 +235,0.99921875 +236,0.99921875 +237,0.7482383578431373 +238,0.99921875 +239,0.99921875 +240,0.99921875 +241,0.99921875 +242,0.5011795343137255 +243,0 +244,0 +245,0 +246,0 +247,0 +248,0 +249,0 +250,0 +251,0 +252,0 +253,0 +254,0 +255,0 +256,0 +257,0 +258,0 +259,0 +260,0 +261,0.5011795343137255 +262,0.99921875 +263,0.99921875 +264,0.99921875 +265,0.25019914215686273 +266,0 +267,0.7482383578431373 +268,0.99921875 +269,0.99921875 +270,0.99921875 +271,0.25019914215686273 +272,0 +273,0 +274,0 +275,0 +276,0 +277,0 +278,0 +279,0 +280,0 +281,0 +282,0 +283,0 +284,0 +285,0 +286,0 +287,0 +288,0 +289,0.7482383578431373 +290,0.99921875 +291,0.99921875 +292,0.5011795343137255 +293,0 +294,0 +295,0 +296,0.7482383578431373 +297,0.99921875 +298,0.99921875 +299,0.99921875 +300,0 +301,0 +302,0 +303,0 +304,0 +305,0 +306,0 +307,0 +308,0 +309,0 +310,0 +311,0 +312,0 +313,0 +314,0 +315,0 +316,0.5011795343137255 +317,0.99921875 +318,0.99921875 +319,0.99921875 +320,0.25019914215686273 +321,0 +322,0 +323,0 +324,0.25019914215686273 +325,0.99921875 +326,0.99921875 +327,0.99921875 +328,0 +329,0 +330,0 +331,0 +332,0 +333,0 +334,0 +335,0 +336,0 +337,0 +338,0 +339,0 +340,0 +341,0 +342,0 +343,0 +344,0.7482383578431373 +345,0.99921875 +346,0.99921875 +347,0.99921875 +348,0 +349,0 +350,0 +351,0 +352,0 +353,0.99921875 +354,0.99921875 +355,0.99921875 +356,0 +357,0 +358,0 +359,0 +360,0 +361,0 +362,0 +363,0 +364,0 +365,0 +366,0 +367,0 +368,0 +369,0 +370,0 +371,0 +372,0.99921875 +373,0.99921875 +374,0.99921875 +375,0.7482383578431373 +376,0 +377,0 +378,0 +379,0 +380,0 +381,0.99921875 +382,0.99921875 +383,0.99921875 +384,0 +385,0 +386,0 +387,0 +388,0 +389,0 +390,0 +391,0 +392,0 +393,0 +394,0 +395,0 +396,0 +397,0 +398,0 +399,0 +400,0.99921875 +401,0.99921875 +402,0.99921875 +403,0.5011795343137255 +404,0 +405,0 +406,0 +407,0 +408,0 +409,0.99921875 +410,0.99921875 +411,0.99921875 +412,0 +413,0 +414,0 +415,0 +416,0 +417,0 +418,0 +419,0 +420,0 +421,0 +422,0 +423,0 +424,0 +425,0 +426,0 +427,0 +428,0.99921875 +429,0.99921875 +430,0.99921875 +431,0 +432,0 +433,0 +434,0 +435,0 +436,0 +437,0.99921875 +438,0.99921875 +439,0.99921875 +440,0 +441,0 +442,0 +443,0 +444,0 +445,0 +446,0 +447,0 +448,0 +449,0 +450,0 +451,0 +452,0 +453,0 +454,0 +455,0 +456,0.99921875 +457,0.99921875 +458,0.99921875 +459,0.5011795343137255 +460,0 +461,0 +462,0 +463,0 +464,0 +465,0.99921875 +466,0.99921875 +467,0.99921875 +468,0 +469,0 +470,0 +471,0 +472,0 +473,0 +474,0 +475,0 +476,0 +477,0 +478,0 +479,0 +480,0 +481,0 +482,0 +483,0 +484,0.7482383578431373 +485,0.99921875 +486,0.99921875 +487,0.5011795343137255 +488,0 +489,0 +490,0 +491,0 +492,0 +493,0.99921875 +494,0.99921875 +495,0.99921875 +496,0 +497,0 +498,0 +499,0 +500,0 +501,0 +502,0 +503,0 +504,0 +505,0 +506,0 +507,0 +508,0 +509,0 +510,0 +511,0 +512,0.5011795343137255 +513,0.99921875 +514,0.99921875 +515,0.99921875 +516,0 +517,0 +518,0 +519,0 +520,0.5011795343137255 +521,0.99921875 +522,0.99921875 +523,0.7482383578431373 +524,0 +525,0 +526,0 +527,0 +528,0 +529,0 +530,0 +531,0 +532,0 +533,0 +534,0 +535,0 +536,0 +537,0 +538,0 +539,0 +540,0 +541,0.99921875 +542,0.99921875 +543,0.99921875 +544,0.25019914215686273 +545,0 +546,0 +547,0 +548,0.99921875 +549,0.99921875 +550,0.99921875 +551,0.5011795343137255 +552,0 +553,0 +554,0 +555,0 +556,0 +557,0 +558,0 +559,0 +560,0 +561,0 +562,0 +563,0 +564,0 +565,0 +566,0 +567,0 +568,0 +569,0.5011795343137255 +570,0.99921875 +571,0.99921875 +572,0.7482383578431373 +573,0.25019914215686273 +574,0 +575,0.5011795343137255 +576,0.99921875 +577,0.99921875 +578,0.7482383578431373 +579,0 +580,0 +581,0 +582,0 +583,0 +584,0 +585,0 +586,0 +587,0 +588,0 +589,0 +590,0 +591,0 +592,0 +593,0 +594,0 +595,0 +596,0 +597,0.25019914215686273 +598,0.99921875 +599,0.99921875 +600,0.99921875 +601,0.99921875 +602,0.99921875 +603,0.99921875 +604,0.99921875 +605,0.99921875 +606,0.5011795343137255 +607,0 +608,0 +609,0 +610,0 +611,0 +612,0 +613,0 +614,0 +615,0 +616,0 +617,0 +618,0 +619,0 +620,0 +621,0 +622,0 +623,0 +624,0 +625,0 +626,0.25019914215686273 +627,0.99921875 +628,0.99921875 +629,0.99921875 +630,0.99921875 +631,0.99921875 +632,0.99921875 +633,0.5011795343137255 +634,0 +635,0 +636,0 +637,0 +638,0 +639,0 +640,0 +641,0 +642,0 +643,0 +644,0 +645,0 +646,0 +647,0 +648,0 +649,0 +650,0 +651,0 +652,0 +653,0 +654,0 +655,0.25019914215686273 +656,0.7482383578431373 +657,0.99921875 +658,0.99921875 +659,0.99921875 +660,0.7482383578431373 +661,0 +662,0 +663,0 +664,0 +665,0 +666,0 +667,0 +668,0 +669,0 +670,0 +671,0 +672,0 +673,0 +674,0 +675,0 +676,0 +677,0 +678,0 +679,0 +680,0 +681,0 +682,0 +683,0 +684,0 +685,0 +686,0 +687,0 +688,0 +689,0 +690,0 +691,0 +692,0 +693,0 +694,0 +695,0 +696,0 +697,0 +698,0 +699,0 +700,0 +701,0 +702,0 +703,0 +704,0 +705,0 +706,0 +707,0 +708,0 +709,0 +710,0 +711,0 +712,0 +713,0 +714,0 +715,0 +716,0 +717,0 +718,0 +719,0 +720,0 +721,0 +722,0 +723,0 +724,0 +725,0 +726,0 +727,0 +728,0 +729,0 +730,0 +731,0 +732,0 +733,0 +734,0 +735,0 +736,0 +737,0 +738,0 +739,0 +740,0 +741,0 +742,0 +743,0 +744,0 +745,0 +746,0 +747,0 +748,0 +749,0 +750,0 +751,0 +752,0 +753,0 +754,0 +755,0 +756,0 +757,0 +758,0 +759,0 +760,0 +761,0 +762,0 +763,0 +764,0 +765,0 +766,0 +767,0 +768,0 +769,0 +770,0 +771,0 +772,0 +773,0 +774,0 +775,0 +776,0 +777,0 +778,0 +779,0 +780,0 +781,0 +782,0 +783,0 +1678,-1.0000000000 +1679,-1.0000000000 +1680,-1.0000000000 +1681,-1.0000000000 +1682,-1.0000000000 +1683,-1.0000000000 +1684,-1.0000000000 +1685,-1.0000000000 +1686,-1.0000000000 +1687,-1.0000000000 +1688,-1.0000000000 +1689,-1.0000000000 +1690,-1.0000000000 +1691,-1.0000000000 +1692,-1.0000000000 +1693,-1.0000000000 +1694,-1.0000000000 +1695,-1.0000000000 +1696,-1.0000000000 +1697,-1.0000000000 +1698,-1.0000000000 +1699,-1.0000000000 +1700,-1.0000000000 +1701,-1.0000000000 +1702,-1.0000000000 +1703,-1.0000000000 +1704,-1.0000000000 +1705,-1.0000000000 +1706,-1.0000000000 +1707,-1.0000000000 +1708,-1.0000000000 +1709,-1.0000000000 +1710,-1.0000000000 +1711,-1.0000000000 +1712,-1.0000000000 +1713,-1.0000000000 +1714,-1.0000000000 +1715,-1.0000000000 +1716,-1.0000000000 +1717,-1.0000000000 +1718,-1.0000000000 +1719,-1.0000000000 +1720,-1.0000000000 +1721,-1.0000000000 +1722,-1.0000000000 +1723,-1.0000000000 +1724,-1.0000000000 +1725,-1.0000000000 +1726,-1.0000000000 +1727,-1.0000000000 +1928,-1.0000000000 +1929,-1.0000000000 +1930,-1.0000000000 +1931,-1.0000000000 +1932,-1.0000000000 +1933,-1.0000000000 +1934,-1.0000000000 +1935,-1.0000000000 +1936,-1.0000000000 +1937,-1.0000000000 +1938,-1.0000000000 +1939,-1.0000000000 +1940,-1.0000000000 +1941,-1.0000000000 +1942,-1.0000000000 +1943,-1.0000000000 +1944,-1.0000000000 +1945,-1.0000000000 +1946,-1.0000000000 +1947,-1.0000000000 +1948,-1.0000000000 +1949,-1.0000000000 +1950,-1.0000000000 +1951,-1.0000000000 +1952,-1.0000000000 +1953,-1.0000000000 +1954,-1.0000000000 +1955,-1.0000000000 +1956,-1.0000000000 +1957,-1.0000000000 +1958,-1.0000000000 +1959,-1.0000000000 +1960,-1.0000000000 +1961,-1.0000000000 +1962,-1.0000000000 +1963,-1.0000000000 +1964,-1.0000000000 +1965,-1.0000000000 +1966,-1.0000000000 +1967,-1.0000000000 +1968,-1.0000000000 +1969,-1.0000000000 +1970,-1.0000000000 +1971,-1.0000000000 +1972,-1.0000000000 +1973,-1.0000000000 +1974,-1.0000000000 +1975,-1.0000000000 +1976,-1.0000000000 +1977,-1.0000000000 +2178,-1.0000000000 +2179,-1.0000000000 +2180,-1.0000000000 +2181,-1.0000000000 +2182,-1.0000000000 +2183,-1.0000000000 +2184,-1.0000000000 +2185,-1.0000000000 +2186,-1.0000000000 +2187,-1.0000000000 +2188,-1.0000000000 +2189,-1.0000000000 +2190,-1.0000000000 +2191,-1.0000000000 +2192,-1.0000000000 +2193,-1.0000000000 +2194,-1.0000000000 +2195,-1.0000000000 +2196,-1.0000000000 +2197,-1.0000000000 +2198,-1.0000000000 +2199,-1.0000000000 +2200,-1.0000000000 +2201,-1.0000000000 +2202,-1.0000000000 +2203,-1.0000000000 +2204,-1.0000000000 +2205,-1.0000000000 +2206,-1.0000000000 +2207,-1.0000000000 +2208,-1.0000000000 +2209,-1.0000000000 +2210,-1.0000000000 +2211,-1.0000000000 +2212,-1.0000000000 +2213,-1.0000000000 +2214,-1.0000000000 +2215,-1.0000000000 +2216,-1.0000000000 +2217,-1.0000000000 +2218,-1.0000000000 +2219,-1.0000000000 +2220,-1.0000000000 +2221,-1.0000000000 +2222,-1.0000000000 +2223,-1.0000000000 +2224,-1.0000000000 +2225,-1.0000000000 +2226,-1.0000000000 +2227,-1.0000000000 +2428,-1.0000000000 +2429,-1.0000000000 +2430,-1.0000000000 +2431,-1.0000000000 +2432,-1.0000000000 +2433,-1.0000000000 +2434,-1.0000000000 +2435,-1.0000000000 +2436,-1.0000000000 +2437,-1.0000000000 +2438,-1.0000000000 +2439,-1.0000000000 +2440,-1.0000000000 +2441,-1.0000000000 +2442,-1.0000000000 +2443,-1.0000000000 +2444,-1.0000000000 +2445,-1.0000000000 +2446,-1.0000000000 +2447,-1.0000000000 +2448,-1.0000000000 +2449,-1.0000000000 +2450,-1.0000000000 +2451,-1.0000000000 +2452,-1.0000000000 +2453,-1.0000000000 +2454,-1.0000000000 +2455,-1.0000000000 +2456,-1.0000000000 +2457,-1.0000000000 +2458,-1.0000000000 +2459,-1.0000000000 +2460,-1.0000000000 +2461,-1.0000000000 +2462,-1.0000000000 +2463,-1.0000000000 +2464,-1.0000000000 +2465,-1.0000000000 +2466,-1.0000000000 +2467,-1.0000000000 +2468,-1.0000000000 +2469,-1.0000000000 +2470,-1.0000000000 +2471,-1.0000000000 +2472,-1.0000000000 +2473,-1.0000000000 +2474,-1.0000000000 +2475,-1.0000000000 +2476,-1.0000000000 +2477,-1.0000000000 +2598,-1.0000000000 +2599,-1.0000000000 +2600,-1.0000000000 +2601,-1.0000000000 +2602,-1.0000000000 +2603,-1.0000000000 +2604,-1.0000000000 +2605,-1.0000000000 +2606,-1.0000000000 +2607,-1.0000000000 +2648,-1.0000000000 +2649,-1.0000000000 +2650,-1.0000000000 +2651,-1.0000000000 +2652,-1.0000000000 +2653,-1.0000000000 +2654,-1.0000000000 +2655,-1.0000000000 +2656,-1.0000000000 +2657,-1.0000000000 +0,0.00078125 +1,0.00078125 +2,0.00078125 +3,0.00078125 +4,0.00078125 +5,0.00078125 +6,0.00078125 +7,0.00078125 +8,0.00078125 +9,0.00078125 +10,0.00078125 +11,0.00078125 +12,0.00078125 +13,0.00078125 +14,0.00078125 +15,0.00078125 +16,0.00078125 +17,0.00078125 +18,0.00078125 +19,0.00078125 +20,0.00078125 +21,0.00078125 +22,0.00078125 +23,0.00078125 +24,0.00078125 +25,0.00078125 +26,0.00078125 +27,0.00078125 +28,0.00078125 +29,0.00078125 +30,0.00078125 +31,0.00078125 +32,0.00078125 +33,0.00078125 +34,0.00078125 +35,0.00078125 +36,0.00078125 +37,0.00078125 +38,0.00078125 +39,0.00078125 +40,0.00078125 +41,0.00078125 +42,0.00078125 +43,0.00078125 +44,0.00078125 +45,0.00078125 +46,0.00078125 +47,0.00078125 +48,0.00078125 +49,0.00078125 +50,0.00078125 +51,0.00078125 +52,0.00078125 +53,0.00078125 +54,0.00078125 +55,0.00078125 +56,0.00078125 +57,0.00078125 +58,0.00078125 +59,0.00078125 +60,0.00078125 +61,0.00078125 +62,0.00078125 +63,0.00078125 +64,0.00078125 +65,0.00078125 +66,0.00078125 +67,0.00078125 +68,0.00078125 +69,0.00078125 +70,0.00078125 +71,0.00078125 +72,0.00078125 +73,0.00078125 +74,0.00078125 +75,0.00078125 +76,0.00078125 +77,0.00078125 +78,0.00078125 +79,0.00078125 +80,0.00078125 +81,0.00078125 +82,0.00078125 +83,0.00078125 +84,0.00078125 +85,0.00078125 +86,0.00078125 +87,0.00078125 +88,0.00078125 +89,0.00078125 +90,0.00078125 +91,0.00078125 +92,0.00078125 +93,0.00078125 +94,0.00078125 +95,0.00078125 +96,0.00078125 +97,0.00078125 +98,0.00078125 +99,0.00078125 +100,0.00078125 +101,0.00078125 +102,0.00078125 +103,0.00078125 +104,0.00078125 +105,0.00078125 +106,0.00078125 +107,0.00078125 +108,0.00078125 +109,0.00078125 +110,0.00078125 +111,0.00078125 +112,0.00078125 +113,0.00078125 +114,0.00078125 +115,0.00078125 +116,0.00078125 +117,0.00078125 +118,0.00078125 +119,0.00078125 +120,0.00078125 +121,0.00078125 +122,0.00078125 +123,0.00078125 +124,0.00078125 +125,0.5027420343137254 +126,1 +127,1 +128,0.5027420343137254 +129,0.00078125 +130,0.00078125 +131,0.00078125 +132,0.00078125 +133,0.00078125 +134,0.00078125 +135,0.00078125 +136,0.00078125 +137,0.00078125 +138,0.00078125 +139,0.00078125 +140,0.00078125 +141,0.00078125 +142,0.00078125 +143,0.00078125 +144,0.00078125 +145,0.00078125 +146,0.00078125 +147,0.00078125 +148,0.00078125 +149,0.00078125 +150,0.00078125 +151,0.00078125 +152,0.7498008578431372 +153,1 +154,1 +155,1 +156,0.7498008578431372 +157,0.00078125 +158,0.00078125 +159,0.00078125 +160,0.00078125 +161,0.00078125 +162,0.00078125 +163,0.00078125 +164,0.00078125 +165,0.00078125 +166,0.00078125 +167,0.00078125 +168,0.00078125 +169,0.00078125 +170,0.00078125 +171,0.00078125 +172,0.00078125 +173,0.00078125 +174,0.00078125 +175,0.00078125 +176,0.00078125 +177,0.00078125 +178,0.00078125 +179,1 +180,1 +181,1 +182,1 +183,1 +184,0.00078125 +185,0.00078125 +186,0.00078125 +187,0.00078125 +188,0.00078125 +189,0.00078125 +190,0.00078125 +191,0.00078125 +192,0.00078125 +193,0.00078125 +194,0.00078125 +195,0.00078125 +196,0.00078125 +197,0.00078125 +198,0.00078125 +199,0.00078125 +200,0.00078125 +201,0.00078125 +202,0.00078125 +203,0.00078125 +204,0.00078125 +205,0.00078125 +206,0.5027420343137254 +207,1 +208,1 +209,1 +210,1 +211,1 +212,1 +213,0.5027420343137254 +214,0.00078125 +215,0.00078125 +216,0.00078125 +217,0.00078125 +218,0.00078125 +219,0.00078125 +220,0.00078125 +221,0.00078125 +222,0.00078125 +223,0.00078125 +224,0.00078125 +225,0.00078125 +226,0.00078125 +227,0.00078125 +228,0.00078125 +229,0.00078125 +230,0.00078125 +231,0.00078125 +232,0.00078125 +233,0.25176164215686275 +234,1 +235,1 +236,1 +237,0.7498008578431372 +238,1 +239,1 +240,1 +241,1 +242,0.5027420343137254 +243,0.00078125 +244,0.00078125 +245,0.00078125 +246,0.00078125 +247,0.00078125 +248,0.00078125 +249,0.00078125 +250,0.00078125 +251,0.00078125 +252,0.00078125 +253,0.00078125 +254,0.00078125 +255,0.00078125 +256,0.00078125 +257,0.00078125 +258,0.00078125 +259,0.00078125 +260,0.00078125 +261,0.5027420343137254 +262,1 +263,1 +264,1 +265,0.25176164215686275 +266,0.00078125 +267,0.7498008578431372 +268,1 +269,1 +270,1 +271,0.25176164215686275 +272,0.00078125 +273,0.00078125 +274,0.00078125 +275,0.00078125 +276,0.00078125 +277,0.00078125 +278,0.00078125 +279,0.00078125 +280,0.00078125 +281,0.00078125 +282,0.00078125 +283,0.00078125 +284,0.00078125 +285,0.00078125 +286,0.00078125 +287,0.00078125 +288,0.00078125 +289,0.7498008578431372 +290,1 +291,1 +292,0.5027420343137254 +293,0.00078125 +294,0.00078125 +295,0.00078125 +296,0.7498008578431372 +297,1 +298,1 +299,1 +300,0.00078125 +301,0.00078125 +302,0.00078125 +303,0.00078125 +304,0.00078125 +305,0.00078125 +306,0.00078125 +307,0.00078125 +308,0.00078125 +309,0.00078125 +310,0.00078125 +311,0.00078125 +312,0.00078125 +313,0.00078125 +314,0.00078125 +315,0.00078125 +316,0.5027420343137254 +317,1 +318,1 +319,1 +320,0.25176164215686275 +321,0.00078125 +322,0.00078125 +323,0.00078125 +324,0.25176164215686275 +325,1 +326,1 +327,1 +328,0.00078125 +329,0.00078125 +330,0.00078125 +331,0.00078125 +332,0.00078125 +333,0.00078125 +334,0.00078125 +335,0.00078125 +336,0.00078125 +337,0.00078125 +338,0.00078125 +339,0.00078125 +340,0.00078125 +341,0.00078125 +342,0.00078125 +343,0.00078125 +344,0.7498008578431372 +345,1 +346,1 +347,1 +348,0.00078125 +349,0.00078125 +350,0.00078125 +351,0.00078125 +352,0.00078125 +353,1 +354,1 +355,1 +356,0.00078125 +357,0.00078125 +358,0.00078125 +359,0.00078125 +360,0.00078125 +361,0.00078125 +362,0.00078125 +363,0.00078125 +364,0.00078125 +365,0.00078125 +366,0.00078125 +367,0.00078125 +368,0.00078125 +369,0.00078125 +370,0.00078125 +371,0.00078125 +372,1 +373,1 +374,1 +375,0.7498008578431372 +376,0.00078125 +377,0.00078125 +378,0.00078125 +379,0.00078125 +380,0.00078125 +381,1 +382,1 +383,1 +384,0.00078125 +385,0.00078125 +386,0.00078125 +387,0.00078125 +388,0.00078125 +389,0.00078125 +390,0.00078125 +391,0.00078125 +392,0.00078125 +393,0.00078125 +394,0.00078125 +395,0.00078125 +396,0.00078125 +397,0.00078125 +398,0.00078125 +399,0.00078125 +400,1 +401,1 +402,1 +403,0.5027420343137254 +404,0.00078125 +405,0.00078125 +406,0.00078125 +407,0.00078125 +408,0.00078125 +409,1 +410,1 +411,1 +412,0.00078125 +413,0.00078125 +414,0.00078125 +415,0.00078125 +416,0.00078125 +417,0.00078125 +418,0.00078125 +419,0.00078125 +420,0.00078125 +421,0.00078125 +422,0.00078125 +423,0.00078125 +424,0.00078125 +425,0.00078125 +426,0.00078125 +427,0.00078125 +428,1 +429,1 +430,1 +431,0.00078125 +432,0.00078125 +433,0.00078125 +434,0.00078125 +435,0.00078125 +436,0.00078125 +437,1 +438,1 +439,1 +440,0.00078125 +441,0.00078125 +442,0.00078125 +443,0.00078125 +444,0.00078125 +445,0.00078125 +446,0.00078125 +447,0.00078125 +448,0.00078125 +449,0.00078125 +450,0.00078125 +451,0.00078125 +452,0.00078125 +453,0.00078125 +454,0.00078125 +455,0.00078125 +456,1 +457,1 +458,1 +459,0.5027420343137254 +460,0.00078125 +461,0.00078125 +462,0.00078125 +463,0.00078125 +464,0.00078125 +465,1 +466,1 +467,1 +468,0.00078125 +469,0.00078125 +470,0.00078125 +471,0.00078125 +472,0.00078125 +473,0.00078125 +474,0.00078125 +475,0.00078125 +476,0.00078125 +477,0.00078125 +478,0.00078125 +479,0.00078125 +480,0.00078125 +481,0.00078125 +482,0.00078125 +483,0.00078125 +484,0.7498008578431372 +485,1 +486,1 +487,0.5027420343137254 +488,0.00078125 +489,0.00078125 +490,0.00078125 +491,0.00078125 +492,0.00078125 +493,1 +494,1 +495,1 +496,0.00078125 +497,0.00078125 +498,0.00078125 +499,0.00078125 +500,0.00078125 +501,0.00078125 +502,0.00078125 +503,0.00078125 +504,0.00078125 +505,0.00078125 +506,0.00078125 +507,0.00078125 +508,0.00078125 +509,0.00078125 +510,0.00078125 +511,0.00078125 +512,0.5027420343137254 +513,1 +514,1 +515,1 +516,0.00078125 +517,0.00078125 +518,0.00078125 +519,0.00078125 +520,0.5027420343137254 +521,1 +522,1 +523,0.7498008578431372 +524,0.00078125 +525,0.00078125 +526,0.00078125 +527,0.00078125 +528,0.00078125 +529,0.00078125 +530,0.00078125 +531,0.00078125 +532,0.00078125 +533,0.00078125 +534,0.00078125 +535,0.00078125 +536,0.00078125 +537,0.00078125 +538,0.00078125 +539,0.00078125 +540,0.00078125 +541,1 +542,1 +543,1 +544,0.25176164215686275 +545,0.00078125 +546,0.00078125 +547,0.00078125 +548,1 +549,1 +550,1 +551,0.5027420343137254 +552,0.00078125 +553,0.00078125 +554,0.00078125 +555,0.00078125 +556,0.00078125 +557,0.00078125 +558,0.00078125 +559,0.00078125 +560,0.00078125 +561,0.00078125 +562,0.00078125 +563,0.00078125 +564,0.00078125 +565,0.00078125 +566,0.00078125 +567,0.00078125 +568,0.00078125 +569,0.5027420343137254 +570,1 +571,1 +572,0.7498008578431372 +573,0.25176164215686275 +574,0.00078125 +575,0.5027420343137254 +576,1 +577,1 +578,0.7498008578431372 +579,0.00078125 +580,0.00078125 +581,0.00078125 +582,0.00078125 +583,0.00078125 +584,0.00078125 +585,0.00078125 +586,0.00078125 +587,0.00078125 +588,0.00078125 +589,0.00078125 +590,0.00078125 +591,0.00078125 +592,0.00078125 +593,0.00078125 +594,0.00078125 +595,0.00078125 +596,0.00078125 +597,0.25176164215686275 +598,1 +599,1 +600,1 +601,1 +602,1 +603,1 +604,1 +605,1 +606,0.5027420343137254 +607,0.00078125 +608,0.00078125 +609,0.00078125 +610,0.00078125 +611,0.00078125 +612,0.00078125 +613,0.00078125 +614,0.00078125 +615,0.00078125 +616,0.00078125 +617,0.00078125 +618,0.00078125 +619,0.00078125 +620,0.00078125 +621,0.00078125 +622,0.00078125 +623,0.00078125 +624,0.00078125 +625,0.00078125 +626,0.25176164215686275 +627,1 +628,1 +629,1 +630,1 +631,1 +632,1 +633,0.5027420343137254 +634,0.00078125 +635,0.00078125 +636,0.00078125 +637,0.00078125 +638,0.00078125 +639,0.00078125 +640,0.00078125 +641,0.00078125 +642,0.00078125 +643,0.00078125 +644,0.00078125 +645,0.00078125 +646,0.00078125 +647,0.00078125 +648,0.00078125 +649,0.00078125 +650,0.00078125 +651,0.00078125 +652,0.00078125 +653,0.00078125 +654,0.00078125 +655,0.25176164215686275 +656,0.7498008578431372 +657,1 +658,1 +659,1 +660,0.7498008578431372 +661,0.00078125 +662,0.00078125 +663,0.00078125 +664,0.00078125 +665,0.00078125 +666,0.00078125 +667,0.00078125 +668,0.00078125 +669,0.00078125 +670,0.00078125 +671,0.00078125 +672,0.00078125 +673,0.00078125 +674,0.00078125 +675,0.00078125 +676,0.00078125 +677,0.00078125 +678,0.00078125 +679,0.00078125 +680,0.00078125 +681,0.00078125 +682,0.00078125 +683,0.00078125 +684,0.00078125 +685,0.00078125 +686,0.00078125 +687,0.00078125 +688,0.00078125 +689,0.00078125 +690,0.00078125 +691,0.00078125 +692,0.00078125 +693,0.00078125 +694,0.00078125 +695,0.00078125 +696,0.00078125 +697,0.00078125 +698,0.00078125 +699,0.00078125 +700,0.00078125 +701,0.00078125 +702,0.00078125 +703,0.00078125 +704,0.00078125 +705,0.00078125 +706,0.00078125 +707,0.00078125 +708,0.00078125 +709,0.00078125 +710,0.00078125 +711,0.00078125 +712,0.00078125 +713,0.00078125 +714,0.00078125 +715,0.00078125 +716,0.00078125 +717,0.00078125 +718,0.00078125 +719,0.00078125 +720,0.00078125 +721,0.00078125 +722,0.00078125 +723,0.00078125 +724,0.00078125 +725,0.00078125 +726,0.00078125 +727,0.00078125 +728,0.00078125 +729,0.00078125 +730,0.00078125 +731,0.00078125 +732,0.00078125 +733,0.00078125 +734,0.00078125 +735,0.00078125 +736,0.00078125 +737,0.00078125 +738,0.00078125 +739,0.00078125 +740,0.00078125 +741,0.00078125 +742,0.00078125 +743,0.00078125 +744,0.00078125 +745,0.00078125 +746,0.00078125 +747,0.00078125 +748,0.00078125 +749,0.00078125 +750,0.00078125 +751,0.00078125 +752,0.00078125 +753,0.00078125 +754,0.00078125 +755,0.00078125 +756,0.00078125 +757,0.00078125 +758,0.00078125 +759,0.00078125 +760,0.00078125 +761,0.00078125 +762,0.00078125 +763,0.00078125 +764,0.00078125 +765,0.00078125 +766,0.00078125 +767,0.00078125 +768,0.00078125 +769,0.00078125 +770,0.00078125 +771,0.00078125 +772,0.00078125 +773,0.00078125 +774,0.00078125 +775,0.00078125 +776,0.00078125 +777,0.00078125 +778,0.00078125 +779,0.00078125 +780,0.00078125 +781,0.00078125 +782,0.00078125 +783,0.00078125 +1678,1.0000000000 +1679,1.0000000000 +1680,1.0000000000 +1681,1.0000000000 +1682,1.0000000000 +1683,1.0000000000 +1684,1.0000000000 +1685,1.0000000000 +1686,1.0000000000 +1687,1.0000000000 +1688,1.0000000000 +1689,1.0000000000 +1690,1.0000000000 +1691,1.0000000000 +1692,1.0000000000 +1693,1.0000000000 +1694,1.0000000000 +1695,1.0000000000 +1696,1.0000000000 +1697,1.0000000000 +1698,1.0000000000 +1699,1.0000000000 +1700,1.0000000000 +1701,1.0000000000 +1702,1.0000000000 +1703,1.0000000000 +1704,1.0000000000 +1705,1.0000000000 +1706,1.0000000000 +1707,1.0000000000 +1708,1.0000000000 +1709,1.0000000000 +1710,1.0000000000 +1711,1.0000000000 +1712,1.0000000000 +1713,1.0000000000 +1714,1.0000000000 +1715,1.0000000000 +1716,1.0000000000 +1717,1.0000000000 +1718,1.0000000000 +1719,1.0000000000 +1720,1.0000000000 +1721,1.0000000000 +1722,1.0000000000 +1723,1.0000000000 +1724,1.0000000000 +1725,1.0000000000 +1726,1.0000000000 +1727,1.0000000000 +1928,1.0000000000 +1929,1.0000000000 +1930,1.0000000000 +1931,1.0000000000 +1932,1.0000000000 +1933,1.0000000000 +1934,1.0000000000 +1935,1.0000000000 +1936,1.0000000000 +1937,1.0000000000 +1938,1.0000000000 +1939,1.0000000000 +1940,1.0000000000 +1941,1.0000000000 +1942,1.0000000000 +1943,1.0000000000 +1944,1.0000000000 +1945,1.0000000000 +1946,1.0000000000 +1947,1.0000000000 +1948,1.0000000000 +1949,1.0000000000 +1950,1.0000000000 +1951,1.0000000000 +1952,1.0000000000 +1953,1.0000000000 +1954,1.0000000000 +1955,1.0000000000 +1956,1.0000000000 +1957,1.0000000000 +1958,1.0000000000 +1959,1.0000000000 +1960,1.0000000000 +1961,1.0000000000 +1962,1.0000000000 +1963,1.0000000000 +1964,1.0000000000 +1965,1.0000000000 +1966,1.0000000000 +1967,1.0000000000 +1968,1.0000000000 +1969,1.0000000000 +1970,1.0000000000 +1971,1.0000000000 +1972,1.0000000000 +1973,1.0000000000 +1974,1.0000000000 +1975,1.0000000000 +1976,1.0000000000 +1977,1.0000000000 +2178,1.0000000000 +2179,1.0000000000 +2180,1.0000000000 +2181,1.0000000000 +2182,1.0000000000 +2183,1.0000000000 +2184,1.0000000000 +2185,1.0000000000 +2186,1.0000000000 +2187,1.0000000000 +2188,1.0000000000 +2189,1.0000000000 +2190,1.0000000000 +2191,1.0000000000 +2192,1.0000000000 +2193,1.0000000000 +2194,1.0000000000 +2195,1.0000000000 +2196,1.0000000000 +2197,1.0000000000 +2198,1.0000000000 +2199,1.0000000000 +2200,1.0000000000 +2201,1.0000000000 +2202,1.0000000000 +2203,1.0000000000 +2204,1.0000000000 +2205,1.0000000000 +2206,1.0000000000 +2207,1.0000000000 +2208,1.0000000000 +2209,1.0000000000 +2210,1.0000000000 +2211,1.0000000000 +2212,1.0000000000 +2213,1.0000000000 +2214,1.0000000000 +2215,1.0000000000 +2216,1.0000000000 +2217,1.0000000000 +2218,1.0000000000 +2219,1.0000000000 +2220,1.0000000000 +2221,1.0000000000 +2222,1.0000000000 +2223,1.0000000000 +2224,1.0000000000 +2225,1.0000000000 +2226,1.0000000000 +2227,1.0000000000 +2428,1.0000000000 +2429,1.0000000000 +2430,1.0000000000 +2431,1.0000000000 +2432,1.0000000000 +2433,1.0000000000 +2434,1.0000000000 +2435,1.0000000000 +2436,1.0000000000 +2437,1.0000000000 +2438,1.0000000000 +2439,1.0000000000 +2440,1.0000000000 +2441,1.0000000000 +2442,1.0000000000 +2443,1.0000000000 +2444,1.0000000000 +2445,1.0000000000 +2446,1.0000000000 +2447,1.0000000000 +2448,1.0000000000 +2449,1.0000000000 +2450,1.0000000000 +2451,1.0000000000 +2452,1.0000000000 +2453,1.0000000000 +2454,1.0000000000 +2455,1.0000000000 +2456,1.0000000000 +2457,1.0000000000 +2458,1.0000000000 +2459,1.0000000000 +2460,1.0000000000 +2461,1.0000000000 +2462,1.0000000000 +2463,1.0000000000 +2464,1.0000000000 +2465,1.0000000000 +2466,1.0000000000 +2467,1.0000000000 +2468,1.0000000000 +2469,1.0000000000 +2470,1.0000000000 +2471,1.0000000000 +2472,1.0000000000 +2473,1.0000000000 +2474,1.0000000000 +2475,1.0000000000 +2476,1.0000000000 +2477,1.0000000000 +2598,1.0000000000 +2599,1.0000000000 +2600,1.0000000000 +2601,1.0000000000 +2602,1.0000000000 +2603,1.0000000000 +2604,1.0000000000 +2605,1.0000000000 +2606,1.0000000000 +2607,1.0000000000 +2648,1.0000000000 +2649,1.0000000000 +2650,1.0000000000 +2651,1.0000000000 +2652,1.0000000000 +2653,1.0000000000 +2654,1.0000000000 +2655,1.0000000000 +2656,1.0000000000 +2657,1.0000000000 +0,0,0.0002079358,0,31.6227760315,794,-1.0000000000 +1,0,-0.0002583992,1,31.6227760315,795,-1.0000000000 +2,0,-0.0003494073,2,31.6227760315,796,-1.0000000000 +3,0,0.0003390284,3,31.6227760315,797,-1.0000000000 +4,0,-0.0003349786,4,31.6227760315,798,-1.0000000000 +5,0,0.0001279500,5,31.6227760315,799,-1.0000000000 +6,0,0.0001763496,6,31.6227760315,800,-1.0000000000 +7,0,-0.0001354526,7,31.6227760315,801,-1.0000000000 +8,0,0.0003771311,8,31.6227760315,802,-1.0000000000 +9,0,0.0003647278,9,31.6227760315,803,-1.0000000000 +10,0,-0.0002333800,10,31.6227760315,804,-1.0000000000 +11,0,-0.0000413705,11,31.6227760315,805,-1.0000000000 +12,0,0.0000488727,12,31.6227760315,806,-1.0000000000 +13,0,-0.0002826663,13,31.6227760315,807,-1.0000000000 +14,0,0.0006292058,14,31.6227760315,808,-1.0000000000 +15,0,-0.0001313380,15,31.6227760315,809,-1.0000000000 +16,0,0.0000416177,16,31.6227760315,810,-1.0000000000 +17,0,0.0003893470,17,31.6227760315,811,-1.0000000000 +18,0,-0.0002245790,18,31.6227760315,812,-1.0000000000 +19,0,0.0003470236,19,31.6227760315,813,-1.0000000000 +20,0,0.0003778675,20,31.6227760315,814,-1.0000000000 +21,0,0.0003159090,21,31.6227760315,815,-1.0000000000 +22,0,-0.0004873525,22,31.6227760315,816,-1.0000000000 +23,0,0.0005008946,23,31.6227760315,817,-1.0000000000 +24,0,0.0000937252,24,31.6227760315,818,-1.0000000000 +25,0,0.0003262460,25,31.6227760315,819,-1.0000000000 +26,0,0.0002706744,26,31.6227760315,820,-1.0000000000 +27,0,0.0000455972,27,31.6227760315,821,-1.0000000000 +28,0,0.0002516698,28,31.6227760315,822,-1.0000000000 +29,0,-0.0003327862,29,31.6227760315,823,-1.0000000000 +30,0,-0.0002052352,30,31.6227760315,824,-1.0000000000 +31,0,-0.0001236253,31,31.6227760315,825,-1.0000000000 +32,0,0.0000176382,32,31.6227760315,826,-1.0000000000 +33,0,0.0003008715,33,31.6227760315,827,-1.0000000000 +34,0,0.0006836313,34,31.6220626831,828,-1.0000000000 +35,0,-0.0001673320,35,31.6206951141,829,-1.0000000000 +36,0,0.0000483380,36,31.6100864410,830,-1.0000000000 +37,0,0.0004174529,37,31.5675048828,831,-1.0000000000 +38,0,0.0002150589,38,31.6203975677,832,-1.0000000000 +39,0,0.0002132856,39,31.6220436096,833,-1.0000000000 +40,0,-0.0000718096,40,31.6225090027,834,-1.0000000000 +41,0,0.0172859076,41,28.4602222443,835,-1.0000000000 +42,0,0.0323503427,42,19.9615135193,836,-1.0000000000 +43,0,0.0184166469,43,28.4836978912,837,-1.0000000000 +44,0,0.0017066360,44,30.7574901581,838,-1.0000000000 +45,0,0.0020751858,45,31.0119667053,839,-1.0000000000 +46,0,0.0014388275,46,31.2325229645,840,-1.0000000000 +47,0,0.0054573664,47,29.7056388855,841,-1.0000000000 +48,0,0.0080556581,48,28.2757072449,842,-1.0000000000 +49,0,0.0014539692,49,31.2102050781,843,-1.0000000000 +50,0,0.0007705564,50,31.6227760315,844,-1.0000000000 +51,0,0.0005107099,51,31.6227760315,845,-1.0000000000 +52,0,0.0002250048,52,31.6227760315,846,-1.0000000000 +53,0,-0.0005018546,53,31.6227760315,847,-1.0000000000 +54,0,0.0004192109,54,31.6227760315,848,-1.0000000000 +55,0,0.0000303526,55,31.6227760315,849,-1.0000000000 +56,0,0.0002229478,56,31.6227760315,850,-1.0000000000 +57,0,0.0004961172,57,31.6227760315,851,-1.0000000000 +58,0,0.0006572621,58,31.6227760315,852,-1.0000000000 +59,0,-0.0001420256,59,31.6227760315,853,-1.0000000000 +60,0,0.0006846254,60,31.6227760315,854,-1.0000000000 +61,0,-0.0001651450,61,31.6227741241,855,-1.0000000000 +62,0,0.0004542769,62,31.5634021759,856,-1.0000000000 +63,0,0.0031030406,63,31.1031246185,857,-1.0000000000 +64,0,0.0280330572,64,25.3654117584,858,-1.0000000000 +65,0,0.0385130979,65,19.3904418945,859,-1.0000000000 +66,0,0.0384126604,66,21.4482326508,860,-1.0000000000 +67,0,0.0882032439,67,15.1026964188,861,-1.0000000000 +68,0,0.1183664203,68,9.6312952042,862,-1.0000000000 +69,0,0.1238476709,69,8.9555406570,863,-1.0000000000 +70,0,0.1293599755,70,8.7221813202,864,-1.0000000000 +71,0,0.1229867041,71,10.2591333389,865,-1.0000000000 +72,0,0.1245075017,72,9.6111621857,866,-1.0000000000 +73,0,0.1211254299,73,9.3289775848,867,-1.0000000000 +74,0,0.1249790415,74,11.7950582504,868,-1.0000000000 +75,0,0.1247130036,75,9.8608808517,869,-1.0000000000 +76,0,0.1161369383,76,9.3387050629,870,-1.0000000000 +77,0,0.0982553512,77,11.3408269882,871,-1.0000000000 +78,0,0.0534446128,78,22.4022750854,872,-1.0000000000 +79,0,0.0021463588,79,30.7039184570,873,-1.0000000000 +80,0,0.0000134101,80,31.5947437286,874,-1.0000000000 +81,0,0.0001864402,81,31.6227760315,875,-1.0000000000 +82,0,-0.0004649443,82,31.6227760315,876,-1.0000000000 +83,0,-0.0001222452,83,31.6227760315,877,-1.0000000000 +84,0,-0.0001723979,84,31.6227760315,878,-1.0000000000 +85,0,0.0000698144,85,31.6227760315,879,-1.0000000000 +86,0,-0.0002891293,86,31.6227760315,880,-1.0000000000 +87,0,-0.0000747551,87,31.6227760315,881,-1.0000000000 +88,0,-0.0003064532,88,31.6227760315,882,-1.0000000000 +89,0,-0.0003921269,89,31.6218929291,883,-1.0000000000 +90,0,0.0089464234,90,30.5839347839,884,-1.0000000000 +91,0,0.0684941635,91,15.9870204926,885,-1.0000000000 +92,0,0.0888411775,92,12.1635036469,886,-1.0000000000 +93,0,0.0983949155,93,10.6395206451,887,-1.0000000000 +94,0,0.1431194246,94,8.6441278458,888,-1.0000000000 +95,0,0.1838538200,95,7.2239866257,889,-1.0000000000 +96,0,0.2103057802,96,6.1776309013,890,-1.0000000000 +97,0,0.2509822547,97,5.7684159279,891,-1.0000000000 +98,0,0.2644919157,98,5.0066733360,892,-1.0000000000 +99,0,0.2750744522,99,4.9207816124,893,-1.0000000000 +100,0,0.2888795733,100,4.8772101402,894,-1.0000000000 +101,0,0.2598167956,101,5.0838270187,895,-1.0000000000 +102,0,0.2218356729,102,6.0849299431,896,-1.0000000000 +103,0,0.1860902607,103,6.2116336823,897,-1.0000000000 +104,0,0.1604204327,104,7.4374589920,898,-1.0000000000 +105,0,0.1235561371,105,8.7856378555,899,-1.0000000000 +106,0,0.0918275937,106,17.3154182434,900,-1.0000000000 +107,0,0.0287123173,107,21.9835720062,901,-1.0000000000 +108,0,0.0145352446,108,27.4179573059,902,-1.0000000000 +109,0,0.0012948827,109,31.5514335632,903,-1.0000000000 +110,0,0.0000999159,110,31.6227760315,904,-1.0000000000 +111,0,0.0002175442,111,31.6227760315,905,-1.0000000000 +112,0,0.0002331373,112,31.6227760315,906,-1.0000000000 +113,0,0.0001173035,113,31.6223812103,907,-1.0000000000 +114,0,-0.0003774550,114,31.6227760315,908,-1.0000000000 +115,0,0.0000420564,115,31.6210212708,909,-1.0000000000 +116,0,-0.0008032957,116,31.6226425171,910,-1.0000000000 +117,0,0.0138732493,117,29.9801807404,911,-1.0000000000 +118,0,0.0654990301,118,16.7729282379,912,-1.0000000000 +119,0,0.1190289780,119,9.7614259720,913,-1.0000000000 +120,0,0.1674656868,120,8.2633466721,914,-1.0000000000 +121,0,0.2256945670,121,6.8788871765,915,-1.0000000000 +122,0,0.3065535724,122,4.5844759941,916,-1.0000000000 +123,0,0.3674325645,123,3.8042459488,917,-1.0000000000 +124,0,0.4210087359,124,3.4374401569,918,-1.0000000000 +125,0,0.4700816572,125,3.2917919159,919,-1.0000000000 +126,0,0.5004815459,126,3.0672521591,920,-1.0000000000 +127,0,0.5274384022,127,2.9202229977,921,-1.0000000000 +128,0,0.5072142482,128,2.9477114677,922,-1.0000000000 +129,0,0.4729066789,129,3.1703896523,923,-1.0000000000 +130,0,0.4116190672,130,3.6987824440,924,-1.0000000000 +131,0,0.3370232880,131,4.3520565033,925,-1.0000000000 +132,0,0.2831015885,132,5.0502543449,926,-1.0000000000 +133,0,0.2085866928,133,6.4650530815,927,-1.0000000000 +134,0,0.1565031260,134,8.8168840408,928,-1.0000000000 +135,0,0.1231054738,135,11.4613828659,929,-1.0000000000 +136,0,0.0485384166,136,19.9370212555,930,-1.0000000000 +137,0,0.0126857972,137,29.6892795563,931,-1.0000000000 +138,0,0.0004422957,138,31.6210861206,932,-1.0000000000 +139,0,0.0000184700,139,31.6227760315,933,-1.0000000000 +140,0,0.0001403502,140,31.6227760315,934,-1.0000000000 +141,0,0.0000654595,141,31.6227760315,935,-1.0000000000 +142,0,0.0000607840,142,31.6227760315,936,-1.0000000000 +143,0,-0.0005186090,143,31.6206760406,937,-1.0000000000 +144,0,0.0214564912,144,26.3024940491,938,-1.0000000000 +145,0,0.0900339484,145,14.6895189285,939,-1.0000000000 +146,0,0.1642016321,146,9.0687723160,940,-1.0000000000 +147,0,0.2214516252,147,6.4044857025,941,-1.0000000000 +148,0,0.2872681916,148,4.8680295944,942,-1.0000000000 +149,0,0.3685337305,149,3.8092288971,943,-1.0000000000 +150,0,0.4711169004,150,3.1616506577,944,-1.0000000000 +151,0,0.5671803355,151,2.7714066505,945,-1.0000000000 +152,0,0.6571742296,152,2.5546631813,946,-1.0000000000 +153,0,0.7373042703,153,2.4611840248,947,-1.0000000000 +154,0,0.8158724904,154,2.4277541637,948,-1.0000000000 +155,0,0.8480603099,155,2.3826928139,949,-1.0000000000 +156,0,0.8326759934,156,2.4234437943,950,-1.0000000000 +157,0,0.7751068473,157,2.4501872063,951,-1.0000000000 +158,0,0.6702090502,158,2.6260018349,952,-1.0000000000 +159,0,0.5534479022,159,2.8712155819,953,-1.0000000000 +160,0,0.4441415370,160,3.4023094177,954,-1.0000000000 +161,0,0.3377563059,161,4.1463561058,955,-1.0000000000 +162,0,0.2536413372,162,5.1094250679,956,-1.0000000000 +163,0,0.2015810758,163,6.4431381226,957,-1.0000000000 +164,0,0.1061781123,164,11.9039440155,958,-1.0000000000 +165,0,0.0474606641,165,19.9438781738,959,-1.0000000000 +166,0,0.0081077237,166,30.3990650177,960,-1.0000000000 +167,0,-0.0000006077,167,31.6227760315,961,-1.0000000000 +168,0,0.0000963342,168,31.6227760315,962,-1.0000000000 +169,0,0.0002636870,169,31.6205902100,963,-1.0000000000 +170,0,-0.0003005093,170,31.6178646088,964,-1.0000000000 +171,0,0.0115523944,171,29.6655826569,965,-1.0000000000 +172,0,0.0760080963,172,16.1452503204,966,-1.0000000000 +173,0,0.1558186561,173,8.4764928818,967,-1.0000000000 +174,0,0.2341038138,174,5.7819528580,968,-1.0000000000 +175,0,0.3126183152,175,4.5563411713,969,-1.0000000000 +176,0,0.4008408189,176,3.6441061497,970,-1.0000000000 +177,0,0.5085703731,177,3.0180699825,971,-1.0000000000 +178,0,0.6294556856,178,2.6308863163,972,-1.0000000000 +179,0,0.7481387258,179,2.4874277115,973,-1.0000000000 +180,0,0.8824155331,180,2.3697898388,974,-1.0000000000 +181,0,0.9917500019,181,2.3214147091,975,-1.0000000000 +182,0,1.0729775429,182,2.3268144131,976,-1.0000000000 +183,0,1.1049280167,183,2.3041279316,977,-1.0000000000 +184,0,1.0722656250,184,2.2890098095,978,-1.0000000000 +185,0,0.9774256349,185,2.2437229156,979,-1.0000000000 +186,0,0.8916051388,186,2.3827562332,980,-1.0000000000 +187,0,0.7057592273,187,2.4946858883,981,-1.0000000000 +188,0,0.5681874156,188,2.8479213715,982,-1.0000000000 +189,0,0.4187501967,189,3.4652247429,983,-1.0000000000 +190,0,0.3286397457,190,4.2516651154,984,-1.0000000000 +191,0,0.2453264892,191,5.6235122681,985,-1.0000000000 +192,0,0.1493728757,192,9.1089239120,986,-1.0000000000 +193,0,0.1055997238,193,12.5630216599,987,-1.0000000000 +194,0,0.0577709414,194,17.1816596985,988,-1.0000000000 +195,0,0.0001650765,195,31.6227550507,989,-1.0000000000 +196,0,0.0001360730,196,31.6227760315,990,-1.0000000000 +197,0,0.0286665205,197,25.7242279053,991,-1.0000000000 +198,0,0.0185648240,198,29.1938343048,992,-1.0000000000 +199,0,0.0463312007,199,17.7456054688,993,-1.0000000000 +200,0,0.1100403145,200,11.7338247299,994,-1.0000000000 +201,0,0.1908266991,201,6.9581613541,995,-1.0000000000 +202,0,0.3026175797,202,4.6381225586,996,-1.0000000000 +203,0,0.3958640099,203,3.6027181149,997,-1.0000000000 +204,0,0.4933891296,204,3.0626730919,998,-1.0000000000 +205,0,0.6277903318,205,2.6963646412,999,-1.0000000000 +206,0,0.7647606730,206,2.4716770649,1000,-1.0000000000 +207,0,0.8989660740,207,2.4109206200,1001,-1.0000000000 +208,0,1.0284951925,208,2.3586513996,1002,-1.0000000000 +209,0,1.0996196270,209,2.3010489941,1003,-1.0000000000 +210,0,1.1790245771,210,2.3166940212,1004,-1.0000000000 +211,0,1.2310339212,211,2.3528943062,1005,-1.0000000000 +212,0,1.2175028324,212,2.3542003632,1006,-1.0000000000 +213,0,1.1302845478,213,2.3178131580,1007,-1.0000000000 +214,0,1.0352075100,214,2.3592703342,1008,-1.0000000000 +215,0,0.8394643068,215,2.3962028027,1009,-1.0000000000 +216,0,0.6509366035,216,2.7720828056,1010,-1.0000000000 +217,0,0.4646136165,217,3.1780204773,1011,-1.0000000000 +218,0,0.3690448403,218,3.7357251644,1012,-1.0000000000 +219,0,0.2772509754,219,4.9801034927,1013,-1.0000000000 +220,0,0.1976015866,220,6.7223825455,1014,-1.0000000000 +221,0,0.1370779425,221,9.2390718460,1015,-1.0000000000 +222,0,0.0497566685,222,18.3531360626,1016,-1.0000000000 +223,0,-0.0003765492,223,31.6227493286,1017,-1.0000000000 +224,0,-0.0000978563,224,31.6227760315,1018,-1.0000000000 +225,0,0.0055302819,225,29.4070453644,1019,-1.0000000000 +226,0,0.0239453297,226,26.8379230499,1020,-1.0000000000 +227,0,0.0624308847,227,17.4192199707,1021,-1.0000000000 +228,0,0.1402922124,228,9.4714317322,1022,-1.0000000000 +229,0,0.2283508927,229,6.0654091835,1023,-1.0000000000 +230,0,0.3311395645,230,4.1958436966,1024,-1.0000000000 +231,0,0.4342799783,231,3.2883524895,1025,-1.0000000000 +232,0,0.5590006709,232,2.8224635124,1026,-1.0000000000 +233,0,0.7316516638,233,2.5400061607,1027,-1.0000000000 +234,0,0.8548274636,234,2.4144558907,1028,-1.0000000000 +235,0,0.9891402721,235,2.3530962467,1029,-1.0000000000 +236,0,1.0502716303,236,2.3016290665,1030,-1.0000000000 +237,0,1.0607392788,237,2.2903811932,1031,-1.0000000000 +238,0,1.1183186769,238,2.3235101700,1032,-1.0000000000 +239,0,1.1194092035,239,2.3126912117,1033,-1.0000000000 +240,0,1.1294481754,240,2.3333547115,1034,-1.0000000000 +241,0,1.1141145229,241,2.3193163872,1035,-1.0000000000 +242,0,1.0437884331,242,2.2823159695,1036,-1.0000000000 +243,0,0.8947256804,243,2.3181655407,1037,-1.0000000000 +244,0,0.7067958117,244,2.5579893589,1038,-1.0000000000 +245,0,0.5081296563,245,3.0765430927,1039,-1.0000000000 +246,0,0.3798761666,246,3.6714072227,1040,-1.0000000000 +247,0,0.2857289016,247,4.7601342201,1041,-1.0000000000 +248,0,0.2004447579,248,6.0894117355,1042,-1.0000000000 +249,0,0.1385634840,249,9.3406229019,1043,-1.0000000000 +250,0,0.0403848663,250,19.1417312622,1044,-1.0000000000 +251,0,0.0001982165,251,31.6227760315,1045,-1.0000000000 +252,0,0.0001750147,252,31.6227760315,1046,-1.0000000000 +253,0,0.0042383769,253,30.0029430389,1047,-1.0000000000 +254,0,0.0337815769,254,21.3715801239,1048,-1.0000000000 +255,0,0.0844024718,255,14.8542079926,1049,-1.0000000000 +256,0,0.1610622257,256,7.5341968536,1050,-1.0000000000 +257,0,0.2227348387,257,5.6300301552,1051,-1.0000000000 +258,0,0.3526701033,258,3.9894003868,1052,-1.0000000000 +259,0,0.4723548591,259,3.1466460228,1053,-1.0000000000 +260,0,0.6160907149,260,2.7099738121,1054,-1.0000000000 +261,0,0.7912367582,261,2.4634957314,1055,-1.0000000000 +262,0,0.9398992062,262,2.3564286232,1056,-1.0000000000 +263,0,1.0118169785,263,2.2864329815,1057,-1.0000000000 +264,0,0.9678423405,264,2.3070170879,1058,-1.0000000000 +265,0,0.9376413226,265,2.3450162411,1059,-1.0000000000 +266,0,0.9355269670,266,2.3803303242,1060,-1.0000000000 +267,0,0.9543191195,267,2.3556554317,1061,-1.0000000000 +268,0,1.0108853579,268,2.3408815861,1062,-1.0000000000 +269,0,1.0471606255,269,2.3146529198,1063,-1.0000000000 +270,0,0.9970059395,270,2.2666883469,1064,-1.0000000000 +271,0,0.8818715811,271,2.3353953362,1065,-1.0000000000 +272,0,0.6957759261,272,2.5611574650,1066,-1.0000000000 +273,0,0.5319196582,273,3.0077891350,1067,-1.0000000000 +274,0,0.3815186620,274,3.6669015884,1068,-1.0000000000 +275,0,0.2636581063,275,5.1261324883,1069,-1.0000000000 +276,0,0.1597977132,276,8.1884031296,1070,-1.0000000000 +277,0,0.0801797807,277,14.1901311874,1071,-1.0000000000 +278,0,0.0370516144,278,20.5537090302,1072,-1.0000000000 +279,0,-0.0004002613,279,31.6050453186,1073,-1.0000000000 +280,0,-0.0003776760,280,31.6227111816,1074,-1.0000000000 +281,0,0.0021100610,281,31.5973281860,1075,-1.0000000000 +282,0,0.0257851910,282,26.2151908875,1076,-1.0000000000 +283,0,0.0611026809,283,17.1719360352,1077,-1.0000000000 +284,0,0.1393538266,284,8.7866668701,1078,-1.0000000000 +285,0,0.2184684724,285,6.0777459145,1079,-1.0000000000 +286,0,0.3355731368,286,4.2265377045,1080,-1.0000000000 +287,0,0.4826321006,287,3.1534481049,1081,-1.0000000000 +288,0,0.6489428878,288,2.6726737022,1082,-1.0000000000 +289,0,0.8263921738,289,2.3904621601,1083,-1.0000000000 +290,0,0.9376775622,290,2.3048274517,1084,-1.0000000000 +291,0,0.9587321281,291,2.3109583855,1085,-1.0000000000 +292,0,0.8675266504,292,2.3774199486,1086,-1.0000000000 +293,0,0.8094529510,293,2.5560112000,1087,-1.0000000000 +294,0,0.7863086462,294,2.5117721558,1088,-1.0000000000 +295,0,0.8640347719,295,2.3969352245,1089,-1.0000000000 +296,0,0.9173959494,296,2.3281571865,1090,-1.0000000000 +297,0,0.9688491821,297,2.3375737667,1091,-1.0000000000 +298,0,0.9456661344,298,2.3412094116,1092,-1.0000000000 +299,0,0.8205282092,299,2.3724005222,1093,-1.0000000000 +300,0,0.6771087646,300,2.5506916046,1094,-1.0000000000 +301,0,0.5108327866,301,2.9238371849,1095,-1.0000000000 +302,0,0.3787623048,302,3.7161893845,1096,-1.0000000000 +303,0,0.2699432671,303,5.4588193893,1097,-1.0000000000 +304,0,0.1464111656,304,10.0295314789,1098,-1.0000000000 +305,0,0.0792720169,305,16.0952014923,1099,-1.0000000000 +306,0,0.0059705833,306,31.2058010101,1100,-1.0000000000 +307,0,0.0004632693,307,31.5308609009,1101,-1.0000000000 +308,0,0.0043669338,308,30.6051616669,1102,-1.0000000000 +309,0,0.0063748998,309,29.8326950073,1103,-1.0000000000 +310,0,0.0159165747,310,28.5636730194,1104,-1.0000000000 +311,0,0.0448154770,311,20.4961643219,1105,-1.0000000000 +312,0,0.1235546991,312,10.9966354370,1106,-1.0000000000 +313,0,0.2231135815,313,6.1386961937,1107,-1.0000000000 +314,0,0.3377698064,314,4.2937984467,1108,-1.0000000000 +315,0,0.4951098561,315,3.1601424217,1109,-1.0000000000 +316,0,0.6553843021,316,2.6288735867,1110,-1.0000000000 +317,0,0.8079286218,317,2.3804090023,1111,-1.0000000000 +318,0,0.9239451885,318,2.3580360413,1112,-1.0000000000 +319,0,0.8803372979,319,2.3451416492,1113,-1.0000000000 +320,0,0.7921043038,320,2.4804413319,1114,-1.0000000000 +321,0,0.7499290109,321,2.5833342075,1115,-1.0000000000 +322,0,0.7702397704,322,2.4749538898,1116,-1.0000000000 +323,0,0.8655048609,323,2.3455898762,1117,-1.0000000000 +324,0,0.9550458789,324,2.3513987064,1118,-1.0000000000 +325,0,0.9986506104,325,2.3708248138,1119,-1.0000000000 +326,0,0.9347382188,326,2.3565754890,1120,-1.0000000000 +327,0,0.8275583982,327,2.4049818516,1121,-1.0000000000 +328,0,0.6480501294,328,2.6506526470,1122,-1.0000000000 +329,0,0.4856687486,329,3.0139541626,1123,-1.0000000000 +330,0,0.3583132625,330,3.9707667828,1124,-1.0000000000 +331,0,0.2453819662,331,5.6648898125,1125,-1.0000000000 +332,0,0.1315680295,332,9.5050153732,1126,-1.0000000000 +333,0,0.0543179512,333,19.6717777252,1127,-1.0000000000 +334,0,0.0002487019,334,31.5746517181,1128,-1.0000000000 +335,0,-0.0004916147,335,31.6226940155,1129,-1.0000000000 +336,0,0.0001359140,336,31.6227760315,1130,-1.0000000000 +337,0,0.0007245721,337,31.6227684021,1131,-1.0000000000 +338,0,-0.0002426033,338,31.5914230347,1132,-1.0000000000 +339,0,0.0228728075,339,26.4781723022,1133,-1.0000000000 +340,0,0.1194402054,340,12.1590147018,1134,-1.0000000000 +341,0,0.2250171900,341,6.1180801392,1135,-1.0000000000 +342,0,0.3482197821,342,4.1998472214,1136,-1.0000000000 +343,0,0.5096925497,343,3.1183922291,1137,-1.0000000000 +344,0,0.6711575985,344,2.5549144745,1138,-1.0000000000 +345,0,0.8273203373,345,2.3965148926,1139,-1.0000000000 +346,0,0.8989909887,346,2.3424625397,1140,-1.0000000000 +347,0,0.8338220119,347,2.3802590370,1141,-1.0000000000 +348,0,0.7712999582,348,2.4435381889,1142,-1.0000000000 +349,0,0.7810522914,349,2.4618661404,1143,-1.0000000000 +350,0,0.8488454223,350,2.3637220860,1144,-1.0000000000 +351,0,0.9808951616,351,2.2952208519,1145,-1.0000000000 +352,0,1.0584679842,352,2.3287153244,1146,-1.0000000000 +353,0,1.0484929085,353,2.3668515682,1147,-1.0000000000 +354,0,0.9439478517,354,2.3677756786,1148,-1.0000000000 +355,0,0.8024018407,355,2.4240152836,1149,-1.0000000000 +356,0,0.6145404577,356,2.7419781685,1150,-1.0000000000 +357,0,0.4524665475,357,3.2188079357,1151,-1.0000000000 +358,0,0.3541513085,358,4.3514347076,1152,-1.0000000000 +359,0,0.2111083865,359,6.3587808609,1153,-1.0000000000 +360,0,0.1307028979,360,10.0998725891,1154,-1.0000000000 +361,0,0.0321570523,361,21.4319057465,1155,-1.0000000000 +362,0,0.0006438673,362,31.6147212982,1156,-1.0000000000 +363,0,0.0009358423,363,31.6227760315,1157,-1.0000000000 +364,0,0.0002634405,364,31.6227760315,1158,-1.0000000000 +365,0,0.0010150694,365,31.6227722168,1159,-1.0000000000 +366,0,0.0004529505,366,31.6223411560,1160,-1.0000000000 +367,0,0.0137116825,367,27.4318256378,1161,-1.0000000000 +368,0,0.1160466224,368,10.0018968582,1162,-1.0000000000 +369,0,0.2345420271,369,5.8403391838,1163,-1.0000000000 +370,0,0.3708416522,370,3.8688480854,1164,-1.0000000000 +371,0,0.5300990939,371,2.9528651237,1165,-1.0000000000 +372,0,0.6892153025,372,2.5064487457,1166,-1.0000000000 +373,0,0.8098425865,373,2.3663296700,1167,-1.0000000000 +374,0,0.8341104388,374,2.3519144058,1168,-1.0000000000 +375,0,0.8101239204,375,2.4575023651,1169,-1.0000000000 +376,0,0.7889069915,376,2.4505796432,1170,-1.0000000000 +377,0,0.8793845773,377,2.4021737576,1171,-1.0000000000 +378,0,1.0059598684,378,2.3136579990,1172,-1.0000000000 +379,0,1.1230267286,379,2.2888503075,1173,-1.0000000000 +380,0,1.1797831059,380,2.3769843578,1174,-1.0000000000 +381,0,1.1613332033,381,2.4126398563,1175,-1.0000000000 +382,0,0.9623417258,382,2.2927162647,1176,-1.0000000000 +383,0,0.7934286594,383,2.4647991657,1177,-1.0000000000 +384,0,0.5926273465,384,2.7928922176,1178,-1.0000000000 +385,0,0.4492661655,385,3.2474975586,1179,-1.0000000000 +386,0,0.3443657458,386,4.2985219955,1180,-1.0000000000 +387,0,0.2314104587,387,5.9285354614,1181,-1.0000000000 +388,0,0.1472378820,388,9.3181419373,1182,-1.0000000000 +389,0,0.0351320319,389,20.6197624207,1183,-1.0000000000 +390,0,0.0014228243,390,31.5211696625,1184,-1.0000000000 +391,0,0.0008443597,391,31.6227760315,1185,-1.0000000000 +392,0,0.0099181151,392,29.6695613861,1186,-1.0000000000 +393,0,0.0006278105,393,31.6227760315,1187,-1.0000000000 +394,0,0.0003538693,394,31.6227512360,1188,-1.0000000000 +395,0,0.0145763783,395,27.5814151764,1189,-1.0000000000 +396,0,0.1199709773,396,10.8346366882,1190,-1.0000000000 +397,0,0.2440324277,397,5.7197704315,1191,-1.0000000000 +398,0,0.3900867701,398,3.5687365532,1192,-1.0000000000 +399,0,0.5461060405,399,2.8410024643,1193,-1.0000000000 +400,0,0.6898619533,400,2.5129566193,1194,-1.0000000000 +401,0,0.7780957818,401,2.4161820412,1195,-1.0000000000 +402,0,0.8212936521,402,2.4362788200,1196,-1.0000000000 +403,0,0.8196046352,403,2.4716432095,1197,-1.0000000000 +404,0,0.8615708947,404,2.4565105438,1198,-1.0000000000 +405,0,1.0007439852,405,2.3347504139,1199,-1.0000000000 +406,0,1.1029356718,406,2.2086555958,1200,-1.0000000000 +407,0,1.2631444931,407,2.3114092350,1201,-1.0000000000 +408,0,1.2674189806,408,2.3837871552,1202,-1.0000000000 +409,0,1.1696907282,409,2.3068034649,1203,-1.0000000000 +410,0,1.0013144016,410,2.2855141163,1204,-1.0000000000 +411,0,0.7892069817,411,2.4214391708,1205,-1.0000000000 +412,0,0.6106898189,412,2.7888779640,1206,-1.0000000000 +413,0,0.4649244547,413,3.2812552452,1207,-1.0000000000 +414,0,0.3470404446,414,4.0626425743,1208,-1.0000000000 +415,0,0.2548494935,415,5.3905172348,1209,-1.0000000000 +416,0,0.1753427535,416,7.4863877296,1210,-1.0000000000 +417,0,0.0696761087,417,15.3962125778,1211,-1.0000000000 +418,0,0.0011654531,418,31.4477596283,1212,-1.0000000000 +419,0,0.0005153015,419,31.6227760315,1213,-1.0000000000 +420,0,0.0022581830,420,31.3947219849,1214,-1.0000000000 +421,0,-0.0005039608,421,31.6227760315,1215,-1.0000000000 +422,0,0.0006990994,422,31.6138477325,1216,-1.0000000000 +423,0,0.0477251969,423,22.0904197693,1217,-1.0000000000 +424,0,0.1369994134,424,9.3862142563,1218,-1.0000000000 +425,0,0.2709477246,425,5.0977196693,1219,-1.0000000000 +426,0,0.4073841870,426,3.4829053879,1220,-1.0000000000 +427,0,0.5448542237,427,2.8721144199,1221,-1.0000000000 +428,0,0.6622777581,428,2.5826773643,1222,-1.0000000000 +429,0,0.7555070519,429,2.4061858654,1223,-1.0000000000 +430,0,0.8002126217,430,2.4329354763,1224,-1.0000000000 +431,0,0.8153559566,431,2.3994085789,1225,-1.0000000000 +432,0,0.8970652223,432,2.3870296478,1226,-1.0000000000 +433,0,1.0205209255,433,2.2956838608,1227,-1.0000000000 +434,0,1.1738963127,434,2.2933826447,1228,-1.0000000000 +435,0,1.2575677633,435,2.3463256359,1229,-1.0000000000 +436,0,1.2230237722,436,2.3524501324,1230,-1.0000000000 +437,0,1.1259639263,437,2.2667458057,1231,-1.0000000000 +438,0,0.9997518659,438,2.2932496071,1232,-1.0000000000 +439,0,0.7922306657,439,2.4435393810,1233,-1.0000000000 +440,0,0.6165519357,440,2.7788236141,1234,-1.0000000000 +441,0,0.4822996259,441,3.1403548717,1235,-1.0000000000 +442,0,0.3766285479,442,3.7291548252,1236,-1.0000000000 +443,0,0.2857866883,443,4.6315340996,1237,-1.0000000000 +444,0,0.1797532737,444,6.7200350761,1238,-1.0000000000 +445,0,0.0752173588,445,14.3447551727,1239,-1.0000000000 +446,0,0.0005639646,446,31.2004222870,1240,-1.0000000000 +447,0,-0.0001979070,447,31.6074485779,1241,-1.0000000000 +448,0,-0.0003395307,448,31.6227760315,1242,-1.0000000000 +449,0,-0.0001639747,449,31.6227760315,1243,-1.0000000000 +450,0,0.0036350526,450,30.9096469879,1244,-1.0000000000 +451,0,0.0473100618,451,20.2599525452,1245,-1.0000000000 +452,0,0.1546910107,452,8.4040956497,1246,-1.0000000000 +453,0,0.2969757318,453,4.8829870224,1247,-1.0000000000 +454,0,0.4089812934,454,3.4783515930,1248,-1.0000000000 +455,0,0.5411127210,455,2.9201178551,1249,-1.0000000000 +456,0,0.6237353086,456,2.6100988388,1250,-1.0000000000 +457,0,0.7418503165,457,2.4577949047,1251,-1.0000000000 +458,0,0.7519995570,458,2.4328489304,1252,-1.0000000000 +459,0,0.8003866076,459,2.4379255772,1253,-1.0000000000 +460,0,0.8349192142,460,2.3691625595,1254,-1.0000000000 +461,0,0.9357497692,461,2.3182308674,1255,-1.0000000000 +462,0,1.0823613405,462,2.3047502041,1256,-1.0000000000 +463,0,1.1418485641,463,2.3236503601,1257,-1.0000000000 +464,0,1.1479303837,464,2.3056936264,1258,-1.0000000000 +465,0,1.0592665672,465,2.3006165028,1259,-1.0000000000 +466,0,0.9168865085,466,2.3271152973,1260,-1.0000000000 +467,0,0.7404270768,467,2.4720604420,1261,-1.0000000000 +468,0,0.6123292446,468,2.7189273834,1262,-1.0000000000 +469,0,0.4894371331,469,3.0747077465,1263,-1.0000000000 +470,0,0.3859493136,470,3.6469478607,1264,-1.0000000000 +471,0,0.2822641730,471,4.7010302544,1265,-1.0000000000 +472,0,0.1787402332,472,7.5456037521,1266,-1.0000000000 +473,0,0.0621588230,473,16.5414638519,1267,-1.0000000000 +474,0,0.0011913897,474,31.1215934753,1268,-1.0000000000 +475,0,-0.0002103663,475,31.4152126312,1269,-1.0000000000 +476,0,0.0003792991,476,31.6227760315,1270,-1.0000000000 +477,0,0.0001732394,477,31.4972496033,1271,-1.0000000000 +478,0,0.0046014036,478,30.8621158600,1272,-1.0000000000 +479,0,0.0576600619,479,19.4848232269,1273,-1.0000000000 +480,0,0.1628940701,480,7.7923212051,1274,-1.0000000000 +481,0,0.2965573668,481,4.9645648003,1275,-1.0000000000 +482,0,0.4250472188,482,3.4230914116,1276,-1.0000000000 +483,0,0.5318685770,483,2.9077155590,1277,-1.0000000000 +484,0,0.6013643146,484,2.6383554935,1278,-1.0000000000 +485,0,0.6761335135,485,2.5247249603,1279,-1.0000000000 +486,0,0.7152107358,486,2.5478014946,1280,-1.0000000000 +487,0,0.7259470820,487,2.4765470028,1281,-1.0000000000 +488,0,0.7759909034,488,2.4189951420,1282,-1.0000000000 +489,0,0.8643364310,489,2.3606874943,1283,-1.0000000000 +490,0,0.9827626348,490,2.2951855659,1284,-1.0000000000 +491,0,1.0664774179,491,2.2927172184,1285,-1.0000000000 +492,0,1.0456911325,492,2.2863845825,1286,-1.0000000000 +493,0,0.9820244312,493,2.3256044388,1287,-1.0000000000 +494,0,0.8542780876,494,2.3467662334,1288,-1.0000000000 +495,0,0.7340826988,495,2.5039217472,1289,-1.0000000000 +496,0,0.5968572497,496,2.7374470234,1290,-1.0000000000 +497,0,0.4873765409,497,3.0340442657,1291,-1.0000000000 +498,0,0.3672321439,498,3.8976264000,1292,-1.0000000000 +499,0,0.2460707277,499,5.2589669228,1293,-1.0000000000 +500,0,0.1587331593,500,8.3845701218,1294,-1.0000000000 +501,0,0.0695172399,501,15.4914751053,1295,-1.0000000000 +502,0,0.0014563977,502,31.0409355164,1296,-1.0000000000 +503,0,-0.0004635351,503,31.6086044312,1297,-1.0000000000 +504,0,0.0006251551,504,31.6227684021,1298,-1.0000000000 +505,0,0.0001793502,505,31.3493156433,1299,-1.0000000000 +506,0,0.0272259805,506,26.2832393646,1300,-1.0000000000 +507,0,0.0631093308,507,16.6588172913,1301,-1.0000000000 +508,0,0.1657525301,508,7.3287153244,1302,-1.0000000000 +509,0,0.2855381370,509,5.0466980934,1303,-1.0000000000 +510,0,0.4234611988,510,3.3581931591,1304,-1.0000000000 +511,0,0.5355196595,511,2.9099872112,1305,-1.0000000000 +512,0,0.5872064233,512,2.7330672741,1306,-1.0000000000 +513,0,0.6371801496,513,2.5911569595,1307,-1.0000000000 +514,0,0.7026461959,514,2.5588054657,1308,-1.0000000000 +515,0,0.7171602249,515,2.4488122463,1309,-1.0000000000 +516,0,0.7390315533,516,2.4854843616,1310,-1.0000000000 +517,0,0.8491621017,517,2.3858935833,1311,-1.0000000000 +518,0,0.9590334296,518,2.3105680943,1312,-1.0000000000 +519,0,1.0337742567,519,2.3163540363,1313,-1.0000000000 +520,0,1.0172015429,520,2.3164091110,1314,-1.0000000000 +521,0,0.9606239796,521,2.3229632378,1315,-1.0000000000 +522,0,0.8654842377,522,2.3833553791,1316,-1.0000000000 +523,0,0.7076365352,523,2.4972376823,1317,-1.0000000000 +524,0,0.5839534402,524,2.7767996788,1318,-1.0000000000 +525,0,0.4629037380,525,3.2973482609,1319,-1.0000000000 +526,0,0.3223178983,526,4.1649656296,1320,-1.0000000000 +527,0,0.2451560944,527,5.5368881226,1321,-1.0000000000 +528,0,0.1502188295,528,8.9174118042,1322,-1.0000000000 +529,0,0.0671202466,529,16.8515014648,1323,-1.0000000000 +530,0,0.0168995671,530,27.8533496857,1324,-1.0000000000 +531,0,0.0027108516,531,30.7577781677,1325,-1.0000000000 +532,0,-0.0004748474,532,31.6227760315,1326,-1.0000000000 +533,0,0.0000889081,533,31.4278774261,1327,-1.0000000000 +534,0,0.0426550955,534,18.8880081177,1328,-1.0000000000 +535,0,0.0897340700,535,14.2352895737,1329,-1.0000000000 +536,0,0.1835324466,536,6.9632315636,1330,-1.0000000000 +537,0,0.2979731560,537,4.7712202072,1331,-1.0000000000 +538,0,0.4157102704,538,3.4161942005,1332,-1.0000000000 +539,0,0.5524196029,539,2.9093339443,1333,-1.0000000000 +540,0,0.6347330213,540,2.6985633373,1334,-1.0000000000 +541,0,0.6873387098,541,2.5735416412,1335,-1.0000000000 +542,0,0.7337716818,542,2.5132219791,1336,-1.0000000000 +543,0,0.7439809442,543,2.4510378838,1337,-1.0000000000 +544,0,0.8024758697,544,2.4043424129,1338,-1.0000000000 +545,0,0.9168453813,545,2.3399312496,1339,-1.0000000000 +546,0,1.0280338526,546,2.3012630939,1340,-1.0000000000 +547,0,1.0949355364,547,2.3466596603,1341,-1.0000000000 +548,0,1.0854176283,548,2.3466114998,1342,-1.0000000000 +549,0,0.9963572621,549,2.3077476025,1343,-1.0000000000 +550,0,0.8625664115,550,2.3717453480,1344,-1.0000000000 +551,0,0.6984025836,551,2.5627849102,1345,-1.0000000000 +552,0,0.5655143857,552,2.8067283630,1346,-1.0000000000 +553,0,0.4338583946,553,3.3975961208,1347,-1.0000000000 +554,0,0.3148156703,554,4.4280271530,1348,-1.0000000000 +555,0,0.2177419066,555,6.1449913979,1349,-1.0000000000 +556,0,0.1394918263,556,9.3737068176,1350,-1.0000000000 +557,0,0.0666871071,557,15.0768060684,1351,-1.0000000000 +558,0,0.0241600294,558,21.9253787994,1352,-1.0000000000 +559,0,0.0023356657,559,31.0733852386,1353,-1.0000000000 +560,0,0.0005278823,560,31.6227760315,1354,-1.0000000000 +561,0,0.0003284318,561,31.6154689789,1355,-1.0000000000 +562,0,0.0723905489,562,16.1907138824,1356,-1.0000000000 +563,0,0.1137683168,563,10.0528793335,1357,-1.0000000000 +564,0,0.1933699250,564,6.3731698990,1358,-1.0000000000 +565,0,0.2978318036,565,4.5994777679,1359,-1.0000000000 +566,0,0.4207669199,566,3.4823834896,1360,-1.0000000000 +567,0,0.5616418719,567,2.8318614960,1361,-1.0000000000 +568,0,0.6912870407,568,2.5435352325,1362,-1.0000000000 +569,0,0.7708287239,569,2.4794592857,1363,-1.0000000000 +570,0,0.8215371370,570,2.4028928280,1364,-1.0000000000 +571,0,0.8826347589,571,2.3621711731,1365,-1.0000000000 +572,0,0.9627836943,572,2.3196456432,1366,-1.0000000000 +573,0,1.1106199026,573,2.3130993843,1367,-1.0000000000 +574,0,1.2246385813,574,2.3607060909,1368,-1.0000000000 +575,0,1.2177535295,575,2.3455936909,1369,-1.0000000000 +576,0,1.1265897751,576,2.3350877762,1370,-1.0000000000 +577,0,1.0035156012,577,2.3239722252,1371,-1.0000000000 +578,0,0.8064009547,578,2.4052209854,1372,-1.0000000000 +579,0,0.6292597055,579,2.6512899399,1373,-1.0000000000 +580,0,0.4997098446,580,3.0128855705,1374,-1.0000000000 +581,0,0.3879833221,581,3.6579921246,1375,-1.0000000000 +582,0,0.2890135050,582,4.8065571785,1376,-1.0000000000 +583,0,0.1925205886,583,7.4596571922,1377,-1.0000000000 +584,0,0.1238536388,584,11.0189476013,1378,-1.0000000000 +585,0,0.0504309833,585,19.6995429993,1379,-1.0000000000 +586,0,0.0241918098,586,29.3324947357,1380,-1.0000000000 +587,0,0.0003931704,587,31.6227760315,1381,-1.0000000000 +588,0,0.0000209329,588,31.6227760315,1382,-1.0000000000 +589,0,-0.0001734847,589,31.6227760315,1383,-1.0000000000 +590,0,0.0607455708,590,14.3712387085,1384,-1.0000000000 +591,0,0.1017537937,591,11.4408884048,1385,-1.0000000000 +592,0,0.1845139414,592,7.3711776733,1386,-1.0000000000 +593,0,0.2864980102,593,4.6154351234,1387,-1.0000000000 +594,0,0.4105657041,594,3.3562819958,1388,-1.0000000000 +595,0,0.5539539456,595,2.8899328709,1389,-1.0000000000 +596,0,0.6790744066,596,2.5217244625,1390,-1.0000000000 +597,0,0.8194868565,597,2.3978948593,1391,-1.0000000000 +598,0,0.9098239541,598,2.3392369747,1392,-1.0000000000 +599,0,1.0223187208,599,2.2961740494,1393,-1.0000000000 +600,0,1.1595125198,600,2.3070757389,1394,-1.0000000000 +601,0,1.3060013056,601,2.3680303097,1395,-1.0000000000 +602,0,1.3420419693,602,2.3928475380,1396,-1.0000000000 +603,0,1.2148033381,603,2.3111648560,1397,-1.0000000000 +604,0,1.0699449778,604,2.3505551815,1398,-1.0000000000 +605,0,0.8734347224,605,2.3596315384,1399,-1.0000000000 +606,0,0.7014126182,606,2.5934374332,1400,-1.0000000000 +607,0,0.5386259556,607,3.0620768070,1401,-1.0000000000 +608,0,0.4120286405,608,3.6871492863,1402,-1.0000000000 +609,0,0.3218664825,609,4.3526191711,1403,-1.0000000000 +610,0,0.2504507601,610,5.4890518188,1404,-1.0000000000 +611,0,0.1661561131,611,7.5762300491,1405,-1.0000000000 +612,0,0.1281819940,612,9.1167297363,1406,-1.0000000000 +613,0,0.0845847353,613,12.5985088348,1407,-1.0000000000 +614,0,0.0390512794,614,22.3714408875,1408,-1.0000000000 +615,0,-0.0009076580,615,31.6227760315,1409,-1.0000000000 +616,0,0.0006949858,616,31.6227760315,1410,-1.0000000000 +617,0,-0.0002807755,617,31.6227760315,1411,-1.0000000000 +618,0,0.0402883030,618,21.7810173035,1412,-1.0000000000 +619,0,0.0869438499,619,13.5456027985,1413,-1.0000000000 +620,0,0.1526628584,620,8.6529712677,1414,-1.0000000000 +621,0,0.2470432669,621,5.2813711166,1415,-1.0000000000 +622,0,0.3586099148,622,3.9963319302,1416,-1.0000000000 +623,0,0.4875319004,623,3.1646375656,1417,-1.0000000000 +624,0,0.6175509095,624,2.6909687519,1418,-1.0000000000 +625,0,0.7506234050,625,2.4454865456,1419,-1.0000000000 +626,0,0.8995615244,626,2.3818230629,1420,-1.0000000000 +627,0,1.0349189043,627,2.3495621681,1421,-1.0000000000 +628,0,1.1513767242,628,2.3277025223,1422,-1.0000000000 +629,0,1.1925117970,629,2.3252859116,1423,-1.0000000000 +630,0,1.1708381176,630,2.3266208172,1424,-1.0000000000 +631,0,1.0055685043,631,2.2985715866,1425,-1.0000000000 +632,0,0.8375660777,632,2.3881287575,1426,-1.0000000000 +633,0,0.6791220307,633,2.5529067516,1427,-1.0000000000 +634,0,0.5486404896,634,3.0046038628,1428,-1.0000000000 +635,0,0.4031040370,635,3.6131353378,1429,-1.0000000000 +636,0,0.3038705885,636,4.2178559303,1430,-1.0000000000 +637,0,0.2524210811,637,5.2704262733,1431,-1.0000000000 +638,0,0.1901981086,638,7.2279939651,1432,-1.0000000000 +639,0,0.1363730580,639,9.2050275803,1433,-1.0000000000 +640,0,0.1073145792,640,11.0745315552,1434,-1.0000000000 +641,0,0.0684229210,641,17.0656967163,1435,-1.0000000000 +642,0,-0.0006744663,642,31.4324455261,1436,-1.0000000000 +643,0,0.0000577544,643,31.6227760315,1437,-1.0000000000 +644,0,0.0001570900,644,31.6227760315,1438,-1.0000000000 +645,0,0.0002731264,645,31.6227760315,1439,-1.0000000000 +646,0,0.0038284403,646,31.5273246765,1440,-1.0000000000 +647,0,0.0601321943,647,24.6100997925,1441,-1.0000000000 +648,0,0.1270000190,648,11.2679891586,1442,-1.0000000000 +649,0,0.1785868257,649,7.4269938469,1443,-1.0000000000 +650,0,0.2439755499,650,5.7582297325,1444,-1.0000000000 +651,0,0.3590478301,651,4.2548680305,1445,-1.0000000000 +652,0,0.4855530262,652,3.1840777397,1446,-1.0000000000 +653,0,0.6170494556,653,2.7186973095,1447,-1.0000000000 +654,0,0.7311881781,654,2.4960284233,1448,-1.0000000000 +655,0,0.8497233391,655,2.3866577148,1449,-1.0000000000 +656,0,0.8977967501,656,2.2938549519,1450,-1.0000000000 +657,0,0.9207286835,657,2.3358664513,1451,-1.0000000000 +658,0,0.8413833380,658,2.4213399887,1452,-1.0000000000 +659,0,0.7170580626,659,2.5448734760,1453,-1.0000000000 +660,0,0.5938371420,660,2.7929685116,1454,-1.0000000000 +661,0,0.5012392998,661,3.1163673401,1455,-1.0000000000 +662,0,0.3831444383,662,3.5627930164,1456,-1.0000000000 +663,0,0.2952043712,663,4.7107014656,1457,-1.0000000000 +664,0,0.2229586542,664,6.1396217346,1458,-1.0000000000 +665,0,0.1698745340,665,8.3822546005,1459,-1.0000000000 +666,0,0.1272457540,666,10.6636753082,1460,-1.0000000000 +667,0,0.0948237330,667,12.6990413666,1461,-1.0000000000 +668,0,0.0626095906,668,16.9660911560,1462,-1.0000000000 +669,0,0.0318746492,669,21.1093711853,1463,-1.0000000000 +670,0,-0.0004596915,670,31.6104564667,1464,-1.0000000000 +671,0,-0.0003297509,671,31.6227760315,1465,-1.0000000000 +672,0,0.0000154043,672,31.6227760315,1466,-1.0000000000 +673,0,-0.0001096721,673,31.6227760315,1467,-1.0000000000 +674,0,0.0178631432,674,29.5287456512,1468,-1.0000000000 +675,0,0.0546890534,675,16.1463527679,1469,-1.0000000000 +676,0,0.0868572965,676,12.2466621399,1470,-1.0000000000 +677,0,0.1117715240,677,10.5556993484,1471,-1.0000000000 +678,0,0.1618072391,678,8.4793176651,1472,-1.0000000000 +679,0,0.2181115299,679,6.4094319344,1473,-1.0000000000 +680,0,0.3212501407,680,4.3094873428,1474,-1.0000000000 +681,0,0.4112867415,681,3.4613811970,1475,-1.0000000000 +682,0,0.5046284795,682,3.0084741116,1476,-1.0000000000 +683,0,0.5720140934,683,2.7893841267,1477,-1.0000000000 +684,0,0.5922526121,684,2.7598524094,1478,-1.0000000000 +685,0,0.5841865540,685,2.8037195206,1479,-1.0000000000 +686,0,0.5365922451,686,3.0683386326,1480,-1.0000000000 +687,0,0.4612809718,687,3.3554875851,1481,-1.0000000000 +688,0,0.3670029640,688,3.9444963932,1482,-1.0000000000 +689,0,0.3295761645,689,4.3042774200,1483,-1.0000000000 +690,0,0.2607125342,690,5.3240251541,1484,-1.0000000000 +691,0,0.1775101870,691,7.7890319824,1485,-1.0000000000 +692,0,0.1102388427,692,12.0671710968,1486,-1.0000000000 +693,0,0.0604847036,693,18.2411289215,1487,-1.0000000000 +694,0,0.0366388559,694,21.5846443176,1488,-1.0000000000 +695,0,0.0300995968,695,25.3701477051,1489,-1.0000000000 +696,0,0.0216256510,696,27.5726089478,1490,-1.0000000000 +697,0,0.0095130559,697,30.6409358978,1491,-1.0000000000 +698,0,-0.0004731133,698,31.6227760315,1492,-1.0000000000 +699,0,0.0004173194,699,31.6227760315,1493,-1.0000000000 +700,0,0.0000373051,700,31.6227760315,1494,-1.0000000000 +701,0,0.0001317095,701,31.6227760315,1495,-1.0000000000 +702,0,0.0008505006,702,31.6226882935,1496,-1.0000000000 +703,0,-0.0003478700,703,31.6172637939,1497,-1.0000000000 +704,0,0.0189459547,704,23.7632350922,1498,-1.0000000000 +705,0,0.0240347050,705,25.5765171051,1499,-1.0000000000 +706,0,0.0671423450,706,20.8565483093,1500,-1.0000000000 +707,0,0.1300252825,707,10.1886911392,1501,-1.0000000000 +708,0,0.1885967255,708,6.9609127045,1502,-1.0000000000 +709,0,0.2572585344,709,5.1757941246,1503,-1.0000000000 +710,0,0.2850341201,710,4.6739964485,1504,-1.0000000000 +711,0,0.2925059199,711,4.6598939896,1505,-1.0000000000 +712,0,0.2976753414,712,4.3765192032,1506,-1.0000000000 +713,0,0.3117159903,713,4.3831186295,1507,-1.0000000000 +714,0,0.2751280963,714,4.9206175804,1508,-1.0000000000 +715,0,0.2536923289,715,5.5485920906,1509,-1.0000000000 +716,0,0.2220572233,716,5.7631196976,1510,-1.0000000000 +717,0,0.2168289870,717,5.8250527382,1511,-1.0000000000 +718,0,0.1724179536,718,7.2118659019,1512,-1.0000000000 +719,0,0.0910157040,719,12.4245290756,1513,-1.0000000000 +720,0,0.0563279390,720,17.5090179443,1514,-1.0000000000 +721,0,0.0309663750,721,21.6350479126,1515,-1.0000000000 +722,0,0.0123580080,722,26.7846317291,1516,-1.0000000000 +723,0,0.0015036017,723,31.4724483490,1517,-1.0000000000 +724,0,0.0008548850,724,31.6225376129,1518,-1.0000000000 +725,0,0.0006256067,725,31.6227760315,1519,-1.0000000000 +726,0,0.0002573585,726,31.6227760315,1520,-1.0000000000 +727,0,0.0000280884,727,31.6227760315,1521,-1.0000000000 +728,0,-0.0000565607,728,31.6227760315,1522,-1.0000000000 +729,0,0.0003511363,729,31.6227760315,1523,-1.0000000000 +730,0,-0.0001680269,730,31.6227760315,1524,-1.0000000000 +731,0,0.0000254372,731,31.6227760315,1525,-1.0000000000 +732,0,0.0008010912,732,31.6227760315,1526,-1.0000000000 +733,0,0.0012664478,733,31.4162387848,1527,-1.0000000000 +734,0,0.0087214625,734,28.7205638885,1528,-1.0000000000 +735,0,0.0626093596,735,19.5268421173,1529,-1.0000000000 +736,0,0.0923844799,736,11.2921705246,1530,-1.0000000000 +737,0,0.1464712471,737,9.9134054184,1531,-1.0000000000 +738,0,0.1504246145,738,8.1084785461,1532,-1.0000000000 +739,0,0.1739578098,739,7.7448530197,1533,-1.0000000000 +740,0,0.1997769475,740,6.6165623665,1534,-1.0000000000 +741,0,0.2006624788,741,6.4281668663,1535,-1.0000000000 +742,0,0.1754072160,742,6.9995551109,1536,-1.0000000000 +743,0,0.1449064016,743,9.2301797867,1537,-1.0000000000 +744,0,0.1363533288,744,9.0806503296,1538,-1.0000000000 +745,0,0.1309172958,745,8.9661102295,1539,-1.0000000000 +746,0,0.1192817390,746,10.3375415802,1540,-1.0000000000 +747,0,0.0636332557,747,14.1783494949,1541,-1.0000000000 +748,0,0.0384967402,748,22.9521389008,1542,-1.0000000000 +749,0,0.0151172429,749,28.6417751312,1543,-1.0000000000 +750,0,0.0002644823,750,31.6227531433,1544,-1.0000000000 +751,0,0.0001388959,751,31.6227760315,1545,-1.0000000000 +752,0,-0.0000449004,752,31.6227760315,1546,-1.0000000000 +753,0,-0.0001319500,753,31.6227760315,1547,-1.0000000000 +754,0,0.0001573211,754,31.6227760315,1548,-1.0000000000 +755,0,-0.0002211487,755,31.6227760315,1549,-1.0000000000 +756,0,0.0003631258,756,31.6227760315,1550,-1.0000000000 +757,0,-0.0004803424,757,31.6227760315,1551,-1.0000000000 +758,0,0.0002229759,758,31.6227760315,1552,-1.0000000000 +759,0,0.0001782212,759,31.6227760315,1553,-1.0000000000 +760,0,-0.0005359335,760,31.6227760315,1554,-1.0000000000 +761,0,0.0002537031,761,31.6227760315,1555,-1.0000000000 +762,0,0.0070610512,762,28.9331836700,1556,-1.0000000000 +763,0,0.0071148821,763,29.6497535706,1557,-1.0000000000 +764,0,0.0041782572,764,30.8653697968,1558,-1.0000000000 +765,0,0.0462772399,765,21.3133430481,1559,-1.0000000000 +766,0,0.0544400029,766,16.0949192047,1560,-1.0000000000 +767,0,0.0392944776,767,18.0789394379,1561,-1.0000000000 +768,0,0.0200691894,768,29.0664215088,1562,-1.0000000000 +769,0,0.0608186498,769,16.4322891235,1563,-1.0000000000 +770,0,0.0768310428,770,12.8409261703,1564,-1.0000000000 +771,0,0.0623596348,771,16.9758491516,1565,-1.0000000000 +772,0,0.0616865344,772,16.0248012543,1566,-1.0000000000 +773,0,0.0621746406,773,15.3318328857,1567,-1.0000000000 +774,0,0.0373334214,774,23.6103172302,1568,-1.0000000000 +775,0,0.0014662633,775,31.2061862946,1569,-1.0000000000 +776,0,0.0005060213,776,31.5637264252,1570,-1.0000000000 +777,0,-0.0001282875,777,31.6227760315,1571,-1.0000000000 +778,0,-0.0000724052,778,31.6227760315,1572,-1.0000000000 +779,0,-0.0003652821,779,31.6227760315,1573,-1.0000000000 +780,0,0.0004401279,780,31.6227760315,1574,-1.0000000000 +781,0,-0.0000989889,781,31.6227760315,1575,-1.0000000000 +782,0,-0.0000036841,782,31.6227760315,1576,-1.0000000000 +783,0,0.0003134308,783,31.6227760315,1577,-1.0000000000 +784,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,1.0000000000,835,-1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,1.0000000000,871,-1.0000000000,872,1.0000000000,873,1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,-1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,1.0000000000,973,-1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,-1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1578,-1.0000000000 +785,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,1.0000000000,835,-1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,-1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,-1.0000000000,978,1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1579,-1.0000000000 +786,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,-1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,1.0000000000,953,-1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1580,-1.0000000000 +787,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,-1.0000000000,843,1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,-1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,-1.0000000000,982,1.0000000000,983,-1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,-1.0000000000,1063,1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1581,-1.0000000000 +788,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,-1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,-1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,1.0000000000,868,-1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,1.0000000000,949,-1.0000000000,950,-1.0000000000,951,1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,-1.0000000000,981,-1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,-1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,-1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1582,-1.0000000000 +789,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1583,-1.0000000000 +790,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,-1.0000000000,862,1.0000000000,863,-1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1584,-1.0000000000 +791,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,-1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1585,-1.0000000000 +792,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,-1.0000000000,978,-1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,-1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,-1.0000000000,1567,1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1586,-1.0000000000 +793,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,-1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,-1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,-1.0000000000,972,1.0000000000,973,1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,-1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1587,-1.0000000000 +794,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,-1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1588,-1.0000000000 +795,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,1.0000000000,846,-1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,1.0000000000,859,-1.0000000000,860,1.0000000000,861,1.0000000000,862,-1.0000000000,863,1.0000000000,864,-1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,-1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,-1.0000000000,1589,-1.0000000000 +796,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,-1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,-1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1590,-1.0000000000 +797,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,1.0000000000,854,1.0000000000,855,1.0000000000,856,-1.0000000000,857,1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,-1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,-1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,-1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1591,-1.0000000000 +798,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,-1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,1.0000000000,888,-1.0000000000,889,1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,1.0000000000,896,-1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,-1.0000000000,907,-1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,-1.0000000000,933,1.0000000000,934,1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,1.0000000000,947,-1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,-1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,-1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1592,-1.0000000000 +799,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,-1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,-1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,1.0000000000,947,-1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1593,-1.0000000000 +800,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,-1.0000000000,1594,-1.0000000000 +801,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,1.0000000000,939,-1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,1.0000000000,981,-1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1595,-1.0000000000 +802,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1596,-1.0000000000 +803,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,-1.0000000000,972,1.0000000000,973,1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,1.0000000000,981,-1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,-1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,-1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,-1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1597,-1.0000000000 +804,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,-1.0000000000,862,-1.0000000000,863,1.0000000000,864,1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,-1.0000000000,888,1.0000000000,889,-1.0000000000,890,1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,-1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1598,-1.0000000000 +805,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,-1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,-1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,-1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,-1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1599,-1.0000000000 +806,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,-1.0000000000,913,-1.0000000000,914,1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1600,-1.0000000000 +807,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,-1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,-1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1601,-1.0000000000 +808,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,-1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1602,-1.0000000000 +809,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,1.0000000000,820,1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,-1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,1.0000000000,868,1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,-1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,1.0000000000,984,1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1603,-1.0000000000 +810,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,-1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1604,-1.0000000000 +811,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,-1.0000000000,940,1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,-1.0000000000,991,1.0000000000,992,-1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1605,-1.0000000000 +812,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,-1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,1.0000000000,979,-1.0000000000,980,1.0000000000,981,-1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,-1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,-1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,-1.0000000000,1606,-1.0000000000 +813,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,-1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1607,-1.0000000000 +814,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,-1.0000000000,840,1.0000000000,841,-1.0000000000,842,1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,-1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1608,-1.0000000000 +815,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,-1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,1.0000000000,868,1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,-1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1609,-1.0000000000 +816,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1610,-1.0000000000 +817,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,1.0000000000,939,1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,1.0000000000,971,-1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1611,-1.0000000000 +818,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1612,-1.0000000000 +819,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,-1.0000000000,867,1.0000000000,868,-1.0000000000,869,1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,1.0000000000,891,1.0000000000,892,-1.0000000000,893,-1.0000000000,894,1.0000000000,895,-1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,-1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1613,-1.0000000000 +820,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1614,-1.0000000000 +821,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,-1.0000000000,870,-1.0000000000,871,1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,-1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,-1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1615,-1.0000000000 +822,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,1.0000000000,864,1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,-1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1616,-1.0000000000 +823,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,-1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,-1.0000000000,862,1.0000000000,863,-1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,1.0000000000,895,-1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,1.0000000000,902,-1.0000000000,903,1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,-1.0000000000,928,-1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1617,-1.0000000000 +824,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,-1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,-1.0000000000,901,1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,1.0000000000,922,-1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,-1.0000000000,1618,-1.0000000000 +825,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,-1.0000000000,979,1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1619,-1.0000000000 +826,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,-1.0000000000,803,1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,-1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,-1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,-1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,1.0000000000,891,-1.0000000000,892,1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,-1.0000000000,970,1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,1.0000000000,987,-1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,-1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1620,-1.0000000000 +827,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,-1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,-1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1621,-1.0000000000 +828,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,-1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1622,-1.0000000000 +829,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,1.0000000000,844,1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,-1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,1.0000000000,891,-1.0000000000,892,1.0000000000,893,1.0000000000,894,-1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1623,-1.0000000000 +830,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,-1.0000000000,851,-1.0000000000,852,1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,1.0000000000,861,-1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,-1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,1.0000000000,968,1.0000000000,969,-1.0000000000,970,1.0000000000,971,1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,1.0000000000,992,-1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1624,-1.0000000000 +831,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,-1.0000000000,986,1.0000000000,987,-1.0000000000,988,1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,-1.0000000000,1093,1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1625,-1.0000000000 +832,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,-1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,1.0000000000,833,-1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,-1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,-1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1626,-1.0000000000 +833,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,-1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,-1.0000000000,852,1.0000000000,853,1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,-1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,1.0000000000,971,1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1627,-1.0000000000 +834,0,0.8421083689,1578,0.0235017370,1628,-1.0000000000 +835,0,-0.2846569419,1579,0.0261672977,1629,-1.0000000000 +836,0,-0.6479381323,1580,0.0223037712,1630,-1.0000000000 +837,0,0.3773280084,1581,0.0231465548,1631,-1.0000000000 +838,0,-1.0555180311,1582,0.0243742540,1632,-1.0000000000 +839,0,0.7876127958,1583,0.0225345884,1633,-1.0000000000 +840,0,-0.9667378664,1584,0.0249240641,1634,-1.0000000000 +841,0,-0.7313812971,1585,0.0240810122,1635,-1.0000000000 +842,0,0.7189067602,1586,0.0228495728,1636,-1.0000000000 +843,0,0.7211230993,1587,0.0222876444,1637,-1.0000000000 +844,0,-0.9235455990,1588,0.0243723150,1638,-1.0000000000 +845,0,-0.5571734905,1589,0.0194766801,1639,-1.0000000000 +846,0,0.8664592505,1590,0.0231784545,1640,-1.0000000000 +847,0,0.3598901629,1591,0.0223980900,1641,-1.0000000000 +848,0,0.8700128198,1592,0.0229846016,1642,-1.0000000000 +849,0,0.7697677016,1593,0.0229231622,1643,-1.0000000000 +850,0,0.2859251499,1594,0.0247299802,1644,-1.0000000000 +851,0,-0.7671884298,1595,0.0267935731,1645,-1.0000000000 +852,0,0.7625827193,1596,0.0292239934,1646,-1.0000000000 +853,0,-0.6408279538,1597,0.0266149249,1647,-1.0000000000 +854,0,0.4876926839,1598,0.0229843184,1648,-1.0000000000 +855,0,-0.7342277169,1599,0.0265182480,1649,-1.0000000000 +856,0,-0.0043167840,1600,0.0231549405,1650,-1.0000000000 +857,0,-0.9360870719,1601,0.0253012348,1651,-1.0000000000 +858,0,-0.2136942148,1602,0.0208041538,1652,-1.0000000000 +859,0,0.6678317189,1603,0.0230627339,1653,-1.0000000000 +860,0,-0.8490259647,1604,0.0283609889,1654,-1.0000000000 +861,0,-0.8502492905,1605,0.0245368518,1655,-1.0000000000 +862,0,0.3299311101,1606,0.0213238895,1656,-1.0000000000 +863,0,-0.6741704941,1607,0.0265815370,1657,-1.0000000000 +864,0,-0.7203316092,1608,0.0197502580,1658,-1.0000000000 +865,0,-0.5871137381,1609,0.0245222691,1659,-1.0000000000 +866,0,-0.1073979139,1610,0.0194286499,1660,-1.0000000000 +867,0,-0.6457850933,1611,0.0255288966,1661,-1.0000000000 +868,0,-0.7653211355,1612,0.0226976387,1662,-1.0000000000 +869,0,-0.7774050236,1613,0.0227414705,1663,-1.0000000000 +870,0,-0.7453527451,1614,0.0255117286,1664,-1.0000000000 +871,0,0.3966747224,1615,0.0273439139,1665,-1.0000000000 +872,0,0.6267040372,1616,0.0262405220,1666,-1.0000000000 +873,0,-0.7901589870,1617,0.0219206698,1667,-1.0000000000 +874,0,-0.6241480708,1618,0.0257767029,1668,-1.0000000000 +875,0,0.3426552415,1619,0.0209231097,1669,-1.0000000000 +876,0,1.0251504183,1620,0.0249391589,1670,-1.0000000000 +877,0,0.5753672123,1621,0.0281392988,1671,-1.0000000000 +878,0,0.0552809983,1622,0.0230191071,1672,-1.0000000000 +879,0,-0.7643856406,1623,0.0223054085,1673,-1.0000000000 +880,0,-0.9038895965,1624,0.0259901769,1674,-1.0000000000 +881,0,0.3115992844,1625,0.0212058239,1675,-1.0000000000 +882,0,0.8047288656,1626,0.0262604449,1676,-1.0000000000 +883,0,-0.1062955856,1627,0.0169141162,1677,-1.0000000000 +884,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1828,-1.0000000000 +885,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1829,-1.0000000000 +886,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1830,-1.0000000000 +887,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1831,-1.0000000000 +888,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1832,-1.0000000000 +889,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1833,-1.0000000000 +890,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1834,-1.0000000000 +891,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1835,-1.0000000000 +892,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1836,-1.0000000000 +893,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1837,-1.0000000000 +894,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1838,-1.0000000000 +895,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1839,-1.0000000000 +896,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1840,-1.0000000000 +897,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1841,-1.0000000000 +898,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1842,-1.0000000000 +899,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1843,-1.0000000000 +900,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1844,-1.0000000000 +901,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1845,-1.0000000000 +902,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1846,-1.0000000000 +903,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1847,-1.0000000000 +904,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1848,-1.0000000000 +905,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1849,-1.0000000000 +906,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1850,-1.0000000000 +907,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1851,-1.0000000000 +908,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1852,-1.0000000000 +909,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1853,-1.0000000000 +910,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,-1.0000000000,1854,-1.0000000000 +911,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1855,-1.0000000000 +912,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1856,-1.0000000000 +913,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1857,-1.0000000000 +914,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1858,-1.0000000000 +915,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1859,-1.0000000000 +916,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1860,-1.0000000000 +917,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1861,-1.0000000000 +918,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1862,-1.0000000000 +919,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1863,-1.0000000000 +920,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,-1.0000000000,1864,-1.0000000000 +921,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1865,-1.0000000000 +922,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1866,-1.0000000000 +923,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1867,-1.0000000000 +924,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1868,-1.0000000000 +925,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1869,-1.0000000000 +926,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1870,-1.0000000000 +927,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1871,-1.0000000000 +928,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1872,-1.0000000000 +929,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1873,-1.0000000000 +930,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1874,-1.0000000000 +931,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1875,-1.0000000000 +932,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1876,-1.0000000000 +933,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1877,-1.0000000000 +934,0,-0.4422365427,1828,0.1020488292,1878,-1.0000000000 +935,0,0.4480501115,1829,0.0991111100,1879,-1.0000000000 +936,0,-0.1003972590,1830,0.0965854451,1880,-1.0000000000 +937,0,-1.1484458447,1831,0.1059442237,1881,-1.0000000000 +938,0,1.0887894630,1832,0.0989778936,1882,-1.0000000000 +939,0,-1.0348954201,1833,0.1068197116,1883,-1.0000000000 +940,0,0.5534237027,1834,0.1160275713,1884,-1.0000000000 +941,0,0.9348842502,1835,0.1132629067,1885,-1.0000000000 +942,0,-0.4643164575,1836,0.1065536290,1886,-1.0000000000 +943,0,0.0835817456,1837,0.1003656834,1887,-1.0000000000 +944,0,0.3977578878,1838,0.1060394570,1888,-1.0000000000 +945,0,0.0678663701,1839,0.1013686582,1889,-1.0000000000 +946,0,-0.8597519398,1840,0.1015724093,1890,-1.0000000000 +947,0,1.2035224438,1841,0.1225976050,1891,-1.0000000000 +948,0,0.6223870516,1842,0.1063073128,1892,-1.0000000000 +949,0,-0.6301627755,1843,0.1010998860,1893,-1.0000000000 +950,0,-0.2829226255,1844,0.1127813533,1894,-1.0000000000 +951,0,-0.3967113197,1845,0.0949260890,1895,-1.0000000000 +952,0,-0.4686790705,1846,0.1089941412,1896,-1.0000000000 +953,0,0.1133320630,1847,0.1046472266,1897,-1.0000000000 +954,0,-0.8415259123,1848,0.1142742112,1898,-1.0000000000 +955,0,-0.9505460262,1849,0.1072790921,1899,-1.0000000000 +956,0,0.6531319022,1850,0.0998267680,1900,-1.0000000000 +957,0,-1.1331965923,1851,0.1025341526,1901,-1.0000000000 +958,0,1.3528954983,1852,0.0976141840,1902,-1.0000000000 +959,0,0.4627612829,1853,0.1206339747,1903,-1.0000000000 +960,0,0.8055898547,1854,0.1269099861,1904,-1.0000000000 +961,0,-0.9832527637,1855,0.1577575952,1905,-1.0000000000 +962,0,-0.1737223566,1856,0.1104114428,1906,-1.0000000000 +963,0,-0.0058632195,1857,0.1134437397,1907,-1.0000000000 +964,0,-0.9974204898,1858,0.1002218947,1908,-1.0000000000 +965,0,-1.0862815380,1859,0.1043362990,1909,-1.0000000000 +966,0,0.0564095974,1860,0.1188390180,1910,-1.0000000000 +967,0,1.0363285542,1861,0.1173062101,1911,-1.0000000000 +968,0,-0.7735077143,1862,0.1057077050,1912,-1.0000000000 +969,0,-0.4638699293,1863,0.1058885753,1913,-1.0000000000 +970,0,-0.6389272809,1864,0.1045930758,1914,-1.0000000000 +971,0,-0.0019936562,1865,0.1059108078,1915,-1.0000000000 +972,0,-0.4133639932,1866,0.1102507859,1916,-1.0000000000 +973,0,-0.2886965275,1867,0.1195091382,1917,-1.0000000000 +974,0,0.5997220874,1868,0.1224286780,1918,-1.0000000000 +975,0,1.2392590046,1869,0.1132306159,1919,-1.0000000000 +976,0,-1.6176872253,1870,0.1193554476,1920,-1.0000000000 +977,0,-0.0936360657,1871,0.1110986844,1921,-1.0000000000 +978,0,0.8811743259,1872,0.1029497087,1922,-1.0000000000 +979,0,0.3017511964,1873,0.0968364775,1923,-1.0000000000 +980,0,0.5134924650,1874,0.1179610640,1924,-1.0000000000 +981,0,-0.0661748648,1875,0.1095789969,1925,-1.0000000000 +982,0,-1.3897794485,1876,0.1369069517,1926,-1.0000000000 +983,0,-0.7762956619,1877,0.1096271724,1927,-1.0000000000 +984,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2078,-1.0000000000 +985,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2079,-1.0000000000 +986,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2080,-1.0000000000 +987,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2081,-1.0000000000 +988,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2082,-1.0000000000 +989,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2083,-1.0000000000 +990,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2084,-1.0000000000 +991,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2085,-1.0000000000 +992,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,-1.0000000000,1977,1.0000000000,2086,-1.0000000000 +993,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2087,-1.0000000000 +994,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2088,-1.0000000000 +995,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2089,-1.0000000000 +996,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2090,-1.0000000000 +997,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2091,-1.0000000000 +998,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2092,-1.0000000000 +999,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2093,-1.0000000000 +1000,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2094,-1.0000000000 +1001,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2095,-1.0000000000 +1002,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2096,-1.0000000000 +1003,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2097,-1.0000000000 +1004,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2098,-1.0000000000 +1005,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2099,-1.0000000000 +1006,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2100,-1.0000000000 +1007,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2101,-1.0000000000 +1008,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2102,-1.0000000000 +1009,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,1.0000000000,2103,-1.0000000000 +1010,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2104,-1.0000000000 +1011,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2105,-1.0000000000 +1012,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2106,-1.0000000000 +1013,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,1.0000000000,2107,-1.0000000000 +1014,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2108,-1.0000000000 +1015,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,-1.0000000000,1977,1.0000000000,2109,-1.0000000000 +1016,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2110,-1.0000000000 +1017,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2111,-1.0000000000 +1018,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2112,-1.0000000000 +1019,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2113,-1.0000000000 +1020,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2114,-1.0000000000 +1021,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2115,-1.0000000000 +1022,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2116,-1.0000000000 +1023,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2117,-1.0000000000 +1024,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2118,-1.0000000000 +1025,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2119,-1.0000000000 +1026,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2120,-1.0000000000 +1027,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,1.0000000000,2121,-1.0000000000 +1028,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2122,-1.0000000000 +1029,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2123,-1.0000000000 +1030,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2124,-1.0000000000 +1031,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2125,-1.0000000000 +1032,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2126,-1.0000000000 +1033,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2127,-1.0000000000 +1034,0,-1.5439108610,2078,0.0876089185,2128,-1.0000000000 +1035,0,-0.4739111364,2079,0.0961711332,2129,-1.0000000000 +1036,0,-1.0415468216,2080,0.0937085450,2130,-1.0000000000 +1037,0,0.6139742732,2081,0.0812947005,2131,-1.0000000000 +1038,0,0.5557186604,2082,0.0871866420,2132,-1.0000000000 +1039,0,-0.3893597722,2083,0.0804945678,2133,-1.0000000000 +1040,0,-0.8266534805,2084,0.0812162086,2134,-1.0000000000 +1041,0,0.2232298106,2085,0.0948337018,2135,-1.0000000000 +1042,0,-0.0620028004,2086,0.0776069760,2136,-1.0000000000 +1043,0,1.1303224564,2087,0.0934174880,2137,-1.0000000000 +1044,0,-0.2364211082,2088,0.0797051936,2138,-1.0000000000 +1045,0,-0.9706853628,2089,0.0967904106,2139,-1.0000000000 +1046,0,-0.2923468649,2090,0.0907429308,2140,-1.0000000000 +1047,0,-0.5784704685,2091,0.0755174533,2141,-1.0000000000 +1048,0,-0.0592839196,2092,0.0796242356,2142,-1.0000000000 +1049,0,0.3860493600,2093,0.0900726616,2143,-1.0000000000 +1050,0,1.4812798500,2094,0.0888576508,2144,-1.0000000000 +1051,0,-0.8718976378,2095,0.1031556055,2145,-1.0000000000 +1052,0,-0.1305737942,2096,0.0803080872,2146,-1.0000000000 +1053,0,-0.2846091986,2097,0.0820637047,2147,-1.0000000000 +1054,0,0.1756512523,2098,0.0995460078,2148,-1.0000000000 +1055,0,1.2454360723,2099,0.1092514172,2149,-1.0000000000 +1056,0,1.0246465206,2100,0.0863156915,2150,-1.0000000000 +1057,0,0.2504656911,2101,0.0761504471,2151,-1.0000000000 +1058,0,0.7058990002,2102,0.0841773748,2152,-1.0000000000 +1059,0,0.0360603780,2103,0.0885879919,2153,-1.0000000000 +1060,0,-0.5337175727,2104,0.0816795677,2154,-1.0000000000 +1061,0,1.3386275768,2105,0.0769669712,2155,-1.0000000000 +1062,0,-0.5070524216,2106,0.0816306695,2156,-1.0000000000 +1063,0,-0.7249984741,2107,0.0855440348,2157,-1.0000000000 +1064,0,1.4707089663,2108,0.0787225068,2158,-1.0000000000 +1065,0,0.2180018425,2109,0.0845124200,2159,-1.0000000000 +1066,0,0.6674256325,2110,0.0969409272,2160,-1.0000000000 +1067,0,0.0993419141,2111,0.0880582631,2161,-1.0000000000 +1068,0,0.0910886228,2112,0.0868164375,2162,-1.0000000000 +1069,0,-0.5364635587,2113,0.1057630703,2163,-1.0000000000 +1070,0,1.2253115177,2114,0.0867191926,2164,-1.0000000000 +1071,0,0.8443910480,2115,0.0999500081,2165,-1.0000000000 +1072,0,1.0910279751,2116,0.0895362720,2166,-1.0000000000 +1073,0,0.1953761876,2117,0.0960677862,2167,-1.0000000000 +1074,0,0.4993414283,2118,0.0850909576,2168,-1.0000000000 +1075,0,0.2611379027,2119,0.0794575140,2169,-1.0000000000 +1076,0,-1.7781825066,2120,0.0924188271,2170,-1.0000000000 +1077,0,-0.6430346966,2121,0.0960254595,2171,-1.0000000000 +1078,0,0.7111772299,2122,0.0932400376,2172,-1.0000000000 +1079,0,0.5366181135,2123,0.0883551985,2173,-1.0000000000 +1080,0,1.2333692312,2124,0.0930536613,2174,-1.0000000000 +1081,0,0.7760955095,2125,0.0919722095,2175,-1.0000000000 +1082,0,-0.0114938617,2126,0.0945464075,2176,-1.0000000000 +1083,0,0.8896213770,2127,0.1000391170,2177,-1.0000000000 +1084,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,1.0000000000,2328,-1.0000000000 +1085,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2329,-1.0000000000 +1086,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2330,-1.0000000000 +1087,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2331,-1.0000000000 +1088,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2332,-1.0000000000 +1089,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,1.0000000000,2333,-1.0000000000 +1090,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2334,-1.0000000000 +1091,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2335,-1.0000000000 +1092,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2336,-1.0000000000 +1093,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2337,-1.0000000000 +1094,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2338,-1.0000000000 +1095,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2339,-1.0000000000 +1096,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,-1.0000000000,2340,-1.0000000000 +1097,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2341,-1.0000000000 +1098,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2342,-1.0000000000 +1099,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2343,-1.0000000000 +1100,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2344,-1.0000000000 +1101,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2345,-1.0000000000 +1102,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2346,-1.0000000000 +1103,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2347,-1.0000000000 +1104,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2348,-1.0000000000 +1105,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2349,-1.0000000000 +1106,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2350,-1.0000000000 +1107,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2351,-1.0000000000 +1108,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,-1.0000000000,2352,-1.0000000000 +1109,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2353,-1.0000000000 +1110,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2354,-1.0000000000 +1111,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,1.0000000000,2355,-1.0000000000 +1112,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2356,-1.0000000000 +1113,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2357,-1.0000000000 +1114,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2358,-1.0000000000 +1115,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2359,-1.0000000000 +1116,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2360,-1.0000000000 +1117,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2361,-1.0000000000 +1118,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,1.0000000000,2362,-1.0000000000 +1119,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,1.0000000000,2363,-1.0000000000 +1120,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,1.0000000000,2364,-1.0000000000 +1121,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2365,-1.0000000000 +1122,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,-1.0000000000,2366,-1.0000000000 +1123,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2367,-1.0000000000 +1124,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2368,-1.0000000000 +1125,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2369,-1.0000000000 +1126,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2370,-1.0000000000 +1127,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2371,-1.0000000000 +1128,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2372,-1.0000000000 +1129,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2373,-1.0000000000 +1130,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2374,-1.0000000000 +1131,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2375,-1.0000000000 +1132,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2376,-1.0000000000 +1133,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2377,-1.0000000000 +1134,0,0.0831787437,2328,0.0764585137,2378,-1.0000000000 +1135,0,-0.1364517659,2329,0.0798864216,2379,-1.0000000000 +1136,0,1.8092790842,2330,0.0792033300,2380,-1.0000000000 +1137,0,0.2641986907,2331,0.0732443780,2381,-1.0000000000 +1138,0,1.2061002254,2332,0.0782436728,2382,-1.0000000000 +1139,0,-1.8642137051,2333,0.0861918181,2383,-1.0000000000 +1140,0,-0.1733025759,2334,0.0763822570,2384,-1.0000000000 +1141,0,1.4934809208,2335,0.0766226798,2385,-1.0000000000 +1142,0,-0.1346085519,2336,0.0771160796,2386,-1.0000000000 +1143,0,0.1427569836,2337,0.0810657293,2387,-1.0000000000 +1144,0,-0.0470439941,2338,0.0790032297,2388,-1.0000000000 +1145,0,0.3314089775,2339,0.0826260373,2389,-1.0000000000 +1146,0,0.5605881810,2340,0.0821316242,2390,-1.0000000000 +1147,0,-0.0279953144,2341,0.0758167356,2391,-1.0000000000 +1148,0,0.1289070398,2342,0.0772503018,2392,-1.0000000000 +1149,0,-0.2735776901,2343,0.0737596825,2393,-1.0000000000 +1150,0,0.0808036923,2344,0.0803246498,2394,-1.0000000000 +1151,0,0.3288836777,2345,0.0781317875,2395,-1.0000000000 +1152,0,-0.0946673453,2346,0.0748800337,2396,-1.0000000000 +1153,0,0.1801957637,2347,0.0833257213,2397,-1.0000000000 +1154,0,-0.3167375326,2348,0.0825496614,2398,-1.0000000000 +1155,0,-1.6758612394,2349,0.0833077803,2399,-1.0000000000 +1156,0,0.4785592556,2350,0.0786740705,2400,-1.0000000000 +1157,0,-0.0440198034,2351,0.0839604437,2401,-1.0000000000 +1158,0,-0.4510684013,2352,0.0727607608,2402,-1.0000000000 +1159,0,0.4796656966,2353,0.0754371658,2403,-1.0000000000 +1160,0,-0.1467658728,2354,0.0801599845,2404,-1.0000000000 +1161,0,-1.6980912685,2355,0.0824286491,2405,-1.0000000000 +1162,0,-0.5121878386,2356,0.0887714252,2406,-1.0000000000 +1163,0,-0.1283654422,2357,0.0806707665,2407,-1.0000000000 +1164,0,-0.5782864094,2358,0.0757020339,2408,-1.0000000000 +1165,0,-1.3219553232,2359,0.0830138251,2409,-1.0000000000 +1166,0,1.3010077477,2360,0.0867237747,2410,-1.0000000000 +1167,0,1.8038090467,2361,0.0811277553,2411,-1.0000000000 +1168,0,1.0391250849,2362,0.0832474679,2412,-1.0000000000 +1169,0,-0.8869209290,2363,0.0883564204,2413,-1.0000000000 +1170,0,0.4410263300,2364,0.0816484168,2414,-1.0000000000 +1171,0,0.5588466525,2365,0.0827038214,2415,-1.0000000000 +1172,0,-0.4485054016,2366,0.0719914138,2416,-1.0000000000 +1173,0,0.2402071357,2367,0.0743149817,2417,-1.0000000000 +1174,0,-1.7117775679,2368,0.0778249726,2418,-1.0000000000 +1175,0,-0.2367737740,2369,0.0717907771,2419,-1.0000000000 +1176,0,0.0982874855,2370,0.0753626451,2420,-1.0000000000 +1177,0,-0.0940445662,2371,0.0761000440,2421,-1.0000000000 +1178,0,-0.0428520180,2372,0.0847094953,2422,-1.0000000000 +1179,0,0.5425710678,2373,0.0811219513,2423,-1.0000000000 +1180,0,0.4396020770,2374,0.0789181367,2424,-1.0000000000 +1181,0,0.3062215745,2375,0.0784865990,2425,-1.0000000000 +1182,0,-0.2372326851,2376,0.0754072890,2426,-1.0000000000 +1183,0,0.4145061076,2377,0.0873605311,2427,-1.0000000000 +1184,0,-0.0000000000,2428,1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,-1.0000000000,2433,-1.0000000000,2434,-1.0000000000,2435,1.0000000000,2436,1.0000000000,2437,-1.0000000000,2438,1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,-1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,-1.0000000000,2445,-1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,-1.0000000000,2449,1.0000000000,2450,1.0000000000,2451,-1.0000000000,2452,-1.0000000000,2453,1.0000000000,2454,1.0000000000,2455,1.0000000000,2456,-1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,-1.0000000000,2469,1.0000000000,2470,1.0000000000,2471,-1.0000000000,2472,1.0000000000,2473,1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,1.0000000000,2578,-1.0000000000 +1185,0,-0.0000000000,2428,1.0000000000,2429,-1.0000000000,2430,-1.0000000000,2431,1.0000000000,2432,1.0000000000,2433,-1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,1.0000000000,2441,1.0000000000,2442,-1.0000000000,2443,1.0000000000,2444,1.0000000000,2445,-1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,-1.0000000000,2449,1.0000000000,2450,-1.0000000000,2451,-1.0000000000,2452,1.0000000000,2453,-1.0000000000,2454,-1.0000000000,2455,-1.0000000000,2456,-1.0000000000,2457,-1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,1.0000000000,2462,-1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,1.0000000000,2466,-1.0000000000,2467,-1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,1.0000000000,2473,1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,1.0000000000,2579,-1.0000000000 +1186,0,-0.0000000000,2428,-1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,-1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,-1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,1.0000000000,2440,-1.0000000000,2441,1.0000000000,2442,1.0000000000,2443,-1.0000000000,2444,-1.0000000000,2445,1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,-1.0000000000,2449,-1.0000000000,2450,-1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,-1.0000000000,2454,-1.0000000000,2455,1.0000000000,2456,1.0000000000,2457,1.0000000000,2458,-1.0000000000,2459,-1.0000000000,2460,-1.0000000000,2461,1.0000000000,2462,-1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,-1.0000000000,2473,-1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,-1.0000000000,2580,-1.0000000000 +1187,0,-0.0000000000,2428,-1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,-1.0000000000,2437,-1.0000000000,2438,1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,-1.0000000000,2442,1.0000000000,2443,-1.0000000000,2444,-1.0000000000,2445,1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,-1.0000000000,2449,-1.0000000000,2450,1.0000000000,2451,-1.0000000000,2452,-1.0000000000,2453,1.0000000000,2454,-1.0000000000,2455,1.0000000000,2456,-1.0000000000,2457,1.0000000000,2458,-1.0000000000,2459,-1.0000000000,2460,1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,1.0000000000,2464,-1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,-1.0000000000,2469,-1.0000000000,2470,1.0000000000,2471,-1.0000000000,2472,-1.0000000000,2473,1.0000000000,2474,1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,1.0000000000,2581,-1.0000000000 +1188,0,-0.0000000000,2428,-1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,-1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,1.0000000000,2436,1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,-1.0000000000,2445,1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,-1.0000000000,2449,-1.0000000000,2450,-1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,-1.0000000000,2454,-1.0000000000,2455,1.0000000000,2456,-1.0000000000,2457,-1.0000000000,2458,-1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,-1.0000000000,2464,1.0000000000,2465,1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,1.0000000000,2469,-1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,1.0000000000,2473,-1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,-1.0000000000,2582,-1.0000000000 +1189,0,-0.0000000000,2428,1.0000000000,2429,1.0000000000,2430,-1.0000000000,2431,-1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,1.0000000000,2435,1.0000000000,2436,1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,-1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,-1.0000000000,2445,-1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,1.0000000000,2449,-1.0000000000,2450,1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,1.0000000000,2454,-1.0000000000,2455,-1.0000000000,2456,1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,1.0000000000,2469,-1.0000000000,2470,-1.0000000000,2471,-1.0000000000,2472,1.0000000000,2473,-1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,-1.0000000000,2583,-1.0000000000 +1190,0,-0.0000000000,2428,1.0000000000,2429,-1.0000000000,2430,-1.0000000000,2431,1.0000000000,2432,1.0000000000,2433,-1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,1.0000000000,2437,-1.0000000000,2438,1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,-1.0000000000,2445,-1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,-1.0000000000,2449,-1.0000000000,2450,-1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,-1.0000000000,2454,1.0000000000,2455,-1.0000000000,2456,1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,-1.0000000000,2460,-1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,1.0000000000,2464,-1.0000000000,2465,-1.0000000000,2466,1.0000000000,2467,1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,1.0000000000,2471,1.0000000000,2472,-1.0000000000,2473,-1.0000000000,2474,1.0000000000,2475,-1.0000000000,2476,-1.0000000000,2477,-1.0000000000,2584,-1.0000000000 +1191,0,-0.0000000000,2428,1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,-1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,1.0000000000,2441,1.0000000000,2442,-1.0000000000,2443,1.0000000000,2444,1.0000000000,2445,-1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,-1.0000000000,2449,1.0000000000,2450,-1.0000000000,2451,-1.0000000000,2452,1.0000000000,2453,-1.0000000000,2454,1.0000000000,2455,-1.0000000000,2456,-1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,1.0000000000,2461,1.0000000000,2462,-1.0000000000,2463,1.0000000000,2464,-1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,-1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,-1.0000000000,2473,1.0000000000,2474,1.0000000000,2475,-1.0000000000,2476,-1.0000000000,2477,1.0000000000,2585,-1.0000000000 +1192,0,-0.0000000000,2428,1.0000000000,2429,1.0000000000,2430,1.0000000000,2431,-1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,1.0000000000,2435,1.0000000000,2436,-1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,1.0000000000,2440,-1.0000000000,2441,1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,1.0000000000,2445,-1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,1.0000000000,2449,1.0000000000,2450,-1.0000000000,2451,1.0000000000,2452,1.0000000000,2453,-1.0000000000,2454,1.0000000000,2455,-1.0000000000,2456,1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,1.0000000000,2462,1.0000000000,2463,-1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,-1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,-1.0000000000,2473,-1.0000000000,2474,1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,-1.0000000000,2586,-1.0000000000 +1193,0,-0.0000000000,2428,1.0000000000,2429,1.0000000000,2430,1.0000000000,2431,-1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,-1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,-1.0000000000,2442,-1.0000000000,2443,1.0000000000,2444,1.0000000000,2445,1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,1.0000000000,2449,1.0000000000,2450,1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,1.0000000000,2454,-1.0000000000,2455,1.0000000000,2456,-1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,1.0000000000,2462,-1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,-1.0000000000,2468,1.0000000000,2469,-1.0000000000,2470,-1.0000000000,2471,-1.0000000000,2472,-1.0000000000,2473,1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,1.0000000000,2587,-1.0000000000 +1194,0,-0.2191663980,2578,0.0748265833,2588,-1.0000000000 +1195,0,0.1379462183,2579,0.0680898950,2589,-1.0000000000 +1196,0,0.3651287258,2580,0.0697829127,2590,-1.0000000000 +1197,0,-0.3790612817,2581,0.0699527264,2591,-1.0000000000 +1198,0,0.0887304395,2582,0.0746282265,2592,-1.0000000000 +1199,0,0.1295915544,2583,0.0643937513,2593,-1.0000000000 +1200,0,0.3341619074,2584,0.0683351308,2594,-1.0000000000 +1201,0,-0.0701742172,2585,0.0764223784,2595,-1.0000000000 +1202,0,0.2174075395,2586,0.0778548196,2596,-1.0000000000 +1203,0,0.3690969944,2587,0.0806291550,2597,-1.0000000000 +1204,0,-0.0000000000,2598,1.0000000000,2599,1.0000000000,2600,1.0000000000,2601,-1.0000000000,2602,1.0000000000,2603,1.0000000000,2604,-1.0000000000,2605,-1.0000000000,2606,1.0000000000,2607,1.0000000000,2628,-1.0000000000 +1205,0,-0.0000000000,2598,1.0000000000,2599,-1.0000000000,2600,-1.0000000000,2601,1.0000000000,2602,-1.0000000000,2603,1.0000000000,2604,-1.0000000000,2605,-1.0000000000,2606,-1.0000000000,2607,1.0000000000,2629,-1.0000000000 +1206,0,-0.0000000000,2598,1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,1.0000000000,2602,1.0000000000,2603,-1.0000000000,2604,-1.0000000000,2605,1.0000000000,2606,-1.0000000000,2607,1.0000000000,2630,-1.0000000000 +1207,0,-0.0000000000,2598,1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,1.0000000000,2603,1.0000000000,2604,1.0000000000,2605,-1.0000000000,2606,-1.0000000000,2607,-1.0000000000,2631,-1.0000000000 +1208,0,-0.0000000000,2598,-1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,-1.0000000000,2603,-1.0000000000,2604,-1.0000000000,2605,1.0000000000,2606,-1.0000000000,2607,1.0000000000,2632,-1.0000000000 +1209,0,-0.0000000000,2598,-1.0000000000,2599,1.0000000000,2600,1.0000000000,2601,-1.0000000000,2602,1.0000000000,2603,1.0000000000,2604,-1.0000000000,2605,1.0000000000,2606,1.0000000000,2607,1.0000000000,2633,-1.0000000000 +1210,0,-0.0000000000,2598,-1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,-1.0000000000,2603,-1.0000000000,2604,-1.0000000000,2605,1.0000000000,2606,1.0000000000,2607,-1.0000000000,2634,-1.0000000000 +1211,0,-0.0000000000,2598,1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,-1.0000000000,2603,1.0000000000,2604,1.0000000000,2605,1.0000000000,2606,-1.0000000000,2607,1.0000000000,2635,-1.0000000000 +1212,0,-0.0000000000,2598,-1.0000000000,2599,-1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,-1.0000000000,2603,1.0000000000,2604,-1.0000000000,2605,-1.0000000000,2606,1.0000000000,2607,-1.0000000000,2636,-1.0000000000 +1213,0,-0.0000000000,2598,-1.0000000000,2599,1.0000000000,2600,1.0000000000,2601,1.0000000000,2602,1.0000000000,2603,-1.0000000000,2604,-1.0000000000,2605,-1.0000000000,2606,-1.0000000000,2607,-1.0000000000,2637,-1.0000000000 +1214,0,0.0786820799,2628,0.2380353510,2638,-1.0000000000 +1215,0,0.2452328354,2629,0.2767313421,2639,-1.0000000000 +1216,0,0.4382847250,2630,0.2744768858,2640,-1.0000000000 +1217,0,0.1370536983,2631,0.2933354974,2641,-1.0000000000 +1218,0,-0.0251469873,2632,0.2791853845,2642,-1.0000000000 +1219,0,-0.2257008702,2633,0.2494552583,2643,-1.0000000000 +1220,0,-0.0018014926,2634,0.3040358126,2644,-1.0000000000 +1221,0,-0.0473403111,2635,0.2666788399,2645,-1.0000000000 +1222,0,-0.3460843861,2636,0.2826097310,2646,-1.0000000000 +1223,0,0.0315086767,2637,0.2692045569,2647,-1.0000000000 +1224,0,-0.0000000000,2648,-1.0000000000,2649,-1.0000000000,2650,-1.0000000000,2651,-1.0000000000,2652,1.0000000000,2653,1.0000000000,2654,1.0000000000,2655,1.0000000000,2656,1.0000000000,2657,-1.0000000000,784,-1.0000000000 +1225,0,-0.0000000000,2648,-1.0000000000,2649,-1.0000000000,2650,-1.0000000000,2651,-1.0000000000,2652,-1.0000000000,2653,-1.0000000000,2654,-1.0000000000,2655,-1.0000000000,2656,-1.0000000000,2657,1.0000000000,785,-1.0000000000 +1226,0,-0.0000000000,2648,1.0000000000,2649,-1.0000000000,2650,-1.0000000000,2651,1.0000000000,2652,-1.0000000000,2653,1.0000000000,2654,1.0000000000,2655,-1.0000000000,2656,1.0000000000,2657,1.0000000000,786,-1.0000000000 +1227,0,-0.0000000000,2648,1.0000000000,2649,-1.0000000000,2650,1.0000000000,2651,-1.0000000000,2652,1.0000000000,2653,1.0000000000,2654,-1.0000000000,2655,-1.0000000000,2656,-1.0000000000,2657,1.0000000000,787,-1.0000000000 +1228,0,-0.0000000000,2648,-1.0000000000,2649,1.0000000000,2650,-1.0000000000,2651,1.0000000000,2652,-1.0000000000,2653,-1.0000000000,2654,-1.0000000000,2655,1.0000000000,2656,1.0000000000,2657,1.0000000000,788,-1.0000000000 +1229,0,-0.0000000000,2648,1.0000000000,2649,1.0000000000,2650,1.0000000000,2651,1.0000000000,2652,1.0000000000,2653,1.0000000000,2654,-1.0000000000,2655,1.0000000000,2656,1.0000000000,2657,-1.0000000000,789,-1.0000000000 +1230,0,-0.0000000000,2648,-1.0000000000,2649,-1.0000000000,2650,1.0000000000,2651,1.0000000000,2652,1.0000000000,2653,-1.0000000000,2654,1.0000000000,2655,1.0000000000,2656,-1.0000000000,2657,1.0000000000,790,-1.0000000000 +1231,0,-0.0000000000,2648,-1.0000000000,2649,1.0000000000,2650,1.0000000000,2651,-1.0000000000,2652,1.0000000000,2653,-1.0000000000,2654,1.0000000000,2655,-1.0000000000,2656,1.0000000000,2657,1.0000000000,791,-1.0000000000 +1232,0,-0.0000000000,2648,1.0000000000,2649,-1.0000000000,2650,-1.0000000000,2651,1.0000000000,2652,-1.0000000000,2653,1.0000000000,2654,-1.0000000000,2655,1.0000000000,2656,-1.0000000000,2657,-1.0000000000,792,-1.0000000000 +1233,0,-0.0000000000,2648,1.0000000000,2649,1.0000000000,2650,-1.0000000000,2651,-1.0000000000,2652,-1.0000000000,2653,1.0000000000,2654,-1.0000000000,2655,-1.0000000000,2656,1.0000000000,2657,-1.0000000000,793,-1.0000000000 +1234,2,0,786,-1.0000000000,784,1.0000000000 +0,sign,1678,1628 +1,sign,1679,1629 +2,sign,1680,1630 +3,sign,1681,1631 +4,sign,1682,1632 +5,sign,1683,1633 +6,sign,1684,1634 +7,sign,1685,1635 +8,sign,1686,1636 +9,sign,1687,1637 +10,sign,1688,1638 +11,sign,1689,1639 +12,sign,1690,1640 +13,sign,1691,1641 +14,sign,1692,1642 +15,sign,1693,1643 +16,sign,1694,1644 +17,sign,1695,1645 +18,sign,1696,1646 +19,sign,1697,1647 +20,sign,1698,1648 +21,sign,1699,1649 +22,sign,1700,1650 +23,sign,1701,1651 +24,sign,1702,1652 +25,sign,1703,1653 +26,sign,1704,1654 +27,sign,1705,1655 +28,sign,1706,1656 +29,sign,1707,1657 +30,sign,1708,1658 +31,sign,1709,1659 +32,sign,1710,1660 +33,sign,1711,1661 +34,sign,1712,1662 +35,sign,1713,1663 +36,sign,1714,1664 +37,sign,1715,1665 +38,sign,1716,1666 +39,sign,1717,1667 +40,sign,1718,1668 +41,sign,1719,1669 +42,sign,1720,1670 +43,sign,1721,1671 +44,sign,1722,1672 +45,sign,1723,1673 +46,sign,1724,1674 +47,sign,1725,1675 +48,sign,1726,1676 +49,sign,1727,1677 +50,sign,1928,1878 +51,sign,1929,1879 +52,sign,1930,1880 +53,sign,1931,1881 +54,sign,1932,1882 +55,sign,1933,1883 +56,sign,1934,1884 +57,sign,1935,1885 +58,sign,1936,1886 +59,sign,1937,1887 +60,sign,1938,1888 +61,sign,1939,1889 +62,sign,1940,1890 +63,sign,1941,1891 +64,sign,1942,1892 +65,sign,1943,1893 +66,sign,1944,1894 +67,sign,1945,1895 +68,sign,1946,1896 +69,sign,1947,1897 +70,sign,1948,1898 +71,sign,1949,1899 +72,sign,1950,1900 +73,sign,1951,1901 +74,sign,1952,1902 +75,sign,1953,1903 +76,sign,1954,1904 +77,sign,1955,1905 +78,sign,1956,1906 +79,sign,1957,1907 +80,sign,1958,1908 +81,sign,1959,1909 +82,sign,1960,1910 +83,sign,1961,1911 +84,sign,1962,1912 +85,sign,1963,1913 +86,sign,1964,1914 +87,sign,1965,1915 +88,sign,1966,1916 +89,sign,1967,1917 +90,sign,1968,1918 +91,sign,1969,1919 +92,sign,1970,1920 +93,sign,1971,1921 +94,sign,1972,1922 +95,sign,1973,1923 +96,sign,1974,1924 +97,sign,1975,1925 +98,sign,1976,1926 +99,sign,1977,1927 +100,sign,2178,2128 +101,sign,2179,2129 +102,sign,2180,2130 +103,sign,2181,2131 +104,sign,2182,2132 +105,sign,2183,2133 +106,sign,2184,2134 +107,sign,2185,2135 +108,sign,2186,2136 +109,sign,2187,2137 +110,sign,2188,2138 +111,sign,2189,2139 +112,sign,2190,2140 +113,sign,2191,2141 +114,sign,2192,2142 +115,sign,2193,2143 +116,sign,2194,2144 +117,sign,2195,2145 +118,sign,2196,2146 +119,sign,2197,2147 +120,sign,2198,2148 +121,sign,2199,2149 +122,sign,2200,2150 +123,sign,2201,2151 +124,sign,2202,2152 +125,sign,2203,2153 +126,sign,2204,2154 +127,sign,2205,2155 +128,sign,2206,2156 +129,sign,2207,2157 +130,sign,2208,2158 +131,sign,2209,2159 +132,sign,2210,2160 +133,sign,2211,2161 +134,sign,2212,2162 +135,sign,2213,2163 +136,sign,2214,2164 +137,sign,2215,2165 +138,sign,2216,2166 +139,sign,2217,2167 +140,sign,2218,2168 +141,sign,2219,2169 +142,sign,2220,2170 +143,sign,2221,2171 +144,sign,2222,2172 +145,sign,2223,2173 +146,sign,2224,2174 +147,sign,2225,2175 +148,sign,2226,2176 +149,sign,2227,2177 +150,sign,2428,2378 +151,sign,2429,2379 +152,sign,2430,2380 +153,sign,2431,2381 +154,sign,2432,2382 +155,sign,2433,2383 +156,sign,2434,2384 +157,sign,2435,2385 +158,sign,2436,2386 +159,sign,2437,2387 +160,sign,2438,2388 +161,sign,2439,2389 +162,sign,2440,2390 +163,sign,2441,2391 +164,sign,2442,2392 +165,sign,2443,2393 +166,sign,2444,2394 +167,sign,2445,2395 +168,sign,2446,2396 +169,sign,2447,2397 +170,sign,2448,2398 +171,sign,2449,2399 +172,sign,2450,2400 +173,sign,2451,2401 +174,sign,2452,2402 +175,sign,2453,2403 +176,sign,2454,2404 +177,sign,2455,2405 +178,sign,2456,2406 +179,sign,2457,2407 +180,sign,2458,2408 +181,sign,2459,2409 +182,sign,2460,2410 +183,sign,2461,2411 +184,sign,2462,2412 +185,sign,2463,2413 +186,sign,2464,2414 +187,sign,2465,2415 +188,sign,2466,2416 +189,sign,2467,2417 +190,sign,2468,2418 +191,sign,2469,2419 +192,sign,2470,2420 +193,sign,2471,2421 +194,sign,2472,2422 +195,sign,2473,2423 +196,sign,2474,2424 +197,sign,2475,2425 +198,sign,2476,2426 +199,sign,2477,2427 +200,sign,2598,2588 +201,sign,2599,2589 +202,sign,2600,2590 +203,sign,2601,2591 +204,sign,2602,2592 +205,sign,2603,2593 +206,sign,2604,2594 +207,sign,2605,2595 +208,sign,2606,2596 +209,sign,2607,2597 +210,sign,2648,2638 +211,sign,2649,2639 +212,sign,2650,2640 +213,sign,2651,2641 +214,sign,2652,2642 +215,sign,2653,2643 +216,sign,2654,2644 +217,sign,2655,2645 +218,sign,2656,2646 +219,sign,2657,2647 diff --git a/regress/regress1/input_queries/deep_6_index_7779.ipq b/regress/regress1/input_queries/deep_6_index_7779.ipq new file mode 100644 index 0000000000..ffecd2703a --- /dev/null +++ b/regress/regress1/input_queries/deep_6_index_7779.ipq @@ -0,0 +1,4264 @@ +2678 +1004 +1004 +1235 +220 +784 +0,0 +1,1 +2,2 +3,3 +4,4 +5,5 +6,6 +7,7 +8,8 +9,9 +10,10 +11,11 +12,12 +13,13 +14,14 +15,15 +16,16 +17,17 +18,18 +19,19 +20,20 +21,21 +22,22 +23,23 +24,24 +25,25 +26,26 +27,27 +28,28 +29,29 +30,30 +31,31 +32,32 +33,33 +34,34 +35,35 +36,36 +37,37 +38,38 +39,39 +40,40 +41,41 +42,42 +43,43 +44,44 +45,45 +46,46 +47,47 +48,48 +49,49 +50,50 +51,51 +52,52 +53,53 +54,54 +55,55 +56,56 +57,57 +58,58 +59,59 +60,60 +61,61 +62,62 +63,63 +64,64 +65,65 +66,66 +67,67 +68,68 +69,69 +70,70 +71,71 +72,72 +73,73 +74,74 +75,75 +76,76 +77,77 +78,78 +79,79 +80,80 +81,81 +82,82 +83,83 +84,84 +85,85 +86,86 +87,87 +88,88 +89,89 +90,90 +91,91 +92,92 +93,93 +94,94 +95,95 +96,96 +97,97 +98,98 +99,99 +100,100 +101,101 +102,102 +103,103 +104,104 +105,105 +106,106 +107,107 +108,108 +109,109 +110,110 +111,111 +112,112 +113,113 +114,114 +115,115 +116,116 +117,117 +118,118 +119,119 +120,120 +121,121 +122,122 +123,123 +124,124 +125,125 +126,126 +127,127 +128,128 +129,129 +130,130 +131,131 +132,132 +133,133 +134,134 +135,135 +136,136 +137,137 +138,138 +139,139 +140,140 +141,141 +142,142 +143,143 +144,144 +145,145 +146,146 +147,147 +148,148 +149,149 +150,150 +151,151 +152,152 +153,153 +154,154 +155,155 +156,156 +157,157 +158,158 +159,159 +160,160 +161,161 +162,162 +163,163 +164,164 +165,165 +166,166 +167,167 +168,168 +169,169 +170,170 +171,171 +172,172 +173,173 +174,174 +175,175 +176,176 +177,177 +178,178 +179,179 +180,180 +181,181 +182,182 +183,183 +184,184 +185,185 +186,186 +187,187 +188,188 +189,189 +190,190 +191,191 +192,192 +193,193 +194,194 +195,195 +196,196 +197,197 +198,198 +199,199 +200,200 +201,201 +202,202 +203,203 +204,204 +205,205 +206,206 +207,207 +208,208 +209,209 +210,210 +211,211 +212,212 +213,213 +214,214 +215,215 +216,216 +217,217 +218,218 +219,219 +220,220 +221,221 +222,222 +223,223 +224,224 +225,225 +226,226 +227,227 +228,228 +229,229 +230,230 +231,231 +232,232 +233,233 +234,234 +235,235 +236,236 +237,237 +238,238 +239,239 +240,240 +241,241 +242,242 +243,243 +244,244 +245,245 +246,246 +247,247 +248,248 +249,249 +250,250 +251,251 +252,252 +253,253 +254,254 +255,255 +256,256 +257,257 +258,258 +259,259 +260,260 +261,261 +262,262 +263,263 +264,264 +265,265 +266,266 +267,267 +268,268 +269,269 +270,270 +271,271 +272,272 +273,273 +274,274 +275,275 +276,276 +277,277 +278,278 +279,279 +280,280 +281,281 +282,282 +283,283 +284,284 +285,285 +286,286 +287,287 +288,288 +289,289 +290,290 +291,291 +292,292 +293,293 +294,294 +295,295 +296,296 +297,297 +298,298 +299,299 +300,300 +301,301 +302,302 +303,303 +304,304 +305,305 +306,306 +307,307 +308,308 +309,309 +310,310 +311,311 +312,312 +313,313 +314,314 +315,315 +316,316 +317,317 +318,318 +319,319 +320,320 +321,321 +322,322 +323,323 +324,324 +325,325 +326,326 +327,327 +328,328 +329,329 +330,330 +331,331 +332,332 +333,333 +334,334 +335,335 +336,336 +337,337 +338,338 +339,339 +340,340 +341,341 +342,342 +343,343 +344,344 +345,345 +346,346 +347,347 +348,348 +349,349 +350,350 +351,351 +352,352 +353,353 +354,354 +355,355 +356,356 +357,357 +358,358 +359,359 +360,360 +361,361 +362,362 +363,363 +364,364 +365,365 +366,366 +367,367 +368,368 +369,369 +370,370 +371,371 +372,372 +373,373 +374,374 +375,375 +376,376 +377,377 +378,378 +379,379 +380,380 +381,381 +382,382 +383,383 +384,384 +385,385 +386,386 +387,387 +388,388 +389,389 +390,390 +391,391 +392,392 +393,393 +394,394 +395,395 +396,396 +397,397 +398,398 +399,399 +400,400 +401,401 +402,402 +403,403 +404,404 +405,405 +406,406 +407,407 +408,408 +409,409 +410,410 +411,411 +412,412 +413,413 +414,414 +415,415 +416,416 +417,417 +418,418 +419,419 +420,420 +421,421 +422,422 +423,423 +424,424 +425,425 +426,426 +427,427 +428,428 +429,429 +430,430 +431,431 +432,432 +433,433 +434,434 +435,435 +436,436 +437,437 +438,438 +439,439 +440,440 +441,441 +442,442 +443,443 +444,444 +445,445 +446,446 +447,447 +448,448 +449,449 +450,450 +451,451 +452,452 +453,453 +454,454 +455,455 +456,456 +457,457 +458,458 +459,459 +460,460 +461,461 +462,462 +463,463 +464,464 +465,465 +466,466 +467,467 +468,468 +469,469 +470,470 +471,471 +472,472 +473,473 +474,474 +475,475 +476,476 +477,477 +478,478 +479,479 +480,480 +481,481 +482,482 +483,483 +484,484 +485,485 +486,486 +487,487 +488,488 +489,489 +490,490 +491,491 +492,492 +493,493 +494,494 +495,495 +496,496 +497,497 +498,498 +499,499 +500,500 +501,501 +502,502 +503,503 +504,504 +505,505 +506,506 +507,507 +508,508 +509,509 +510,510 +511,511 +512,512 +513,513 +514,514 +515,515 +516,516 +517,517 +518,518 +519,519 +520,520 +521,521 +522,522 +523,523 +524,524 +525,525 +526,526 +527,527 +528,528 +529,529 +530,530 +531,531 +532,532 +533,533 +534,534 +535,535 +536,536 +537,537 +538,538 +539,539 +540,540 +541,541 +542,542 +543,543 +544,544 +545,545 +546,546 +547,547 +548,548 +549,549 +550,550 +551,551 +552,552 +553,553 +554,554 +555,555 +556,556 +557,557 +558,558 +559,559 +560,560 +561,561 +562,562 +563,563 +564,564 +565,565 +566,566 +567,567 +568,568 +569,569 +570,570 +571,571 +572,572 +573,573 +574,574 +575,575 +576,576 +577,577 +578,578 +579,579 +580,580 +581,581 +582,582 +583,583 +584,584 +585,585 +586,586 +587,587 +588,588 +589,589 +590,590 +591,591 +592,592 +593,593 +594,594 +595,595 +596,596 +597,597 +598,598 +599,599 +600,600 +601,601 +602,602 +603,603 +604,604 +605,605 +606,606 +607,607 +608,608 +609,609 +610,610 +611,611 +612,612 +613,613 +614,614 +615,615 +616,616 +617,617 +618,618 +619,619 +620,620 +621,621 +622,622 +623,623 +624,624 +625,625 +626,626 +627,627 +628,628 +629,629 +630,630 +631,631 +632,632 +633,633 +634,634 +635,635 +636,636 +637,637 +638,638 +639,639 +640,640 +641,641 +642,642 +643,643 +644,644 +645,645 +646,646 +647,647 +648,648 +649,649 +650,650 +651,651 +652,652 +653,653 +654,654 +655,655 +656,656 +657,657 +658,658 +659,659 +660,660 +661,661 +662,662 +663,663 +664,664 +665,665 +666,666 +667,667 +668,668 +669,669 +670,670 +671,671 +672,672 +673,673 +674,674 +675,675 +676,676 +677,677 +678,678 +679,679 +680,680 +681,681 +682,682 +683,683 +684,684 +685,685 +686,686 +687,687 +688,688 +689,689 +690,690 +691,691 +692,692 +693,693 +694,694 +695,695 +696,696 +697,697 +698,698 +699,699 +700,700 +701,701 +702,702 +703,703 +704,704 +705,705 +706,706 +707,707 +708,708 +709,709 +710,710 +711,711 +712,712 +713,713 +714,714 +715,715 +716,716 +717,717 +718,718 +719,719 +720,720 +721,721 +722,722 +723,723 +724,724 +725,725 +726,726 +727,727 +728,728 +729,729 +730,730 +731,731 +732,732 +733,733 +734,734 +735,735 +736,736 +737,737 +738,738 +739,739 +740,740 +741,741 +742,742 +743,743 +744,744 +745,745 +746,746 +747,747 +748,748 +749,749 +750,750 +751,751 +752,752 +753,753 +754,754 +755,755 +756,756 +757,757 +758,758 +759,759 +760,760 +761,761 +762,762 +763,763 +764,764 +765,765 +766,766 +767,767 +768,768 +769,769 +770,770 +771,771 +772,772 +773,773 +774,774 +775,775 +776,776 +777,777 +778,778 +779,779 +780,780 +781,781 +782,782 +783,783 +10 +0,784 +1,785 +2,786 +3,787 +4,788 +5,789 +6,790 +7,791 +8,792 +9,793 +0,0 +1,0 +2,0 +3,0 +4,0 +5,0 +6,0 +7,0 +8,0 +9,0 +10,0 +11,0 +12,0 +13,0 +14,0 +15,0 +16,0 +17,0 +18,0 +19,0 +20,0 +21,0 +22,0 +23,0 +24,0 +25,0 +26,0 +27,0 +28,0 +29,0 +30,0 +31,0 +32,0 +33,0 +34,0 +35,0 +36,0 +37,0 +38,0 +39,0 +40,0 +41,0 +42,0 +43,0 +44,0 +45,0 +46,0 +47,0 +48,0 +49,0 +50,0 +51,0 +52,0 +53,0 +54,0 +55,0 +56,0 +57,0 +58,0 +59,0 +60,0 +61,0 +62,0 +63,0 +64,0 +65,0 +66,0 +67,0 +68,0 +69,0 +70,0 +71,0 +72,0 +73,0 +74,0 +75,0 +76,0 +77,0 +78,0 +79,0 +80,0 +81,0 +82,0 +83,0 +84,0 +85,0 +86,0 +87,0 +88,0 +89,0 +90,0 +91,0 +92,0 +93,0 +94,0 +95,0 +96,0 +97,0 +98,0 +99,0 +100,0 +101,0 +102,0 +103,0 +104,0 +105,0 +106,0 +107,0 +108,0 +109,0 +110,0 +111,0 +112,0 +113,0 +114,0 +115,0 +116,0 +117,0 +118,0 +119,0 +120,0 +121,0 +122,0 +123,0 +124,0 +125,0 +126,0 +127,0 +128,0 +129,0 +130,0 +131,0 +132,0 +133,0 +134,0 +135,0 +136,0 +137,0 +138,0 +139,0 +140,0 +141,0 +142,0 +143,0 +144,0 +145,0 +146,0 +147,0 +148,0 +149,0 +150,0 +151,0 +152,0 +153,0 +154,0 +155,0 +156,0 +157,0 +158,0 +159,0 +160,0 +161,0 +162,0 +163,0 +164,0 +165,0 +166,0 +167,0 +168,0 +169,0 +170,0 +171,0 +172,0 +173,0 +174,0 +175,0 +176,0 +177,0 +178,0 +179,0.030981924019607844 +180,0.4505897671568628 +181,0.6231387867647059 +182,0.5015701593137255 +183,0.6270603553921569 +184,0.6231387867647059 +185,0.5015701593137255 +186,0.5015701593137255 +187,0.5015701593137255 +188,0.5015701593137255 +189,0.5015701593137255 +190,0.5015701593137255 +191,0.5015701593137255 +192,0.5015701593137255 +193,0 +194,0 +195,0 +196,0 +197,0 +198,0 +199,0 +200,0 +201,0 +202,0 +203,0 +204,0 +205,0 +206,0 +207,0.7721583946078432 +208,0.9917662377450981 +209,0.9917662377450981 +210,0.9917662377450981 +211,0.9956878063725491 +212,0.9917662377450981 +213,0.9917662377450981 +214,0.9917662377450981 +215,0.9917662377450981 +216,0.9956878063725491 +217,0.9917662377450981 +218,0.9917662377450981 +219,0.983923100490196 +220,0.9211780024509804 +221,0 +222,0 +223,0 +224,0 +225,0 +226,0 +227,0 +228,0 +229,0 +230,0 +231,0 +232,0 +233,0 +234,0.10549172794117646 +235,0.9486289828431372 +236,0.9917662377450981 +237,0.9917662377450981 +238,0.9917662377450981 +239,0.9956878063725491 +240,0.9917662377450981 +241,0.9917662377450981 +242,0.9917662377450981 +243,0.9917662377450981 +244,0.9956878063725491 +245,0.6584329044117647 +246,0.33294270833333334 +247,0.2623544730392157 +248,0 +249,0 +250,0 +251,0 +252,0 +253,0 +254,0 +255,0 +256,0 +257,0 +258,0 +259,0 +260,0 +261,0.10549172794117646 +262,0.7407858455882353 +263,0.9956878063725491 +264,0.9956878063725491 +265,0.9956878063725491 +266,0.9956878063725491 +267,0.999609375 +268,0.9329427083333334 +269,0.6584329044117647 +270,0.33294270833333334 +271,0 +272,0 +273,0 +274,0 +275,0 +276,0 +277,0 +278,0 +279,0 +280,0 +281,0 +282,0 +283,0 +284,0 +285,0 +286,0 +287,0 +288,0 +289,0.43490349264705885 +290,0.9956878063725491 +291,0.9917662377450981 +292,0.9917662377450981 +293,0.9917662377450981 +294,0.8623544730392158 +295,0.6388250612745098 +296,0.09372702205882352 +297,0 +298,0 +299,0 +300,0 +301,0 +302,0 +303,0 +304,0 +305,0 +306,0 +307,0 +308,0 +309,0 +310,0 +311,0 +312,0 +313,0 +314,0 +315,0 +316,0 +317,0.4819623161764706 +318,0.9956878063725491 +319,0.9917662377450981 +320,0.9917662377450981 +321,0.9917662377450981 +322,0.9917662377450981 +323,0.9956878063725491 +324,0.8623544730392158 +325,0.49764859068627454 +326,0.08196231617647058 +327,0 +328,0 +329,0 +330,0 +331,0 +332,0 +333,0 +334,0 +335,0 +336,0 +337,0 +338,0 +339,0 +340,0 +341,0 +342,0 +343,0 +344,0 +345,0 +346,0.4427466299019608 +347,0.9094132965686275 +348,0.9643152573529412 +349,0.9917662377450981 +350,0.9917662377450981 +351,0.9956878063725491 +352,0.9917662377450981 +353,0.9917662377450981 +354,0.8741191789215687 +355,0.14862898284313725 +356,0 +357,0 +358,0 +359,0 +360,0 +361,0 +362,0 +363,0 +364,0 +365,0 +366,0 +367,0 +368,0 +369,0 +370,0 +371,0 +372,0 +373,0 +374,0 +375,0.06235447303921569 +376,0.1800015318627451 +377,0.3094132965686275 +378,0.6349034926470588 +379,0.6388250612745098 +380,0.9682368259803922 +381,0.9917662377450981 +382,0.9917662377450981 +383,0.8898054534313725 +384,0.3839231004901961 +385,0 +386,0 +387,0 +388,0 +389,0 +390,0 +391,0 +392,0 +393,0 +394,0 +395,0 +396,0 +397,0 +398,0 +399,0 +400,0 +401,0 +402,0 +403,0 +404,0 +405,0 +406,0 +407,0 +408,0.0780407475490196 +409,0.5721583946078431 +410,0.9956878063725491 +411,0.9956878063725491 +412,0.8937270220588236 +413,0.25058976715686276 +414,0 +415,0 +416,0 +417,0 +418,0 +419,0 +420,0 +421,0 +422,0 +423,0 +424,0 +425,0 +426,0 +427,0 +428,0 +429,0 +430,0 +431,0 +432,0 +433,0 +434,0 +435,0 +436,0 +437,0.01137408088235294 +438,0.5133348651960784 +439,0.9917662377450981 +440,0.9956878063725491 +441,0.8231387867647059 +442,0.030981924019607844 +443,0 +444,0 +445,0 +446,0 +447,0 +448,0 +449,0 +450,0 +451,0 +452,0 +453,0 +454,0.08196231617647058 +455,0.14470741421568628 +456,0.14470741421568628 +457,0.27019761029411765 +458,0.5015701593137255 +459,0.5015701593137255 +460,0.5015701593137255 +461,0.2192172181372549 +462,0.14470741421568628 +463,0 +464,0 +465,0 +466,0.038825061274509805 +467,0.8505897671568627 +468,0.9956878063725491 +469,0.807452512254902 +470,0.019217218137254903 +471,0 +472,0 +473,0 +474,0 +475,0 +476,0 +477,0 +478,0 +479,0 +480,0 +481,0.5015701593137255 +482,0.9015701593137255 +483,0.9917662377450981 +484,0.9917662377450981 +485,0.9917662377450981 +486,0.9956878063725491 +487,0.9917662377450981 +488,0.9917662377450981 +489,0.9917662377450981 +490,0.9917662377450981 +491,0.5525505514705883 +492,0.054511335784313726 +493,0 +494,0.058432904411764706 +495,0.8309819240196079 +496,0.9956878063725491 +497,0.7760799632352942 +498,0 +499,0 +500,0 +501,0 +502,0 +503,0 +504,0 +505,0 +506,0 +507,0 +508,0 +509,0.8937270220588236 +510,0.9917662377450981 +511,0.9917662377450981 +512,0.9917662377450981 +513,0.9917662377450981 +514,0.9956878063725491 +515,0.9917662377450981 +516,0.9917662377450981 +517,0.9917662377450981 +518,0.9917662377450981 +519,0.9956878063725491 +520,0.7525505514705882 +521,0.5329427083333333 +522,0.8309819240196079 +523,0.9917662377450981 +524,0.9956878063725491 +525,0.7760799632352942 +526,0 +527,0 +528,0 +529,0 +530,0 +531,0 +532,0 +533,0 +534,0 +535,0 +536,0 +537,0.999609375 +538,0.9956878063725491 +539,0.9956878063725491 +540,0.9956878063725491 +541,0.9956878063725491 +542,0.999609375 +543,0.9956878063725491 +544,0.9956878063725491 +545,0.9956878063725491 +546,0.9956878063725491 +547,0.999609375 +548,0.9956878063725491 +549,0.9956878063725491 +550,0.9956878063725491 +551,0.9956878063725491 +552,0.999609375 +553,0.4505897671568628 +554,0 +555,0 +556,0 +557,0 +558,0 +559,0 +560,0 +561,0 +562,0 +563,0 +564,0 +565,0.29764859068627453 +566,0.4231387867647059 +567,0.8349034926470589 +568,0.9917662377450981 +569,0.9917662377450981 +570,0.9956878063725491 +571,0.9917662377450981 +572,0.9917662377450981 +573,0.9917662377450981 +574,0.9917662377450981 +575,0.9956878063725491 +576,0.9917662377450981 +577,0.9917662377450981 +578,0.8976485906862746 +579,0.7760799632352942 +580,0.3250995710784314 +581,0.00745251225490196 +582,0 +583,0 +584,0 +585,0 +586,0 +587,0 +588,0 +589,0 +590,0 +591,0 +592,0 +593,0 +594,0 +595,0.07019761029411764 +596,0.29372702205882356 +597,0.49764859068627454 +598,0.49764859068627454 +599,0.49764859068627454 +600,0.49764859068627454 +601,0.49764859068627454 +602,0.49764859068627454 +603,0.49764859068627454 +604,0.49764859068627454 +605,0.4466681985294118 +606,0.08196231617647058 +607,0 +608,0 +609,0 +610,0 +611,0 +612,0 +613,0 +614,0 +615,0 +616,0 +617,0 +618,0 +619,0 +620,0 +621,0 +622,0 +623,0 +624,0 +625,0 +626,0 +627,0 +628,0 +629,0 +630,0 +631,0 +632,0 +633,0 +634,0 +635,0 +636,0 +637,0 +638,0 +639,0 +640,0 +641,0 +642,0 +643,0 +644,0 +645,0 +646,0 +647,0 +648,0 +649,0 +650,0 +651,0 +652,0 +653,0 +654,0 +655,0 +656,0 +657,0 +658,0 +659,0 +660,0 +661,0 +662,0 +663,0 +664,0 +665,0 +666,0 +667,0 +668,0 +669,0 +670,0 +671,0 +672,0 +673,0 +674,0 +675,0 +676,0 +677,0 +678,0 +679,0 +680,0 +681,0 +682,0 +683,0 +684,0 +685,0 +686,0 +687,0 +688,0 +689,0 +690,0 +691,0 +692,0 +693,0 +694,0 +695,0 +696,0 +697,0 +698,0 +699,0 +700,0 +701,0 +702,0 +703,0 +704,0 +705,0 +706,0 +707,0 +708,0 +709,0 +710,0 +711,0 +712,0 +713,0 +714,0 +715,0 +716,0 +717,0 +718,0 +719,0 +720,0 +721,0 +722,0 +723,0 +724,0 +725,0 +726,0 +727,0 +728,0 +729,0 +730,0 +731,0 +732,0 +733,0 +734,0 +735,0 +736,0 +737,0 +738,0 +739,0 +740,0 +741,0 +742,0 +743,0 +744,0 +745,0 +746,0 +747,0 +748,0 +749,0 +750,0 +751,0 +752,0 +753,0 +754,0 +755,0 +756,0 +757,0 +758,0 +759,0 +760,0 +761,0 +762,0 +763,0 +764,0 +765,0 +766,0 +767,0 +768,0 +769,0 +770,0 +771,0 +772,0 +773,0 +774,0 +775,0 +776,0 +777,0 +778,0 +779,0 +780,0 +781,0 +782,0 +783,0 +1678,-1.0000000000 +1679,-1.0000000000 +1680,-1.0000000000 +1681,-1.0000000000 +1682,-1.0000000000 +1683,-1.0000000000 +1684,-1.0000000000 +1685,-1.0000000000 +1686,-1.0000000000 +1687,-1.0000000000 +1688,-1.0000000000 +1689,-1.0000000000 +1690,-1.0000000000 +1691,-1.0000000000 +1692,-1.0000000000 +1693,-1.0000000000 +1694,-1.0000000000 +1695,-1.0000000000 +1696,-1.0000000000 +1697,-1.0000000000 +1698,-1.0000000000 +1699,-1.0000000000 +1700,-1.0000000000 +1701,-1.0000000000 +1702,-1.0000000000 +1703,-1.0000000000 +1704,-1.0000000000 +1705,-1.0000000000 +1706,-1.0000000000 +1707,-1.0000000000 +1708,-1.0000000000 +1709,-1.0000000000 +1710,-1.0000000000 +1711,-1.0000000000 +1712,-1.0000000000 +1713,-1.0000000000 +1714,-1.0000000000 +1715,-1.0000000000 +1716,-1.0000000000 +1717,-1.0000000000 +1718,-1.0000000000 +1719,-1.0000000000 +1720,-1.0000000000 +1721,-1.0000000000 +1722,-1.0000000000 +1723,-1.0000000000 +1724,-1.0000000000 +1725,-1.0000000000 +1726,-1.0000000000 +1727,-1.0000000000 +1928,-1.0000000000 +1929,-1.0000000000 +1930,-1.0000000000 +1931,-1.0000000000 +1932,-1.0000000000 +1933,-1.0000000000 +1934,-1.0000000000 +1935,-1.0000000000 +1936,-1.0000000000 +1937,-1.0000000000 +1938,-1.0000000000 +1939,-1.0000000000 +1940,-1.0000000000 +1941,-1.0000000000 +1942,-1.0000000000 +1943,-1.0000000000 +1944,-1.0000000000 +1945,-1.0000000000 +1946,-1.0000000000 +1947,-1.0000000000 +1948,-1.0000000000 +1949,-1.0000000000 +1950,-1.0000000000 +1951,-1.0000000000 +1952,-1.0000000000 +1953,-1.0000000000 +1954,-1.0000000000 +1955,-1.0000000000 +1956,-1.0000000000 +1957,-1.0000000000 +1958,-1.0000000000 +1959,-1.0000000000 +1960,-1.0000000000 +1961,-1.0000000000 +1962,-1.0000000000 +1963,-1.0000000000 +1964,-1.0000000000 +1965,-1.0000000000 +1966,-1.0000000000 +1967,-1.0000000000 +1968,-1.0000000000 +1969,-1.0000000000 +1970,-1.0000000000 +1971,-1.0000000000 +1972,-1.0000000000 +1973,-1.0000000000 +1974,-1.0000000000 +1975,-1.0000000000 +1976,-1.0000000000 +1977,-1.0000000000 +2178,-1.0000000000 +2179,-1.0000000000 +2180,-1.0000000000 +2181,-1.0000000000 +2182,-1.0000000000 +2183,-1.0000000000 +2184,-1.0000000000 +2185,-1.0000000000 +2186,-1.0000000000 +2187,-1.0000000000 +2188,-1.0000000000 +2189,-1.0000000000 +2190,-1.0000000000 +2191,-1.0000000000 +2192,-1.0000000000 +2193,-1.0000000000 +2194,-1.0000000000 +2195,-1.0000000000 +2196,-1.0000000000 +2197,-1.0000000000 +2198,-1.0000000000 +2199,-1.0000000000 +2200,-1.0000000000 +2201,-1.0000000000 +2202,-1.0000000000 +2203,-1.0000000000 +2204,-1.0000000000 +2205,-1.0000000000 +2206,-1.0000000000 +2207,-1.0000000000 +2208,-1.0000000000 +2209,-1.0000000000 +2210,-1.0000000000 +2211,-1.0000000000 +2212,-1.0000000000 +2213,-1.0000000000 +2214,-1.0000000000 +2215,-1.0000000000 +2216,-1.0000000000 +2217,-1.0000000000 +2218,-1.0000000000 +2219,-1.0000000000 +2220,-1.0000000000 +2221,-1.0000000000 +2222,-1.0000000000 +2223,-1.0000000000 +2224,-1.0000000000 +2225,-1.0000000000 +2226,-1.0000000000 +2227,-1.0000000000 +2428,-1.0000000000 +2429,-1.0000000000 +2430,-1.0000000000 +2431,-1.0000000000 +2432,-1.0000000000 +2433,-1.0000000000 +2434,-1.0000000000 +2435,-1.0000000000 +2436,-1.0000000000 +2437,-1.0000000000 +2438,-1.0000000000 +2439,-1.0000000000 +2440,-1.0000000000 +2441,-1.0000000000 +2442,-1.0000000000 +2443,-1.0000000000 +2444,-1.0000000000 +2445,-1.0000000000 +2446,-1.0000000000 +2447,-1.0000000000 +2448,-1.0000000000 +2449,-1.0000000000 +2450,-1.0000000000 +2451,-1.0000000000 +2452,-1.0000000000 +2453,-1.0000000000 +2454,-1.0000000000 +2455,-1.0000000000 +2456,-1.0000000000 +2457,-1.0000000000 +2458,-1.0000000000 +2459,-1.0000000000 +2460,-1.0000000000 +2461,-1.0000000000 +2462,-1.0000000000 +2463,-1.0000000000 +2464,-1.0000000000 +2465,-1.0000000000 +2466,-1.0000000000 +2467,-1.0000000000 +2468,-1.0000000000 +2469,-1.0000000000 +2470,-1.0000000000 +2471,-1.0000000000 +2472,-1.0000000000 +2473,-1.0000000000 +2474,-1.0000000000 +2475,-1.0000000000 +2476,-1.0000000000 +2477,-1.0000000000 +2598,-1.0000000000 +2599,-1.0000000000 +2600,-1.0000000000 +2601,-1.0000000000 +2602,-1.0000000000 +2603,-1.0000000000 +2604,-1.0000000000 +2605,-1.0000000000 +2606,-1.0000000000 +2607,-1.0000000000 +2648,-1.0000000000 +2649,-1.0000000000 +2650,-1.0000000000 +2651,-1.0000000000 +2652,-1.0000000000 +2653,-1.0000000000 +2654,-1.0000000000 +2655,-1.0000000000 +2656,-1.0000000000 +2657,-1.0000000000 +0,0.000390625 +1,0.000390625 +2,0.000390625 +3,0.000390625 +4,0.000390625 +5,0.000390625 +6,0.000390625 +7,0.000390625 +8,0.000390625 +9,0.000390625 +10,0.000390625 +11,0.000390625 +12,0.000390625 +13,0.000390625 +14,0.000390625 +15,0.000390625 +16,0.000390625 +17,0.000390625 +18,0.000390625 +19,0.000390625 +20,0.000390625 +21,0.000390625 +22,0.000390625 +23,0.000390625 +24,0.000390625 +25,0.000390625 +26,0.000390625 +27,0.000390625 +28,0.000390625 +29,0.000390625 +30,0.000390625 +31,0.000390625 +32,0.000390625 +33,0.000390625 +34,0.000390625 +35,0.000390625 +36,0.000390625 +37,0.000390625 +38,0.000390625 +39,0.000390625 +40,0.000390625 +41,0.000390625 +42,0.000390625 +43,0.000390625 +44,0.000390625 +45,0.000390625 +46,0.000390625 +47,0.000390625 +48,0.000390625 +49,0.000390625 +50,0.000390625 +51,0.000390625 +52,0.000390625 +53,0.000390625 +54,0.000390625 +55,0.000390625 +56,0.000390625 +57,0.000390625 +58,0.000390625 +59,0.000390625 +60,0.000390625 +61,0.000390625 +62,0.000390625 +63,0.000390625 +64,0.000390625 +65,0.000390625 +66,0.000390625 +67,0.000390625 +68,0.000390625 +69,0.000390625 +70,0.000390625 +71,0.000390625 +72,0.000390625 +73,0.000390625 +74,0.000390625 +75,0.000390625 +76,0.000390625 +77,0.000390625 +78,0.000390625 +79,0.000390625 +80,0.000390625 +81,0.000390625 +82,0.000390625 +83,0.000390625 +84,0.000390625 +85,0.000390625 +86,0.000390625 +87,0.000390625 +88,0.000390625 +89,0.000390625 +90,0.000390625 +91,0.000390625 +92,0.000390625 +93,0.000390625 +94,0.000390625 +95,0.000390625 +96,0.000390625 +97,0.000390625 +98,0.000390625 +99,0.000390625 +100,0.000390625 +101,0.000390625 +102,0.000390625 +103,0.000390625 +104,0.000390625 +105,0.000390625 +106,0.000390625 +107,0.000390625 +108,0.000390625 +109,0.000390625 +110,0.000390625 +111,0.000390625 +112,0.000390625 +113,0.000390625 +114,0.000390625 +115,0.000390625 +116,0.000390625 +117,0.000390625 +118,0.000390625 +119,0.000390625 +120,0.000390625 +121,0.000390625 +122,0.000390625 +123,0.000390625 +124,0.000390625 +125,0.000390625 +126,0.000390625 +127,0.000390625 +128,0.000390625 +129,0.000390625 +130,0.000390625 +131,0.000390625 +132,0.000390625 +133,0.000390625 +134,0.000390625 +135,0.000390625 +136,0.000390625 +137,0.000390625 +138,0.000390625 +139,0.000390625 +140,0.000390625 +141,0.000390625 +142,0.000390625 +143,0.000390625 +144,0.000390625 +145,0.000390625 +146,0.000390625 +147,0.000390625 +148,0.000390625 +149,0.000390625 +150,0.000390625 +151,0.000390625 +152,0.000390625 +153,0.000390625 +154,0.000390625 +155,0.000390625 +156,0.000390625 +157,0.000390625 +158,0.000390625 +159,0.000390625 +160,0.000390625 +161,0.000390625 +162,0.000390625 +163,0.000390625 +164,0.000390625 +165,0.000390625 +166,0.000390625 +167,0.000390625 +168,0.000390625 +169,0.000390625 +170,0.000390625 +171,0.000390625 +172,0.000390625 +173,0.000390625 +174,0.000390625 +175,0.000390625 +176,0.000390625 +177,0.000390625 +178,0.000390625 +179,0.03176317401960784 +180,0.45137101715686273 +181,0.6239200367647059 +182,0.5023514093137255 +183,0.6278416053921568 +184,0.6239200367647059 +185,0.5023514093137255 +186,0.5023514093137255 +187,0.5023514093137255 +188,0.5023514093137255 +189,0.5023514093137255 +190,0.5023514093137255 +191,0.5023514093137255 +192,0.5023514093137255 +193,0.000390625 +194,0.000390625 +195,0.000390625 +196,0.000390625 +197,0.000390625 +198,0.000390625 +199,0.000390625 +200,0.000390625 +201,0.000390625 +202,0.000390625 +203,0.000390625 +204,0.000390625 +205,0.000390625 +206,0.000390625 +207,0.7729396446078431 +208,0.992547487745098 +209,0.992547487745098 +210,0.992547487745098 +211,0.996469056372549 +212,0.992547487745098 +213,0.992547487745098 +214,0.992547487745098 +215,0.992547487745098 +216,0.996469056372549 +217,0.992547487745098 +218,0.992547487745098 +219,0.984704350490196 +220,0.9219592524509803 +221,0.000390625 +222,0.000390625 +223,0.000390625 +224,0.000390625 +225,0.000390625 +226,0.000390625 +227,0.000390625 +228,0.000390625 +229,0.000390625 +230,0.000390625 +231,0.000390625 +232,0.000390625 +233,0.000390625 +234,0.10627297794117647 +235,0.9494102328431372 +236,0.992547487745098 +237,0.992547487745098 +238,0.992547487745098 +239,0.996469056372549 +240,0.992547487745098 +241,0.992547487745098 +242,0.992547487745098 +243,0.992547487745098 +244,0.996469056372549 +245,0.6592141544117647 +246,0.3337239583333333 +247,0.2631357230392157 +248,0.000390625 +249,0.000390625 +250,0.000390625 +251,0.000390625 +252,0.000390625 +253,0.000390625 +254,0.000390625 +255,0.000390625 +256,0.000390625 +257,0.000390625 +258,0.000390625 +259,0.000390625 +260,0.000390625 +261,0.10627297794117647 +262,0.7415670955882353 +263,0.996469056372549 +264,0.996469056372549 +265,0.996469056372549 +266,0.996469056372549 +267,1 +268,0.9337239583333333 +269,0.6592141544117647 +270,0.3337239583333333 +271,0.000390625 +272,0.000390625 +273,0.000390625 +274,0.000390625 +275,0.000390625 +276,0.000390625 +277,0.000390625 +278,0.000390625 +279,0.000390625 +280,0.000390625 +281,0.000390625 +282,0.000390625 +283,0.000390625 +284,0.000390625 +285,0.000390625 +286,0.000390625 +287,0.000390625 +288,0.000390625 +289,0.4356847426470588 +290,0.996469056372549 +291,0.992547487745098 +292,0.992547487745098 +293,0.992547487745098 +294,0.8631357230392157 +295,0.6396063112745097 +296,0.09450827205882353 +297,0.000390625 +298,0.000390625 +299,0.000390625 +300,0.000390625 +301,0.000390625 +302,0.000390625 +303,0.000390625 +304,0.000390625 +305,0.000390625 +306,0.000390625 +307,0.000390625 +308,0.000390625 +309,0.000390625 +310,0.000390625 +311,0.000390625 +312,0.000390625 +313,0.000390625 +314,0.000390625 +315,0.000390625 +316,0.000390625 +317,0.4827435661764706 +318,0.996469056372549 +319,0.992547487745098 +320,0.992547487745098 +321,0.992547487745098 +322,0.992547487745098 +323,0.996469056372549 +324,0.8631357230392157 +325,0.4984298406862745 +326,0.08274356617647059 +327,0.000390625 +328,0.000390625 +329,0.000390625 +330,0.000390625 +331,0.000390625 +332,0.000390625 +333,0.000390625 +334,0.000390625 +335,0.000390625 +336,0.000390625 +337,0.000390625 +338,0.000390625 +339,0.000390625 +340,0.000390625 +341,0.000390625 +342,0.000390625 +343,0.000390625 +344,0.000390625 +345,0.000390625 +346,0.44352787990196074 +347,0.9101945465686274 +348,0.9650965073529412 +349,0.992547487745098 +350,0.992547487745098 +351,0.996469056372549 +352,0.992547487745098 +353,0.992547487745098 +354,0.8749004289215686 +355,0.14941023284313726 +356,0.000390625 +357,0.000390625 +358,0.000390625 +359,0.000390625 +360,0.000390625 +361,0.000390625 +362,0.000390625 +363,0.000390625 +364,0.000390625 +365,0.000390625 +366,0.000390625 +367,0.000390625 +368,0.000390625 +369,0.000390625 +370,0.000390625 +371,0.000390625 +372,0.000390625 +373,0.000390625 +374,0.000390625 +375,0.06313572303921569 +376,0.1807827818627451 +377,0.31019454656862744 +378,0.6356847426470588 +379,0.6396063112745097 +380,0.9690180759803921 +381,0.992547487745098 +382,0.992547487745098 +383,0.8905867034313725 +384,0.3847043504901961 +385,0.000390625 +386,0.000390625 +387,0.000390625 +388,0.000390625 +389,0.000390625 +390,0.000390625 +391,0.000390625 +392,0.000390625 +393,0.000390625 +394,0.000390625 +395,0.000390625 +396,0.000390625 +397,0.000390625 +398,0.000390625 +399,0.000390625 +400,0.000390625 +401,0.000390625 +402,0.000390625 +403,0.000390625 +404,0.000390625 +405,0.000390625 +406,0.000390625 +407,0.000390625 +408,0.07882199754901961 +409,0.5729396446078431 +410,0.996469056372549 +411,0.996469056372549 +412,0.8945082720588236 +413,0.2513710171568627 +414,0.000390625 +415,0.000390625 +416,0.000390625 +417,0.000390625 +418,0.000390625 +419,0.000390625 +420,0.000390625 +421,0.000390625 +422,0.000390625 +423,0.000390625 +424,0.000390625 +425,0.000390625 +426,0.000390625 +427,0.000390625 +428,0.000390625 +429,0.000390625 +430,0.000390625 +431,0.000390625 +432,0.000390625 +433,0.000390625 +434,0.000390625 +435,0.000390625 +436,0.000390625 +437,0.012155330882352941 +438,0.5141161151960784 +439,0.992547487745098 +440,0.996469056372549 +441,0.8239200367647058 +442,0.03176317401960784 +443,0.000390625 +444,0.000390625 +445,0.000390625 +446,0.000390625 +447,0.000390625 +448,0.000390625 +449,0.000390625 +450,0.000390625 +451,0.000390625 +452,0.000390625 +453,0.000390625 +454,0.08274356617647059 +455,0.1454886642156863 +456,0.1454886642156863 +457,0.2709788602941176 +458,0.5023514093137255 +459,0.5023514093137255 +460,0.5023514093137255 +461,0.2199984681372549 +462,0.1454886642156863 +463,0.000390625 +464,0.000390625 +465,0.000390625 +466,0.0396063112745098 +467,0.8513710171568627 +468,0.996469056372549 +469,0.808233762254902 +470,0.0199984681372549 +471,0.000390625 +472,0.000390625 +473,0.000390625 +474,0.000390625 +475,0.000390625 +476,0.000390625 +477,0.000390625 +478,0.000390625 +479,0.000390625 +480,0.000390625 +481,0.5023514093137255 +482,0.9023514093137255 +483,0.992547487745098 +484,0.992547487745098 +485,0.992547487745098 +486,0.996469056372549 +487,0.992547487745098 +488,0.992547487745098 +489,0.992547487745098 +490,0.992547487745098 +491,0.5533318014705882 +492,0.05529258578431372 +493,0.000390625 +494,0.059214154411764704 +495,0.8317631740196079 +496,0.996469056372549 +497,0.7768612132352941 +498,0.000390625 +499,0.000390625 +500,0.000390625 +501,0.000390625 +502,0.000390625 +503,0.000390625 +504,0.000390625 +505,0.000390625 +506,0.000390625 +507,0.000390625 +508,0.000390625 +509,0.8945082720588236 +510,0.992547487745098 +511,0.992547487745098 +512,0.992547487745098 +513,0.992547487745098 +514,0.996469056372549 +515,0.992547487745098 +516,0.992547487745098 +517,0.992547487745098 +518,0.992547487745098 +519,0.996469056372549 +520,0.7533318014705882 +521,0.5337239583333333 +522,0.8317631740196079 +523,0.992547487745098 +524,0.996469056372549 +525,0.7768612132352941 +526,0.000390625 +527,0.000390625 +528,0.000390625 +529,0.000390625 +530,0.000390625 +531,0.000390625 +532,0.000390625 +533,0.000390625 +534,0.000390625 +535,0.000390625 +536,0.000390625 +537,1 +538,0.996469056372549 +539,0.996469056372549 +540,0.996469056372549 +541,0.996469056372549 +542,1 +543,0.996469056372549 +544,0.996469056372549 +545,0.996469056372549 +546,0.996469056372549 +547,1 +548,0.996469056372549 +549,0.996469056372549 +550,0.996469056372549 +551,0.996469056372549 +552,1 +553,0.45137101715686273 +554,0.000390625 +555,0.000390625 +556,0.000390625 +557,0.000390625 +558,0.000390625 +559,0.000390625 +560,0.000390625 +561,0.000390625 +562,0.000390625 +563,0.000390625 +564,0.000390625 +565,0.2984298406862745 +566,0.42392003676470585 +567,0.8356847426470588 +568,0.992547487745098 +569,0.992547487745098 +570,0.996469056372549 +571,0.992547487745098 +572,0.992547487745098 +573,0.992547487745098 +574,0.992547487745098 +575,0.996469056372549 +576,0.992547487745098 +577,0.992547487745098 +578,0.8984298406862745 +579,0.7768612132352941 +580,0.32588082107843136 +581,0.008233762254901961 +582,0.000390625 +583,0.000390625 +584,0.000390625 +585,0.000390625 +586,0.000390625 +587,0.000390625 +588,0.000390625 +589,0.000390625 +590,0.000390625 +591,0.000390625 +592,0.000390625 +593,0.000390625 +594,0.000390625 +595,0.07097886029411765 +596,0.2945082720588235 +597,0.4984298406862745 +598,0.4984298406862745 +599,0.4984298406862745 +600,0.4984298406862745 +601,0.4984298406862745 +602,0.4984298406862745 +603,0.4984298406862745 +604,0.4984298406862745 +605,0.44744944852941176 +606,0.08274356617647059 +607,0.000390625 +608,0.000390625 +609,0.000390625 +610,0.000390625 +611,0.000390625 +612,0.000390625 +613,0.000390625 +614,0.000390625 +615,0.000390625 +616,0.000390625 +617,0.000390625 +618,0.000390625 +619,0.000390625 +620,0.000390625 +621,0.000390625 +622,0.000390625 +623,0.000390625 +624,0.000390625 +625,0.000390625 +626,0.000390625 +627,0.000390625 +628,0.000390625 +629,0.000390625 +630,0.000390625 +631,0.000390625 +632,0.000390625 +633,0.000390625 +634,0.000390625 +635,0.000390625 +636,0.000390625 +637,0.000390625 +638,0.000390625 +639,0.000390625 +640,0.000390625 +641,0.000390625 +642,0.000390625 +643,0.000390625 +644,0.000390625 +645,0.000390625 +646,0.000390625 +647,0.000390625 +648,0.000390625 +649,0.000390625 +650,0.000390625 +651,0.000390625 +652,0.000390625 +653,0.000390625 +654,0.000390625 +655,0.000390625 +656,0.000390625 +657,0.000390625 +658,0.000390625 +659,0.000390625 +660,0.000390625 +661,0.000390625 +662,0.000390625 +663,0.000390625 +664,0.000390625 +665,0.000390625 +666,0.000390625 +667,0.000390625 +668,0.000390625 +669,0.000390625 +670,0.000390625 +671,0.000390625 +672,0.000390625 +673,0.000390625 +674,0.000390625 +675,0.000390625 +676,0.000390625 +677,0.000390625 +678,0.000390625 +679,0.000390625 +680,0.000390625 +681,0.000390625 +682,0.000390625 +683,0.000390625 +684,0.000390625 +685,0.000390625 +686,0.000390625 +687,0.000390625 +688,0.000390625 +689,0.000390625 +690,0.000390625 +691,0.000390625 +692,0.000390625 +693,0.000390625 +694,0.000390625 +695,0.000390625 +696,0.000390625 +697,0.000390625 +698,0.000390625 +699,0.000390625 +700,0.000390625 +701,0.000390625 +702,0.000390625 +703,0.000390625 +704,0.000390625 +705,0.000390625 +706,0.000390625 +707,0.000390625 +708,0.000390625 +709,0.000390625 +710,0.000390625 +711,0.000390625 +712,0.000390625 +713,0.000390625 +714,0.000390625 +715,0.000390625 +716,0.000390625 +717,0.000390625 +718,0.000390625 +719,0.000390625 +720,0.000390625 +721,0.000390625 +722,0.000390625 +723,0.000390625 +724,0.000390625 +725,0.000390625 +726,0.000390625 +727,0.000390625 +728,0.000390625 +729,0.000390625 +730,0.000390625 +731,0.000390625 +732,0.000390625 +733,0.000390625 +734,0.000390625 +735,0.000390625 +736,0.000390625 +737,0.000390625 +738,0.000390625 +739,0.000390625 +740,0.000390625 +741,0.000390625 +742,0.000390625 +743,0.000390625 +744,0.000390625 +745,0.000390625 +746,0.000390625 +747,0.000390625 +748,0.000390625 +749,0.000390625 +750,0.000390625 +751,0.000390625 +752,0.000390625 +753,0.000390625 +754,0.000390625 +755,0.000390625 +756,0.000390625 +757,0.000390625 +758,0.000390625 +759,0.000390625 +760,0.000390625 +761,0.000390625 +762,0.000390625 +763,0.000390625 +764,0.000390625 +765,0.000390625 +766,0.000390625 +767,0.000390625 +768,0.000390625 +769,0.000390625 +770,0.000390625 +771,0.000390625 +772,0.000390625 +773,0.000390625 +774,0.000390625 +775,0.000390625 +776,0.000390625 +777,0.000390625 +778,0.000390625 +779,0.000390625 +780,0.000390625 +781,0.000390625 +782,0.000390625 +783,0.000390625 +1678,1.0000000000 +1679,1.0000000000 +1680,1.0000000000 +1681,1.0000000000 +1682,1.0000000000 +1683,1.0000000000 +1684,1.0000000000 +1685,1.0000000000 +1686,1.0000000000 +1687,1.0000000000 +1688,1.0000000000 +1689,1.0000000000 +1690,1.0000000000 +1691,1.0000000000 +1692,1.0000000000 +1693,1.0000000000 +1694,1.0000000000 +1695,1.0000000000 +1696,1.0000000000 +1697,1.0000000000 +1698,1.0000000000 +1699,1.0000000000 +1700,1.0000000000 +1701,1.0000000000 +1702,1.0000000000 +1703,1.0000000000 +1704,1.0000000000 +1705,1.0000000000 +1706,1.0000000000 +1707,1.0000000000 +1708,1.0000000000 +1709,1.0000000000 +1710,1.0000000000 +1711,1.0000000000 +1712,1.0000000000 +1713,1.0000000000 +1714,1.0000000000 +1715,1.0000000000 +1716,1.0000000000 +1717,1.0000000000 +1718,1.0000000000 +1719,1.0000000000 +1720,1.0000000000 +1721,1.0000000000 +1722,1.0000000000 +1723,1.0000000000 +1724,1.0000000000 +1725,1.0000000000 +1726,1.0000000000 +1727,1.0000000000 +1928,1.0000000000 +1929,1.0000000000 +1930,1.0000000000 +1931,1.0000000000 +1932,1.0000000000 +1933,1.0000000000 +1934,1.0000000000 +1935,1.0000000000 +1936,1.0000000000 +1937,1.0000000000 +1938,1.0000000000 +1939,1.0000000000 +1940,1.0000000000 +1941,1.0000000000 +1942,1.0000000000 +1943,1.0000000000 +1944,1.0000000000 +1945,1.0000000000 +1946,1.0000000000 +1947,1.0000000000 +1948,1.0000000000 +1949,1.0000000000 +1950,1.0000000000 +1951,1.0000000000 +1952,1.0000000000 +1953,1.0000000000 +1954,1.0000000000 +1955,1.0000000000 +1956,1.0000000000 +1957,1.0000000000 +1958,1.0000000000 +1959,1.0000000000 +1960,1.0000000000 +1961,1.0000000000 +1962,1.0000000000 +1963,1.0000000000 +1964,1.0000000000 +1965,1.0000000000 +1966,1.0000000000 +1967,1.0000000000 +1968,1.0000000000 +1969,1.0000000000 +1970,1.0000000000 +1971,1.0000000000 +1972,1.0000000000 +1973,1.0000000000 +1974,1.0000000000 +1975,1.0000000000 +1976,1.0000000000 +1977,1.0000000000 +2178,1.0000000000 +2179,1.0000000000 +2180,1.0000000000 +2181,1.0000000000 +2182,1.0000000000 +2183,1.0000000000 +2184,1.0000000000 +2185,1.0000000000 +2186,1.0000000000 +2187,1.0000000000 +2188,1.0000000000 +2189,1.0000000000 +2190,1.0000000000 +2191,1.0000000000 +2192,1.0000000000 +2193,1.0000000000 +2194,1.0000000000 +2195,1.0000000000 +2196,1.0000000000 +2197,1.0000000000 +2198,1.0000000000 +2199,1.0000000000 +2200,1.0000000000 +2201,1.0000000000 +2202,1.0000000000 +2203,1.0000000000 +2204,1.0000000000 +2205,1.0000000000 +2206,1.0000000000 +2207,1.0000000000 +2208,1.0000000000 +2209,1.0000000000 +2210,1.0000000000 +2211,1.0000000000 +2212,1.0000000000 +2213,1.0000000000 +2214,1.0000000000 +2215,1.0000000000 +2216,1.0000000000 +2217,1.0000000000 +2218,1.0000000000 +2219,1.0000000000 +2220,1.0000000000 +2221,1.0000000000 +2222,1.0000000000 +2223,1.0000000000 +2224,1.0000000000 +2225,1.0000000000 +2226,1.0000000000 +2227,1.0000000000 +2428,1.0000000000 +2429,1.0000000000 +2430,1.0000000000 +2431,1.0000000000 +2432,1.0000000000 +2433,1.0000000000 +2434,1.0000000000 +2435,1.0000000000 +2436,1.0000000000 +2437,1.0000000000 +2438,1.0000000000 +2439,1.0000000000 +2440,1.0000000000 +2441,1.0000000000 +2442,1.0000000000 +2443,1.0000000000 +2444,1.0000000000 +2445,1.0000000000 +2446,1.0000000000 +2447,1.0000000000 +2448,1.0000000000 +2449,1.0000000000 +2450,1.0000000000 +2451,1.0000000000 +2452,1.0000000000 +2453,1.0000000000 +2454,1.0000000000 +2455,1.0000000000 +2456,1.0000000000 +2457,1.0000000000 +2458,1.0000000000 +2459,1.0000000000 +2460,1.0000000000 +2461,1.0000000000 +2462,1.0000000000 +2463,1.0000000000 +2464,1.0000000000 +2465,1.0000000000 +2466,1.0000000000 +2467,1.0000000000 +2468,1.0000000000 +2469,1.0000000000 +2470,1.0000000000 +2471,1.0000000000 +2472,1.0000000000 +2473,1.0000000000 +2474,1.0000000000 +2475,1.0000000000 +2476,1.0000000000 +2477,1.0000000000 +2598,1.0000000000 +2599,1.0000000000 +2600,1.0000000000 +2601,1.0000000000 +2602,1.0000000000 +2603,1.0000000000 +2604,1.0000000000 +2605,1.0000000000 +2606,1.0000000000 +2607,1.0000000000 +2648,1.0000000000 +2649,1.0000000000 +2650,1.0000000000 +2651,1.0000000000 +2652,1.0000000000 +2653,1.0000000000 +2654,1.0000000000 +2655,1.0000000000 +2656,1.0000000000 +2657,1.0000000000 +0,0,0.0002079358,0,31.6227760315,794,-1.0000000000 +1,0,-0.0002583992,1,31.6227760315,795,-1.0000000000 +2,0,-0.0003494073,2,31.6227760315,796,-1.0000000000 +3,0,0.0003390284,3,31.6227760315,797,-1.0000000000 +4,0,-0.0003349786,4,31.6227760315,798,-1.0000000000 +5,0,0.0001279500,5,31.6227760315,799,-1.0000000000 +6,0,0.0001763496,6,31.6227760315,800,-1.0000000000 +7,0,-0.0001354526,7,31.6227760315,801,-1.0000000000 +8,0,0.0003771311,8,31.6227760315,802,-1.0000000000 +9,0,0.0003647278,9,31.6227760315,803,-1.0000000000 +10,0,-0.0002333800,10,31.6227760315,804,-1.0000000000 +11,0,-0.0000413705,11,31.6227760315,805,-1.0000000000 +12,0,0.0000488727,12,31.6227760315,806,-1.0000000000 +13,0,-0.0002826663,13,31.6227760315,807,-1.0000000000 +14,0,0.0006292058,14,31.6227760315,808,-1.0000000000 +15,0,-0.0001313380,15,31.6227760315,809,-1.0000000000 +16,0,0.0000416177,16,31.6227760315,810,-1.0000000000 +17,0,0.0003893470,17,31.6227760315,811,-1.0000000000 +18,0,-0.0002245790,18,31.6227760315,812,-1.0000000000 +19,0,0.0003470236,19,31.6227760315,813,-1.0000000000 +20,0,0.0003778675,20,31.6227760315,814,-1.0000000000 +21,0,0.0003159090,21,31.6227760315,815,-1.0000000000 +22,0,-0.0004873525,22,31.6227760315,816,-1.0000000000 +23,0,0.0005008946,23,31.6227760315,817,-1.0000000000 +24,0,0.0000937252,24,31.6227760315,818,-1.0000000000 +25,0,0.0003262460,25,31.6227760315,819,-1.0000000000 +26,0,0.0002706744,26,31.6227760315,820,-1.0000000000 +27,0,0.0000455972,27,31.6227760315,821,-1.0000000000 +28,0,0.0002516698,28,31.6227760315,822,-1.0000000000 +29,0,-0.0003327862,29,31.6227760315,823,-1.0000000000 +30,0,-0.0002052352,30,31.6227760315,824,-1.0000000000 +31,0,-0.0001236253,31,31.6227760315,825,-1.0000000000 +32,0,0.0000176382,32,31.6227760315,826,-1.0000000000 +33,0,0.0003008715,33,31.6227760315,827,-1.0000000000 +34,0,0.0006836313,34,31.6220626831,828,-1.0000000000 +35,0,-0.0001673320,35,31.6206951141,829,-1.0000000000 +36,0,0.0000483380,36,31.6100864410,830,-1.0000000000 +37,0,0.0004174529,37,31.5675048828,831,-1.0000000000 +38,0,0.0002150589,38,31.6203975677,832,-1.0000000000 +39,0,0.0002132856,39,31.6220436096,833,-1.0000000000 +40,0,-0.0000718096,40,31.6225090027,834,-1.0000000000 +41,0,0.0172859076,41,28.4602222443,835,-1.0000000000 +42,0,0.0323503427,42,19.9615135193,836,-1.0000000000 +43,0,0.0184166469,43,28.4836978912,837,-1.0000000000 +44,0,0.0017066360,44,30.7574901581,838,-1.0000000000 +45,0,0.0020751858,45,31.0119667053,839,-1.0000000000 +46,0,0.0014388275,46,31.2325229645,840,-1.0000000000 +47,0,0.0054573664,47,29.7056388855,841,-1.0000000000 +48,0,0.0080556581,48,28.2757072449,842,-1.0000000000 +49,0,0.0014539692,49,31.2102050781,843,-1.0000000000 +50,0,0.0007705564,50,31.6227760315,844,-1.0000000000 +51,0,0.0005107099,51,31.6227760315,845,-1.0000000000 +52,0,0.0002250048,52,31.6227760315,846,-1.0000000000 +53,0,-0.0005018546,53,31.6227760315,847,-1.0000000000 +54,0,0.0004192109,54,31.6227760315,848,-1.0000000000 +55,0,0.0000303526,55,31.6227760315,849,-1.0000000000 +56,0,0.0002229478,56,31.6227760315,850,-1.0000000000 +57,0,0.0004961172,57,31.6227760315,851,-1.0000000000 +58,0,0.0006572621,58,31.6227760315,852,-1.0000000000 +59,0,-0.0001420256,59,31.6227760315,853,-1.0000000000 +60,0,0.0006846254,60,31.6227760315,854,-1.0000000000 +61,0,-0.0001651450,61,31.6227741241,855,-1.0000000000 +62,0,0.0004542769,62,31.5634021759,856,-1.0000000000 +63,0,0.0031030406,63,31.1031246185,857,-1.0000000000 +64,0,0.0280330572,64,25.3654117584,858,-1.0000000000 +65,0,0.0385130979,65,19.3904418945,859,-1.0000000000 +66,0,0.0384126604,66,21.4482326508,860,-1.0000000000 +67,0,0.0882032439,67,15.1026964188,861,-1.0000000000 +68,0,0.1183664203,68,9.6312952042,862,-1.0000000000 +69,0,0.1238476709,69,8.9555406570,863,-1.0000000000 +70,0,0.1293599755,70,8.7221813202,864,-1.0000000000 +71,0,0.1229867041,71,10.2591333389,865,-1.0000000000 +72,0,0.1245075017,72,9.6111621857,866,-1.0000000000 +73,0,0.1211254299,73,9.3289775848,867,-1.0000000000 +74,0,0.1249790415,74,11.7950582504,868,-1.0000000000 +75,0,0.1247130036,75,9.8608808517,869,-1.0000000000 +76,0,0.1161369383,76,9.3387050629,870,-1.0000000000 +77,0,0.0982553512,77,11.3408269882,871,-1.0000000000 +78,0,0.0534446128,78,22.4022750854,872,-1.0000000000 +79,0,0.0021463588,79,30.7039184570,873,-1.0000000000 +80,0,0.0000134101,80,31.5947437286,874,-1.0000000000 +81,0,0.0001864402,81,31.6227760315,875,-1.0000000000 +82,0,-0.0004649443,82,31.6227760315,876,-1.0000000000 +83,0,-0.0001222452,83,31.6227760315,877,-1.0000000000 +84,0,-0.0001723979,84,31.6227760315,878,-1.0000000000 +85,0,0.0000698144,85,31.6227760315,879,-1.0000000000 +86,0,-0.0002891293,86,31.6227760315,880,-1.0000000000 +87,0,-0.0000747551,87,31.6227760315,881,-1.0000000000 +88,0,-0.0003064532,88,31.6227760315,882,-1.0000000000 +89,0,-0.0003921269,89,31.6218929291,883,-1.0000000000 +90,0,0.0089464234,90,30.5839347839,884,-1.0000000000 +91,0,0.0684941635,91,15.9870204926,885,-1.0000000000 +92,0,0.0888411775,92,12.1635036469,886,-1.0000000000 +93,0,0.0983949155,93,10.6395206451,887,-1.0000000000 +94,0,0.1431194246,94,8.6441278458,888,-1.0000000000 +95,0,0.1838538200,95,7.2239866257,889,-1.0000000000 +96,0,0.2103057802,96,6.1776309013,890,-1.0000000000 +97,0,0.2509822547,97,5.7684159279,891,-1.0000000000 +98,0,0.2644919157,98,5.0066733360,892,-1.0000000000 +99,0,0.2750744522,99,4.9207816124,893,-1.0000000000 +100,0,0.2888795733,100,4.8772101402,894,-1.0000000000 +101,0,0.2598167956,101,5.0838270187,895,-1.0000000000 +102,0,0.2218356729,102,6.0849299431,896,-1.0000000000 +103,0,0.1860902607,103,6.2116336823,897,-1.0000000000 +104,0,0.1604204327,104,7.4374589920,898,-1.0000000000 +105,0,0.1235561371,105,8.7856378555,899,-1.0000000000 +106,0,0.0918275937,106,17.3154182434,900,-1.0000000000 +107,0,0.0287123173,107,21.9835720062,901,-1.0000000000 +108,0,0.0145352446,108,27.4179573059,902,-1.0000000000 +109,0,0.0012948827,109,31.5514335632,903,-1.0000000000 +110,0,0.0000999159,110,31.6227760315,904,-1.0000000000 +111,0,0.0002175442,111,31.6227760315,905,-1.0000000000 +112,0,0.0002331373,112,31.6227760315,906,-1.0000000000 +113,0,0.0001173035,113,31.6223812103,907,-1.0000000000 +114,0,-0.0003774550,114,31.6227760315,908,-1.0000000000 +115,0,0.0000420564,115,31.6210212708,909,-1.0000000000 +116,0,-0.0008032957,116,31.6226425171,910,-1.0000000000 +117,0,0.0138732493,117,29.9801807404,911,-1.0000000000 +118,0,0.0654990301,118,16.7729282379,912,-1.0000000000 +119,0,0.1190289780,119,9.7614259720,913,-1.0000000000 +120,0,0.1674656868,120,8.2633466721,914,-1.0000000000 +121,0,0.2256945670,121,6.8788871765,915,-1.0000000000 +122,0,0.3065535724,122,4.5844759941,916,-1.0000000000 +123,0,0.3674325645,123,3.8042459488,917,-1.0000000000 +124,0,0.4210087359,124,3.4374401569,918,-1.0000000000 +125,0,0.4700816572,125,3.2917919159,919,-1.0000000000 +126,0,0.5004815459,126,3.0672521591,920,-1.0000000000 +127,0,0.5274384022,127,2.9202229977,921,-1.0000000000 +128,0,0.5072142482,128,2.9477114677,922,-1.0000000000 +129,0,0.4729066789,129,3.1703896523,923,-1.0000000000 +130,0,0.4116190672,130,3.6987824440,924,-1.0000000000 +131,0,0.3370232880,131,4.3520565033,925,-1.0000000000 +132,0,0.2831015885,132,5.0502543449,926,-1.0000000000 +133,0,0.2085866928,133,6.4650530815,927,-1.0000000000 +134,0,0.1565031260,134,8.8168840408,928,-1.0000000000 +135,0,0.1231054738,135,11.4613828659,929,-1.0000000000 +136,0,0.0485384166,136,19.9370212555,930,-1.0000000000 +137,0,0.0126857972,137,29.6892795563,931,-1.0000000000 +138,0,0.0004422957,138,31.6210861206,932,-1.0000000000 +139,0,0.0000184700,139,31.6227760315,933,-1.0000000000 +140,0,0.0001403502,140,31.6227760315,934,-1.0000000000 +141,0,0.0000654595,141,31.6227760315,935,-1.0000000000 +142,0,0.0000607840,142,31.6227760315,936,-1.0000000000 +143,0,-0.0005186090,143,31.6206760406,937,-1.0000000000 +144,0,0.0214564912,144,26.3024940491,938,-1.0000000000 +145,0,0.0900339484,145,14.6895189285,939,-1.0000000000 +146,0,0.1642016321,146,9.0687723160,940,-1.0000000000 +147,0,0.2214516252,147,6.4044857025,941,-1.0000000000 +148,0,0.2872681916,148,4.8680295944,942,-1.0000000000 +149,0,0.3685337305,149,3.8092288971,943,-1.0000000000 +150,0,0.4711169004,150,3.1616506577,944,-1.0000000000 +151,0,0.5671803355,151,2.7714066505,945,-1.0000000000 +152,0,0.6571742296,152,2.5546631813,946,-1.0000000000 +153,0,0.7373042703,153,2.4611840248,947,-1.0000000000 +154,0,0.8158724904,154,2.4277541637,948,-1.0000000000 +155,0,0.8480603099,155,2.3826928139,949,-1.0000000000 +156,0,0.8326759934,156,2.4234437943,950,-1.0000000000 +157,0,0.7751068473,157,2.4501872063,951,-1.0000000000 +158,0,0.6702090502,158,2.6260018349,952,-1.0000000000 +159,0,0.5534479022,159,2.8712155819,953,-1.0000000000 +160,0,0.4441415370,160,3.4023094177,954,-1.0000000000 +161,0,0.3377563059,161,4.1463561058,955,-1.0000000000 +162,0,0.2536413372,162,5.1094250679,956,-1.0000000000 +163,0,0.2015810758,163,6.4431381226,957,-1.0000000000 +164,0,0.1061781123,164,11.9039440155,958,-1.0000000000 +165,0,0.0474606641,165,19.9438781738,959,-1.0000000000 +166,0,0.0081077237,166,30.3990650177,960,-1.0000000000 +167,0,-0.0000006077,167,31.6227760315,961,-1.0000000000 +168,0,0.0000963342,168,31.6227760315,962,-1.0000000000 +169,0,0.0002636870,169,31.6205902100,963,-1.0000000000 +170,0,-0.0003005093,170,31.6178646088,964,-1.0000000000 +171,0,0.0115523944,171,29.6655826569,965,-1.0000000000 +172,0,0.0760080963,172,16.1452503204,966,-1.0000000000 +173,0,0.1558186561,173,8.4764928818,967,-1.0000000000 +174,0,0.2341038138,174,5.7819528580,968,-1.0000000000 +175,0,0.3126183152,175,4.5563411713,969,-1.0000000000 +176,0,0.4008408189,176,3.6441061497,970,-1.0000000000 +177,0,0.5085703731,177,3.0180699825,971,-1.0000000000 +178,0,0.6294556856,178,2.6308863163,972,-1.0000000000 +179,0,0.7481387258,179,2.4874277115,973,-1.0000000000 +180,0,0.8824155331,180,2.3697898388,974,-1.0000000000 +181,0,0.9917500019,181,2.3214147091,975,-1.0000000000 +182,0,1.0729775429,182,2.3268144131,976,-1.0000000000 +183,0,1.1049280167,183,2.3041279316,977,-1.0000000000 +184,0,1.0722656250,184,2.2890098095,978,-1.0000000000 +185,0,0.9774256349,185,2.2437229156,979,-1.0000000000 +186,0,0.8916051388,186,2.3827562332,980,-1.0000000000 +187,0,0.7057592273,187,2.4946858883,981,-1.0000000000 +188,0,0.5681874156,188,2.8479213715,982,-1.0000000000 +189,0,0.4187501967,189,3.4652247429,983,-1.0000000000 +190,0,0.3286397457,190,4.2516651154,984,-1.0000000000 +191,0,0.2453264892,191,5.6235122681,985,-1.0000000000 +192,0,0.1493728757,192,9.1089239120,986,-1.0000000000 +193,0,0.1055997238,193,12.5630216599,987,-1.0000000000 +194,0,0.0577709414,194,17.1816596985,988,-1.0000000000 +195,0,0.0001650765,195,31.6227550507,989,-1.0000000000 +196,0,0.0001360730,196,31.6227760315,990,-1.0000000000 +197,0,0.0286665205,197,25.7242279053,991,-1.0000000000 +198,0,0.0185648240,198,29.1938343048,992,-1.0000000000 +199,0,0.0463312007,199,17.7456054688,993,-1.0000000000 +200,0,0.1100403145,200,11.7338247299,994,-1.0000000000 +201,0,0.1908266991,201,6.9581613541,995,-1.0000000000 +202,0,0.3026175797,202,4.6381225586,996,-1.0000000000 +203,0,0.3958640099,203,3.6027181149,997,-1.0000000000 +204,0,0.4933891296,204,3.0626730919,998,-1.0000000000 +205,0,0.6277903318,205,2.6963646412,999,-1.0000000000 +206,0,0.7647606730,206,2.4716770649,1000,-1.0000000000 +207,0,0.8989660740,207,2.4109206200,1001,-1.0000000000 +208,0,1.0284951925,208,2.3586513996,1002,-1.0000000000 +209,0,1.0996196270,209,2.3010489941,1003,-1.0000000000 +210,0,1.1790245771,210,2.3166940212,1004,-1.0000000000 +211,0,1.2310339212,211,2.3528943062,1005,-1.0000000000 +212,0,1.2175028324,212,2.3542003632,1006,-1.0000000000 +213,0,1.1302845478,213,2.3178131580,1007,-1.0000000000 +214,0,1.0352075100,214,2.3592703342,1008,-1.0000000000 +215,0,0.8394643068,215,2.3962028027,1009,-1.0000000000 +216,0,0.6509366035,216,2.7720828056,1010,-1.0000000000 +217,0,0.4646136165,217,3.1780204773,1011,-1.0000000000 +218,0,0.3690448403,218,3.7357251644,1012,-1.0000000000 +219,0,0.2772509754,219,4.9801034927,1013,-1.0000000000 +220,0,0.1976015866,220,6.7223825455,1014,-1.0000000000 +221,0,0.1370779425,221,9.2390718460,1015,-1.0000000000 +222,0,0.0497566685,222,18.3531360626,1016,-1.0000000000 +223,0,-0.0003765492,223,31.6227493286,1017,-1.0000000000 +224,0,-0.0000978563,224,31.6227760315,1018,-1.0000000000 +225,0,0.0055302819,225,29.4070453644,1019,-1.0000000000 +226,0,0.0239453297,226,26.8379230499,1020,-1.0000000000 +227,0,0.0624308847,227,17.4192199707,1021,-1.0000000000 +228,0,0.1402922124,228,9.4714317322,1022,-1.0000000000 +229,0,0.2283508927,229,6.0654091835,1023,-1.0000000000 +230,0,0.3311395645,230,4.1958436966,1024,-1.0000000000 +231,0,0.4342799783,231,3.2883524895,1025,-1.0000000000 +232,0,0.5590006709,232,2.8224635124,1026,-1.0000000000 +233,0,0.7316516638,233,2.5400061607,1027,-1.0000000000 +234,0,0.8548274636,234,2.4144558907,1028,-1.0000000000 +235,0,0.9891402721,235,2.3530962467,1029,-1.0000000000 +236,0,1.0502716303,236,2.3016290665,1030,-1.0000000000 +237,0,1.0607392788,237,2.2903811932,1031,-1.0000000000 +238,0,1.1183186769,238,2.3235101700,1032,-1.0000000000 +239,0,1.1194092035,239,2.3126912117,1033,-1.0000000000 +240,0,1.1294481754,240,2.3333547115,1034,-1.0000000000 +241,0,1.1141145229,241,2.3193163872,1035,-1.0000000000 +242,0,1.0437884331,242,2.2823159695,1036,-1.0000000000 +243,0,0.8947256804,243,2.3181655407,1037,-1.0000000000 +244,0,0.7067958117,244,2.5579893589,1038,-1.0000000000 +245,0,0.5081296563,245,3.0765430927,1039,-1.0000000000 +246,0,0.3798761666,246,3.6714072227,1040,-1.0000000000 +247,0,0.2857289016,247,4.7601342201,1041,-1.0000000000 +248,0,0.2004447579,248,6.0894117355,1042,-1.0000000000 +249,0,0.1385634840,249,9.3406229019,1043,-1.0000000000 +250,0,0.0403848663,250,19.1417312622,1044,-1.0000000000 +251,0,0.0001982165,251,31.6227760315,1045,-1.0000000000 +252,0,0.0001750147,252,31.6227760315,1046,-1.0000000000 +253,0,0.0042383769,253,30.0029430389,1047,-1.0000000000 +254,0,0.0337815769,254,21.3715801239,1048,-1.0000000000 +255,0,0.0844024718,255,14.8542079926,1049,-1.0000000000 +256,0,0.1610622257,256,7.5341968536,1050,-1.0000000000 +257,0,0.2227348387,257,5.6300301552,1051,-1.0000000000 +258,0,0.3526701033,258,3.9894003868,1052,-1.0000000000 +259,0,0.4723548591,259,3.1466460228,1053,-1.0000000000 +260,0,0.6160907149,260,2.7099738121,1054,-1.0000000000 +261,0,0.7912367582,261,2.4634957314,1055,-1.0000000000 +262,0,0.9398992062,262,2.3564286232,1056,-1.0000000000 +263,0,1.0118169785,263,2.2864329815,1057,-1.0000000000 +264,0,0.9678423405,264,2.3070170879,1058,-1.0000000000 +265,0,0.9376413226,265,2.3450162411,1059,-1.0000000000 +266,0,0.9355269670,266,2.3803303242,1060,-1.0000000000 +267,0,0.9543191195,267,2.3556554317,1061,-1.0000000000 +268,0,1.0108853579,268,2.3408815861,1062,-1.0000000000 +269,0,1.0471606255,269,2.3146529198,1063,-1.0000000000 +270,0,0.9970059395,270,2.2666883469,1064,-1.0000000000 +271,0,0.8818715811,271,2.3353953362,1065,-1.0000000000 +272,0,0.6957759261,272,2.5611574650,1066,-1.0000000000 +273,0,0.5319196582,273,3.0077891350,1067,-1.0000000000 +274,0,0.3815186620,274,3.6669015884,1068,-1.0000000000 +275,0,0.2636581063,275,5.1261324883,1069,-1.0000000000 +276,0,0.1597977132,276,8.1884031296,1070,-1.0000000000 +277,0,0.0801797807,277,14.1901311874,1071,-1.0000000000 +278,0,0.0370516144,278,20.5537090302,1072,-1.0000000000 +279,0,-0.0004002613,279,31.6050453186,1073,-1.0000000000 +280,0,-0.0003776760,280,31.6227111816,1074,-1.0000000000 +281,0,0.0021100610,281,31.5973281860,1075,-1.0000000000 +282,0,0.0257851910,282,26.2151908875,1076,-1.0000000000 +283,0,0.0611026809,283,17.1719360352,1077,-1.0000000000 +284,0,0.1393538266,284,8.7866668701,1078,-1.0000000000 +285,0,0.2184684724,285,6.0777459145,1079,-1.0000000000 +286,0,0.3355731368,286,4.2265377045,1080,-1.0000000000 +287,0,0.4826321006,287,3.1534481049,1081,-1.0000000000 +288,0,0.6489428878,288,2.6726737022,1082,-1.0000000000 +289,0,0.8263921738,289,2.3904621601,1083,-1.0000000000 +290,0,0.9376775622,290,2.3048274517,1084,-1.0000000000 +291,0,0.9587321281,291,2.3109583855,1085,-1.0000000000 +292,0,0.8675266504,292,2.3774199486,1086,-1.0000000000 +293,0,0.8094529510,293,2.5560112000,1087,-1.0000000000 +294,0,0.7863086462,294,2.5117721558,1088,-1.0000000000 +295,0,0.8640347719,295,2.3969352245,1089,-1.0000000000 +296,0,0.9173959494,296,2.3281571865,1090,-1.0000000000 +297,0,0.9688491821,297,2.3375737667,1091,-1.0000000000 +298,0,0.9456661344,298,2.3412094116,1092,-1.0000000000 +299,0,0.8205282092,299,2.3724005222,1093,-1.0000000000 +300,0,0.6771087646,300,2.5506916046,1094,-1.0000000000 +301,0,0.5108327866,301,2.9238371849,1095,-1.0000000000 +302,0,0.3787623048,302,3.7161893845,1096,-1.0000000000 +303,0,0.2699432671,303,5.4588193893,1097,-1.0000000000 +304,0,0.1464111656,304,10.0295314789,1098,-1.0000000000 +305,0,0.0792720169,305,16.0952014923,1099,-1.0000000000 +306,0,0.0059705833,306,31.2058010101,1100,-1.0000000000 +307,0,0.0004632693,307,31.5308609009,1101,-1.0000000000 +308,0,0.0043669338,308,30.6051616669,1102,-1.0000000000 +309,0,0.0063748998,309,29.8326950073,1103,-1.0000000000 +310,0,0.0159165747,310,28.5636730194,1104,-1.0000000000 +311,0,0.0448154770,311,20.4961643219,1105,-1.0000000000 +312,0,0.1235546991,312,10.9966354370,1106,-1.0000000000 +313,0,0.2231135815,313,6.1386961937,1107,-1.0000000000 +314,0,0.3377698064,314,4.2937984467,1108,-1.0000000000 +315,0,0.4951098561,315,3.1601424217,1109,-1.0000000000 +316,0,0.6553843021,316,2.6288735867,1110,-1.0000000000 +317,0,0.8079286218,317,2.3804090023,1111,-1.0000000000 +318,0,0.9239451885,318,2.3580360413,1112,-1.0000000000 +319,0,0.8803372979,319,2.3451416492,1113,-1.0000000000 +320,0,0.7921043038,320,2.4804413319,1114,-1.0000000000 +321,0,0.7499290109,321,2.5833342075,1115,-1.0000000000 +322,0,0.7702397704,322,2.4749538898,1116,-1.0000000000 +323,0,0.8655048609,323,2.3455898762,1117,-1.0000000000 +324,0,0.9550458789,324,2.3513987064,1118,-1.0000000000 +325,0,0.9986506104,325,2.3708248138,1119,-1.0000000000 +326,0,0.9347382188,326,2.3565754890,1120,-1.0000000000 +327,0,0.8275583982,327,2.4049818516,1121,-1.0000000000 +328,0,0.6480501294,328,2.6506526470,1122,-1.0000000000 +329,0,0.4856687486,329,3.0139541626,1123,-1.0000000000 +330,0,0.3583132625,330,3.9707667828,1124,-1.0000000000 +331,0,0.2453819662,331,5.6648898125,1125,-1.0000000000 +332,0,0.1315680295,332,9.5050153732,1126,-1.0000000000 +333,0,0.0543179512,333,19.6717777252,1127,-1.0000000000 +334,0,0.0002487019,334,31.5746517181,1128,-1.0000000000 +335,0,-0.0004916147,335,31.6226940155,1129,-1.0000000000 +336,0,0.0001359140,336,31.6227760315,1130,-1.0000000000 +337,0,0.0007245721,337,31.6227684021,1131,-1.0000000000 +338,0,-0.0002426033,338,31.5914230347,1132,-1.0000000000 +339,0,0.0228728075,339,26.4781723022,1133,-1.0000000000 +340,0,0.1194402054,340,12.1590147018,1134,-1.0000000000 +341,0,0.2250171900,341,6.1180801392,1135,-1.0000000000 +342,0,0.3482197821,342,4.1998472214,1136,-1.0000000000 +343,0,0.5096925497,343,3.1183922291,1137,-1.0000000000 +344,0,0.6711575985,344,2.5549144745,1138,-1.0000000000 +345,0,0.8273203373,345,2.3965148926,1139,-1.0000000000 +346,0,0.8989909887,346,2.3424625397,1140,-1.0000000000 +347,0,0.8338220119,347,2.3802590370,1141,-1.0000000000 +348,0,0.7712999582,348,2.4435381889,1142,-1.0000000000 +349,0,0.7810522914,349,2.4618661404,1143,-1.0000000000 +350,0,0.8488454223,350,2.3637220860,1144,-1.0000000000 +351,0,0.9808951616,351,2.2952208519,1145,-1.0000000000 +352,0,1.0584679842,352,2.3287153244,1146,-1.0000000000 +353,0,1.0484929085,353,2.3668515682,1147,-1.0000000000 +354,0,0.9439478517,354,2.3677756786,1148,-1.0000000000 +355,0,0.8024018407,355,2.4240152836,1149,-1.0000000000 +356,0,0.6145404577,356,2.7419781685,1150,-1.0000000000 +357,0,0.4524665475,357,3.2188079357,1151,-1.0000000000 +358,0,0.3541513085,358,4.3514347076,1152,-1.0000000000 +359,0,0.2111083865,359,6.3587808609,1153,-1.0000000000 +360,0,0.1307028979,360,10.0998725891,1154,-1.0000000000 +361,0,0.0321570523,361,21.4319057465,1155,-1.0000000000 +362,0,0.0006438673,362,31.6147212982,1156,-1.0000000000 +363,0,0.0009358423,363,31.6227760315,1157,-1.0000000000 +364,0,0.0002634405,364,31.6227760315,1158,-1.0000000000 +365,0,0.0010150694,365,31.6227722168,1159,-1.0000000000 +366,0,0.0004529505,366,31.6223411560,1160,-1.0000000000 +367,0,0.0137116825,367,27.4318256378,1161,-1.0000000000 +368,0,0.1160466224,368,10.0018968582,1162,-1.0000000000 +369,0,0.2345420271,369,5.8403391838,1163,-1.0000000000 +370,0,0.3708416522,370,3.8688480854,1164,-1.0000000000 +371,0,0.5300990939,371,2.9528651237,1165,-1.0000000000 +372,0,0.6892153025,372,2.5064487457,1166,-1.0000000000 +373,0,0.8098425865,373,2.3663296700,1167,-1.0000000000 +374,0,0.8341104388,374,2.3519144058,1168,-1.0000000000 +375,0,0.8101239204,375,2.4575023651,1169,-1.0000000000 +376,0,0.7889069915,376,2.4505796432,1170,-1.0000000000 +377,0,0.8793845773,377,2.4021737576,1171,-1.0000000000 +378,0,1.0059598684,378,2.3136579990,1172,-1.0000000000 +379,0,1.1230267286,379,2.2888503075,1173,-1.0000000000 +380,0,1.1797831059,380,2.3769843578,1174,-1.0000000000 +381,0,1.1613332033,381,2.4126398563,1175,-1.0000000000 +382,0,0.9623417258,382,2.2927162647,1176,-1.0000000000 +383,0,0.7934286594,383,2.4647991657,1177,-1.0000000000 +384,0,0.5926273465,384,2.7928922176,1178,-1.0000000000 +385,0,0.4492661655,385,3.2474975586,1179,-1.0000000000 +386,0,0.3443657458,386,4.2985219955,1180,-1.0000000000 +387,0,0.2314104587,387,5.9285354614,1181,-1.0000000000 +388,0,0.1472378820,388,9.3181419373,1182,-1.0000000000 +389,0,0.0351320319,389,20.6197624207,1183,-1.0000000000 +390,0,0.0014228243,390,31.5211696625,1184,-1.0000000000 +391,0,0.0008443597,391,31.6227760315,1185,-1.0000000000 +392,0,0.0099181151,392,29.6695613861,1186,-1.0000000000 +393,0,0.0006278105,393,31.6227760315,1187,-1.0000000000 +394,0,0.0003538693,394,31.6227512360,1188,-1.0000000000 +395,0,0.0145763783,395,27.5814151764,1189,-1.0000000000 +396,0,0.1199709773,396,10.8346366882,1190,-1.0000000000 +397,0,0.2440324277,397,5.7197704315,1191,-1.0000000000 +398,0,0.3900867701,398,3.5687365532,1192,-1.0000000000 +399,0,0.5461060405,399,2.8410024643,1193,-1.0000000000 +400,0,0.6898619533,400,2.5129566193,1194,-1.0000000000 +401,0,0.7780957818,401,2.4161820412,1195,-1.0000000000 +402,0,0.8212936521,402,2.4362788200,1196,-1.0000000000 +403,0,0.8196046352,403,2.4716432095,1197,-1.0000000000 +404,0,0.8615708947,404,2.4565105438,1198,-1.0000000000 +405,0,1.0007439852,405,2.3347504139,1199,-1.0000000000 +406,0,1.1029356718,406,2.2086555958,1200,-1.0000000000 +407,0,1.2631444931,407,2.3114092350,1201,-1.0000000000 +408,0,1.2674189806,408,2.3837871552,1202,-1.0000000000 +409,0,1.1696907282,409,2.3068034649,1203,-1.0000000000 +410,0,1.0013144016,410,2.2855141163,1204,-1.0000000000 +411,0,0.7892069817,411,2.4214391708,1205,-1.0000000000 +412,0,0.6106898189,412,2.7888779640,1206,-1.0000000000 +413,0,0.4649244547,413,3.2812552452,1207,-1.0000000000 +414,0,0.3470404446,414,4.0626425743,1208,-1.0000000000 +415,0,0.2548494935,415,5.3905172348,1209,-1.0000000000 +416,0,0.1753427535,416,7.4863877296,1210,-1.0000000000 +417,0,0.0696761087,417,15.3962125778,1211,-1.0000000000 +418,0,0.0011654531,418,31.4477596283,1212,-1.0000000000 +419,0,0.0005153015,419,31.6227760315,1213,-1.0000000000 +420,0,0.0022581830,420,31.3947219849,1214,-1.0000000000 +421,0,-0.0005039608,421,31.6227760315,1215,-1.0000000000 +422,0,0.0006990994,422,31.6138477325,1216,-1.0000000000 +423,0,0.0477251969,423,22.0904197693,1217,-1.0000000000 +424,0,0.1369994134,424,9.3862142563,1218,-1.0000000000 +425,0,0.2709477246,425,5.0977196693,1219,-1.0000000000 +426,0,0.4073841870,426,3.4829053879,1220,-1.0000000000 +427,0,0.5448542237,427,2.8721144199,1221,-1.0000000000 +428,0,0.6622777581,428,2.5826773643,1222,-1.0000000000 +429,0,0.7555070519,429,2.4061858654,1223,-1.0000000000 +430,0,0.8002126217,430,2.4329354763,1224,-1.0000000000 +431,0,0.8153559566,431,2.3994085789,1225,-1.0000000000 +432,0,0.8970652223,432,2.3870296478,1226,-1.0000000000 +433,0,1.0205209255,433,2.2956838608,1227,-1.0000000000 +434,0,1.1738963127,434,2.2933826447,1228,-1.0000000000 +435,0,1.2575677633,435,2.3463256359,1229,-1.0000000000 +436,0,1.2230237722,436,2.3524501324,1230,-1.0000000000 +437,0,1.1259639263,437,2.2667458057,1231,-1.0000000000 +438,0,0.9997518659,438,2.2932496071,1232,-1.0000000000 +439,0,0.7922306657,439,2.4435393810,1233,-1.0000000000 +440,0,0.6165519357,440,2.7788236141,1234,-1.0000000000 +441,0,0.4822996259,441,3.1403548717,1235,-1.0000000000 +442,0,0.3766285479,442,3.7291548252,1236,-1.0000000000 +443,0,0.2857866883,443,4.6315340996,1237,-1.0000000000 +444,0,0.1797532737,444,6.7200350761,1238,-1.0000000000 +445,0,0.0752173588,445,14.3447551727,1239,-1.0000000000 +446,0,0.0005639646,446,31.2004222870,1240,-1.0000000000 +447,0,-0.0001979070,447,31.6074485779,1241,-1.0000000000 +448,0,-0.0003395307,448,31.6227760315,1242,-1.0000000000 +449,0,-0.0001639747,449,31.6227760315,1243,-1.0000000000 +450,0,0.0036350526,450,30.9096469879,1244,-1.0000000000 +451,0,0.0473100618,451,20.2599525452,1245,-1.0000000000 +452,0,0.1546910107,452,8.4040956497,1246,-1.0000000000 +453,0,0.2969757318,453,4.8829870224,1247,-1.0000000000 +454,0,0.4089812934,454,3.4783515930,1248,-1.0000000000 +455,0,0.5411127210,455,2.9201178551,1249,-1.0000000000 +456,0,0.6237353086,456,2.6100988388,1250,-1.0000000000 +457,0,0.7418503165,457,2.4577949047,1251,-1.0000000000 +458,0,0.7519995570,458,2.4328489304,1252,-1.0000000000 +459,0,0.8003866076,459,2.4379255772,1253,-1.0000000000 +460,0,0.8349192142,460,2.3691625595,1254,-1.0000000000 +461,0,0.9357497692,461,2.3182308674,1255,-1.0000000000 +462,0,1.0823613405,462,2.3047502041,1256,-1.0000000000 +463,0,1.1418485641,463,2.3236503601,1257,-1.0000000000 +464,0,1.1479303837,464,2.3056936264,1258,-1.0000000000 +465,0,1.0592665672,465,2.3006165028,1259,-1.0000000000 +466,0,0.9168865085,466,2.3271152973,1260,-1.0000000000 +467,0,0.7404270768,467,2.4720604420,1261,-1.0000000000 +468,0,0.6123292446,468,2.7189273834,1262,-1.0000000000 +469,0,0.4894371331,469,3.0747077465,1263,-1.0000000000 +470,0,0.3859493136,470,3.6469478607,1264,-1.0000000000 +471,0,0.2822641730,471,4.7010302544,1265,-1.0000000000 +472,0,0.1787402332,472,7.5456037521,1266,-1.0000000000 +473,0,0.0621588230,473,16.5414638519,1267,-1.0000000000 +474,0,0.0011913897,474,31.1215934753,1268,-1.0000000000 +475,0,-0.0002103663,475,31.4152126312,1269,-1.0000000000 +476,0,0.0003792991,476,31.6227760315,1270,-1.0000000000 +477,0,0.0001732394,477,31.4972496033,1271,-1.0000000000 +478,0,0.0046014036,478,30.8621158600,1272,-1.0000000000 +479,0,0.0576600619,479,19.4848232269,1273,-1.0000000000 +480,0,0.1628940701,480,7.7923212051,1274,-1.0000000000 +481,0,0.2965573668,481,4.9645648003,1275,-1.0000000000 +482,0,0.4250472188,482,3.4230914116,1276,-1.0000000000 +483,0,0.5318685770,483,2.9077155590,1277,-1.0000000000 +484,0,0.6013643146,484,2.6383554935,1278,-1.0000000000 +485,0,0.6761335135,485,2.5247249603,1279,-1.0000000000 +486,0,0.7152107358,486,2.5478014946,1280,-1.0000000000 +487,0,0.7259470820,487,2.4765470028,1281,-1.0000000000 +488,0,0.7759909034,488,2.4189951420,1282,-1.0000000000 +489,0,0.8643364310,489,2.3606874943,1283,-1.0000000000 +490,0,0.9827626348,490,2.2951855659,1284,-1.0000000000 +491,0,1.0664774179,491,2.2927172184,1285,-1.0000000000 +492,0,1.0456911325,492,2.2863845825,1286,-1.0000000000 +493,0,0.9820244312,493,2.3256044388,1287,-1.0000000000 +494,0,0.8542780876,494,2.3467662334,1288,-1.0000000000 +495,0,0.7340826988,495,2.5039217472,1289,-1.0000000000 +496,0,0.5968572497,496,2.7374470234,1290,-1.0000000000 +497,0,0.4873765409,497,3.0340442657,1291,-1.0000000000 +498,0,0.3672321439,498,3.8976264000,1292,-1.0000000000 +499,0,0.2460707277,499,5.2589669228,1293,-1.0000000000 +500,0,0.1587331593,500,8.3845701218,1294,-1.0000000000 +501,0,0.0695172399,501,15.4914751053,1295,-1.0000000000 +502,0,0.0014563977,502,31.0409355164,1296,-1.0000000000 +503,0,-0.0004635351,503,31.6086044312,1297,-1.0000000000 +504,0,0.0006251551,504,31.6227684021,1298,-1.0000000000 +505,0,0.0001793502,505,31.3493156433,1299,-1.0000000000 +506,0,0.0272259805,506,26.2832393646,1300,-1.0000000000 +507,0,0.0631093308,507,16.6588172913,1301,-1.0000000000 +508,0,0.1657525301,508,7.3287153244,1302,-1.0000000000 +509,0,0.2855381370,509,5.0466980934,1303,-1.0000000000 +510,0,0.4234611988,510,3.3581931591,1304,-1.0000000000 +511,0,0.5355196595,511,2.9099872112,1305,-1.0000000000 +512,0,0.5872064233,512,2.7330672741,1306,-1.0000000000 +513,0,0.6371801496,513,2.5911569595,1307,-1.0000000000 +514,0,0.7026461959,514,2.5588054657,1308,-1.0000000000 +515,0,0.7171602249,515,2.4488122463,1309,-1.0000000000 +516,0,0.7390315533,516,2.4854843616,1310,-1.0000000000 +517,0,0.8491621017,517,2.3858935833,1311,-1.0000000000 +518,0,0.9590334296,518,2.3105680943,1312,-1.0000000000 +519,0,1.0337742567,519,2.3163540363,1313,-1.0000000000 +520,0,1.0172015429,520,2.3164091110,1314,-1.0000000000 +521,0,0.9606239796,521,2.3229632378,1315,-1.0000000000 +522,0,0.8654842377,522,2.3833553791,1316,-1.0000000000 +523,0,0.7076365352,523,2.4972376823,1317,-1.0000000000 +524,0,0.5839534402,524,2.7767996788,1318,-1.0000000000 +525,0,0.4629037380,525,3.2973482609,1319,-1.0000000000 +526,0,0.3223178983,526,4.1649656296,1320,-1.0000000000 +527,0,0.2451560944,527,5.5368881226,1321,-1.0000000000 +528,0,0.1502188295,528,8.9174118042,1322,-1.0000000000 +529,0,0.0671202466,529,16.8515014648,1323,-1.0000000000 +530,0,0.0168995671,530,27.8533496857,1324,-1.0000000000 +531,0,0.0027108516,531,30.7577781677,1325,-1.0000000000 +532,0,-0.0004748474,532,31.6227760315,1326,-1.0000000000 +533,0,0.0000889081,533,31.4278774261,1327,-1.0000000000 +534,0,0.0426550955,534,18.8880081177,1328,-1.0000000000 +535,0,0.0897340700,535,14.2352895737,1329,-1.0000000000 +536,0,0.1835324466,536,6.9632315636,1330,-1.0000000000 +537,0,0.2979731560,537,4.7712202072,1331,-1.0000000000 +538,0,0.4157102704,538,3.4161942005,1332,-1.0000000000 +539,0,0.5524196029,539,2.9093339443,1333,-1.0000000000 +540,0,0.6347330213,540,2.6985633373,1334,-1.0000000000 +541,0,0.6873387098,541,2.5735416412,1335,-1.0000000000 +542,0,0.7337716818,542,2.5132219791,1336,-1.0000000000 +543,0,0.7439809442,543,2.4510378838,1337,-1.0000000000 +544,0,0.8024758697,544,2.4043424129,1338,-1.0000000000 +545,0,0.9168453813,545,2.3399312496,1339,-1.0000000000 +546,0,1.0280338526,546,2.3012630939,1340,-1.0000000000 +547,0,1.0949355364,547,2.3466596603,1341,-1.0000000000 +548,0,1.0854176283,548,2.3466114998,1342,-1.0000000000 +549,0,0.9963572621,549,2.3077476025,1343,-1.0000000000 +550,0,0.8625664115,550,2.3717453480,1344,-1.0000000000 +551,0,0.6984025836,551,2.5627849102,1345,-1.0000000000 +552,0,0.5655143857,552,2.8067283630,1346,-1.0000000000 +553,0,0.4338583946,553,3.3975961208,1347,-1.0000000000 +554,0,0.3148156703,554,4.4280271530,1348,-1.0000000000 +555,0,0.2177419066,555,6.1449913979,1349,-1.0000000000 +556,0,0.1394918263,556,9.3737068176,1350,-1.0000000000 +557,0,0.0666871071,557,15.0768060684,1351,-1.0000000000 +558,0,0.0241600294,558,21.9253787994,1352,-1.0000000000 +559,0,0.0023356657,559,31.0733852386,1353,-1.0000000000 +560,0,0.0005278823,560,31.6227760315,1354,-1.0000000000 +561,0,0.0003284318,561,31.6154689789,1355,-1.0000000000 +562,0,0.0723905489,562,16.1907138824,1356,-1.0000000000 +563,0,0.1137683168,563,10.0528793335,1357,-1.0000000000 +564,0,0.1933699250,564,6.3731698990,1358,-1.0000000000 +565,0,0.2978318036,565,4.5994777679,1359,-1.0000000000 +566,0,0.4207669199,566,3.4823834896,1360,-1.0000000000 +567,0,0.5616418719,567,2.8318614960,1361,-1.0000000000 +568,0,0.6912870407,568,2.5435352325,1362,-1.0000000000 +569,0,0.7708287239,569,2.4794592857,1363,-1.0000000000 +570,0,0.8215371370,570,2.4028928280,1364,-1.0000000000 +571,0,0.8826347589,571,2.3621711731,1365,-1.0000000000 +572,0,0.9627836943,572,2.3196456432,1366,-1.0000000000 +573,0,1.1106199026,573,2.3130993843,1367,-1.0000000000 +574,0,1.2246385813,574,2.3607060909,1368,-1.0000000000 +575,0,1.2177535295,575,2.3455936909,1369,-1.0000000000 +576,0,1.1265897751,576,2.3350877762,1370,-1.0000000000 +577,0,1.0035156012,577,2.3239722252,1371,-1.0000000000 +578,0,0.8064009547,578,2.4052209854,1372,-1.0000000000 +579,0,0.6292597055,579,2.6512899399,1373,-1.0000000000 +580,0,0.4997098446,580,3.0128855705,1374,-1.0000000000 +581,0,0.3879833221,581,3.6579921246,1375,-1.0000000000 +582,0,0.2890135050,582,4.8065571785,1376,-1.0000000000 +583,0,0.1925205886,583,7.4596571922,1377,-1.0000000000 +584,0,0.1238536388,584,11.0189476013,1378,-1.0000000000 +585,0,0.0504309833,585,19.6995429993,1379,-1.0000000000 +586,0,0.0241918098,586,29.3324947357,1380,-1.0000000000 +587,0,0.0003931704,587,31.6227760315,1381,-1.0000000000 +588,0,0.0000209329,588,31.6227760315,1382,-1.0000000000 +589,0,-0.0001734847,589,31.6227760315,1383,-1.0000000000 +590,0,0.0607455708,590,14.3712387085,1384,-1.0000000000 +591,0,0.1017537937,591,11.4408884048,1385,-1.0000000000 +592,0,0.1845139414,592,7.3711776733,1386,-1.0000000000 +593,0,0.2864980102,593,4.6154351234,1387,-1.0000000000 +594,0,0.4105657041,594,3.3562819958,1388,-1.0000000000 +595,0,0.5539539456,595,2.8899328709,1389,-1.0000000000 +596,0,0.6790744066,596,2.5217244625,1390,-1.0000000000 +597,0,0.8194868565,597,2.3978948593,1391,-1.0000000000 +598,0,0.9098239541,598,2.3392369747,1392,-1.0000000000 +599,0,1.0223187208,599,2.2961740494,1393,-1.0000000000 +600,0,1.1595125198,600,2.3070757389,1394,-1.0000000000 +601,0,1.3060013056,601,2.3680303097,1395,-1.0000000000 +602,0,1.3420419693,602,2.3928475380,1396,-1.0000000000 +603,0,1.2148033381,603,2.3111648560,1397,-1.0000000000 +604,0,1.0699449778,604,2.3505551815,1398,-1.0000000000 +605,0,0.8734347224,605,2.3596315384,1399,-1.0000000000 +606,0,0.7014126182,606,2.5934374332,1400,-1.0000000000 +607,0,0.5386259556,607,3.0620768070,1401,-1.0000000000 +608,0,0.4120286405,608,3.6871492863,1402,-1.0000000000 +609,0,0.3218664825,609,4.3526191711,1403,-1.0000000000 +610,0,0.2504507601,610,5.4890518188,1404,-1.0000000000 +611,0,0.1661561131,611,7.5762300491,1405,-1.0000000000 +612,0,0.1281819940,612,9.1167297363,1406,-1.0000000000 +613,0,0.0845847353,613,12.5985088348,1407,-1.0000000000 +614,0,0.0390512794,614,22.3714408875,1408,-1.0000000000 +615,0,-0.0009076580,615,31.6227760315,1409,-1.0000000000 +616,0,0.0006949858,616,31.6227760315,1410,-1.0000000000 +617,0,-0.0002807755,617,31.6227760315,1411,-1.0000000000 +618,0,0.0402883030,618,21.7810173035,1412,-1.0000000000 +619,0,0.0869438499,619,13.5456027985,1413,-1.0000000000 +620,0,0.1526628584,620,8.6529712677,1414,-1.0000000000 +621,0,0.2470432669,621,5.2813711166,1415,-1.0000000000 +622,0,0.3586099148,622,3.9963319302,1416,-1.0000000000 +623,0,0.4875319004,623,3.1646375656,1417,-1.0000000000 +624,0,0.6175509095,624,2.6909687519,1418,-1.0000000000 +625,0,0.7506234050,625,2.4454865456,1419,-1.0000000000 +626,0,0.8995615244,626,2.3818230629,1420,-1.0000000000 +627,0,1.0349189043,627,2.3495621681,1421,-1.0000000000 +628,0,1.1513767242,628,2.3277025223,1422,-1.0000000000 +629,0,1.1925117970,629,2.3252859116,1423,-1.0000000000 +630,0,1.1708381176,630,2.3266208172,1424,-1.0000000000 +631,0,1.0055685043,631,2.2985715866,1425,-1.0000000000 +632,0,0.8375660777,632,2.3881287575,1426,-1.0000000000 +633,0,0.6791220307,633,2.5529067516,1427,-1.0000000000 +634,0,0.5486404896,634,3.0046038628,1428,-1.0000000000 +635,0,0.4031040370,635,3.6131353378,1429,-1.0000000000 +636,0,0.3038705885,636,4.2178559303,1430,-1.0000000000 +637,0,0.2524210811,637,5.2704262733,1431,-1.0000000000 +638,0,0.1901981086,638,7.2279939651,1432,-1.0000000000 +639,0,0.1363730580,639,9.2050275803,1433,-1.0000000000 +640,0,0.1073145792,640,11.0745315552,1434,-1.0000000000 +641,0,0.0684229210,641,17.0656967163,1435,-1.0000000000 +642,0,-0.0006744663,642,31.4324455261,1436,-1.0000000000 +643,0,0.0000577544,643,31.6227760315,1437,-1.0000000000 +644,0,0.0001570900,644,31.6227760315,1438,-1.0000000000 +645,0,0.0002731264,645,31.6227760315,1439,-1.0000000000 +646,0,0.0038284403,646,31.5273246765,1440,-1.0000000000 +647,0,0.0601321943,647,24.6100997925,1441,-1.0000000000 +648,0,0.1270000190,648,11.2679891586,1442,-1.0000000000 +649,0,0.1785868257,649,7.4269938469,1443,-1.0000000000 +650,0,0.2439755499,650,5.7582297325,1444,-1.0000000000 +651,0,0.3590478301,651,4.2548680305,1445,-1.0000000000 +652,0,0.4855530262,652,3.1840777397,1446,-1.0000000000 +653,0,0.6170494556,653,2.7186973095,1447,-1.0000000000 +654,0,0.7311881781,654,2.4960284233,1448,-1.0000000000 +655,0,0.8497233391,655,2.3866577148,1449,-1.0000000000 +656,0,0.8977967501,656,2.2938549519,1450,-1.0000000000 +657,0,0.9207286835,657,2.3358664513,1451,-1.0000000000 +658,0,0.8413833380,658,2.4213399887,1452,-1.0000000000 +659,0,0.7170580626,659,2.5448734760,1453,-1.0000000000 +660,0,0.5938371420,660,2.7929685116,1454,-1.0000000000 +661,0,0.5012392998,661,3.1163673401,1455,-1.0000000000 +662,0,0.3831444383,662,3.5627930164,1456,-1.0000000000 +663,0,0.2952043712,663,4.7107014656,1457,-1.0000000000 +664,0,0.2229586542,664,6.1396217346,1458,-1.0000000000 +665,0,0.1698745340,665,8.3822546005,1459,-1.0000000000 +666,0,0.1272457540,666,10.6636753082,1460,-1.0000000000 +667,0,0.0948237330,667,12.6990413666,1461,-1.0000000000 +668,0,0.0626095906,668,16.9660911560,1462,-1.0000000000 +669,0,0.0318746492,669,21.1093711853,1463,-1.0000000000 +670,0,-0.0004596915,670,31.6104564667,1464,-1.0000000000 +671,0,-0.0003297509,671,31.6227760315,1465,-1.0000000000 +672,0,0.0000154043,672,31.6227760315,1466,-1.0000000000 +673,0,-0.0001096721,673,31.6227760315,1467,-1.0000000000 +674,0,0.0178631432,674,29.5287456512,1468,-1.0000000000 +675,0,0.0546890534,675,16.1463527679,1469,-1.0000000000 +676,0,0.0868572965,676,12.2466621399,1470,-1.0000000000 +677,0,0.1117715240,677,10.5556993484,1471,-1.0000000000 +678,0,0.1618072391,678,8.4793176651,1472,-1.0000000000 +679,0,0.2181115299,679,6.4094319344,1473,-1.0000000000 +680,0,0.3212501407,680,4.3094873428,1474,-1.0000000000 +681,0,0.4112867415,681,3.4613811970,1475,-1.0000000000 +682,0,0.5046284795,682,3.0084741116,1476,-1.0000000000 +683,0,0.5720140934,683,2.7893841267,1477,-1.0000000000 +684,0,0.5922526121,684,2.7598524094,1478,-1.0000000000 +685,0,0.5841865540,685,2.8037195206,1479,-1.0000000000 +686,0,0.5365922451,686,3.0683386326,1480,-1.0000000000 +687,0,0.4612809718,687,3.3554875851,1481,-1.0000000000 +688,0,0.3670029640,688,3.9444963932,1482,-1.0000000000 +689,0,0.3295761645,689,4.3042774200,1483,-1.0000000000 +690,0,0.2607125342,690,5.3240251541,1484,-1.0000000000 +691,0,0.1775101870,691,7.7890319824,1485,-1.0000000000 +692,0,0.1102388427,692,12.0671710968,1486,-1.0000000000 +693,0,0.0604847036,693,18.2411289215,1487,-1.0000000000 +694,0,0.0366388559,694,21.5846443176,1488,-1.0000000000 +695,0,0.0300995968,695,25.3701477051,1489,-1.0000000000 +696,0,0.0216256510,696,27.5726089478,1490,-1.0000000000 +697,0,0.0095130559,697,30.6409358978,1491,-1.0000000000 +698,0,-0.0004731133,698,31.6227760315,1492,-1.0000000000 +699,0,0.0004173194,699,31.6227760315,1493,-1.0000000000 +700,0,0.0000373051,700,31.6227760315,1494,-1.0000000000 +701,0,0.0001317095,701,31.6227760315,1495,-1.0000000000 +702,0,0.0008505006,702,31.6226882935,1496,-1.0000000000 +703,0,-0.0003478700,703,31.6172637939,1497,-1.0000000000 +704,0,0.0189459547,704,23.7632350922,1498,-1.0000000000 +705,0,0.0240347050,705,25.5765171051,1499,-1.0000000000 +706,0,0.0671423450,706,20.8565483093,1500,-1.0000000000 +707,0,0.1300252825,707,10.1886911392,1501,-1.0000000000 +708,0,0.1885967255,708,6.9609127045,1502,-1.0000000000 +709,0,0.2572585344,709,5.1757941246,1503,-1.0000000000 +710,0,0.2850341201,710,4.6739964485,1504,-1.0000000000 +711,0,0.2925059199,711,4.6598939896,1505,-1.0000000000 +712,0,0.2976753414,712,4.3765192032,1506,-1.0000000000 +713,0,0.3117159903,713,4.3831186295,1507,-1.0000000000 +714,0,0.2751280963,714,4.9206175804,1508,-1.0000000000 +715,0,0.2536923289,715,5.5485920906,1509,-1.0000000000 +716,0,0.2220572233,716,5.7631196976,1510,-1.0000000000 +717,0,0.2168289870,717,5.8250527382,1511,-1.0000000000 +718,0,0.1724179536,718,7.2118659019,1512,-1.0000000000 +719,0,0.0910157040,719,12.4245290756,1513,-1.0000000000 +720,0,0.0563279390,720,17.5090179443,1514,-1.0000000000 +721,0,0.0309663750,721,21.6350479126,1515,-1.0000000000 +722,0,0.0123580080,722,26.7846317291,1516,-1.0000000000 +723,0,0.0015036017,723,31.4724483490,1517,-1.0000000000 +724,0,0.0008548850,724,31.6225376129,1518,-1.0000000000 +725,0,0.0006256067,725,31.6227760315,1519,-1.0000000000 +726,0,0.0002573585,726,31.6227760315,1520,-1.0000000000 +727,0,0.0000280884,727,31.6227760315,1521,-1.0000000000 +728,0,-0.0000565607,728,31.6227760315,1522,-1.0000000000 +729,0,0.0003511363,729,31.6227760315,1523,-1.0000000000 +730,0,-0.0001680269,730,31.6227760315,1524,-1.0000000000 +731,0,0.0000254372,731,31.6227760315,1525,-1.0000000000 +732,0,0.0008010912,732,31.6227760315,1526,-1.0000000000 +733,0,0.0012664478,733,31.4162387848,1527,-1.0000000000 +734,0,0.0087214625,734,28.7205638885,1528,-1.0000000000 +735,0,0.0626093596,735,19.5268421173,1529,-1.0000000000 +736,0,0.0923844799,736,11.2921705246,1530,-1.0000000000 +737,0,0.1464712471,737,9.9134054184,1531,-1.0000000000 +738,0,0.1504246145,738,8.1084785461,1532,-1.0000000000 +739,0,0.1739578098,739,7.7448530197,1533,-1.0000000000 +740,0,0.1997769475,740,6.6165623665,1534,-1.0000000000 +741,0,0.2006624788,741,6.4281668663,1535,-1.0000000000 +742,0,0.1754072160,742,6.9995551109,1536,-1.0000000000 +743,0,0.1449064016,743,9.2301797867,1537,-1.0000000000 +744,0,0.1363533288,744,9.0806503296,1538,-1.0000000000 +745,0,0.1309172958,745,8.9661102295,1539,-1.0000000000 +746,0,0.1192817390,746,10.3375415802,1540,-1.0000000000 +747,0,0.0636332557,747,14.1783494949,1541,-1.0000000000 +748,0,0.0384967402,748,22.9521389008,1542,-1.0000000000 +749,0,0.0151172429,749,28.6417751312,1543,-1.0000000000 +750,0,0.0002644823,750,31.6227531433,1544,-1.0000000000 +751,0,0.0001388959,751,31.6227760315,1545,-1.0000000000 +752,0,-0.0000449004,752,31.6227760315,1546,-1.0000000000 +753,0,-0.0001319500,753,31.6227760315,1547,-1.0000000000 +754,0,0.0001573211,754,31.6227760315,1548,-1.0000000000 +755,0,-0.0002211487,755,31.6227760315,1549,-1.0000000000 +756,0,0.0003631258,756,31.6227760315,1550,-1.0000000000 +757,0,-0.0004803424,757,31.6227760315,1551,-1.0000000000 +758,0,0.0002229759,758,31.6227760315,1552,-1.0000000000 +759,0,0.0001782212,759,31.6227760315,1553,-1.0000000000 +760,0,-0.0005359335,760,31.6227760315,1554,-1.0000000000 +761,0,0.0002537031,761,31.6227760315,1555,-1.0000000000 +762,0,0.0070610512,762,28.9331836700,1556,-1.0000000000 +763,0,0.0071148821,763,29.6497535706,1557,-1.0000000000 +764,0,0.0041782572,764,30.8653697968,1558,-1.0000000000 +765,0,0.0462772399,765,21.3133430481,1559,-1.0000000000 +766,0,0.0544400029,766,16.0949192047,1560,-1.0000000000 +767,0,0.0392944776,767,18.0789394379,1561,-1.0000000000 +768,0,0.0200691894,768,29.0664215088,1562,-1.0000000000 +769,0,0.0608186498,769,16.4322891235,1563,-1.0000000000 +770,0,0.0768310428,770,12.8409261703,1564,-1.0000000000 +771,0,0.0623596348,771,16.9758491516,1565,-1.0000000000 +772,0,0.0616865344,772,16.0248012543,1566,-1.0000000000 +773,0,0.0621746406,773,15.3318328857,1567,-1.0000000000 +774,0,0.0373334214,774,23.6103172302,1568,-1.0000000000 +775,0,0.0014662633,775,31.2061862946,1569,-1.0000000000 +776,0,0.0005060213,776,31.5637264252,1570,-1.0000000000 +777,0,-0.0001282875,777,31.6227760315,1571,-1.0000000000 +778,0,-0.0000724052,778,31.6227760315,1572,-1.0000000000 +779,0,-0.0003652821,779,31.6227760315,1573,-1.0000000000 +780,0,0.0004401279,780,31.6227760315,1574,-1.0000000000 +781,0,-0.0000989889,781,31.6227760315,1575,-1.0000000000 +782,0,-0.0000036841,782,31.6227760315,1576,-1.0000000000 +783,0,0.0003134308,783,31.6227760315,1577,-1.0000000000 +784,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,1.0000000000,835,-1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,1.0000000000,871,-1.0000000000,872,1.0000000000,873,1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,-1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,1.0000000000,973,-1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,-1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1578,-1.0000000000 +785,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,1.0000000000,835,-1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,-1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,-1.0000000000,978,1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1579,-1.0000000000 +786,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,-1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,1.0000000000,953,-1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1580,-1.0000000000 +787,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,-1.0000000000,843,1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,-1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,-1.0000000000,982,1.0000000000,983,-1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,-1.0000000000,1063,1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1581,-1.0000000000 +788,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,-1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,-1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,1.0000000000,868,-1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,1.0000000000,949,-1.0000000000,950,-1.0000000000,951,1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,-1.0000000000,981,-1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,-1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,-1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1582,-1.0000000000 +789,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1583,-1.0000000000 +790,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,-1.0000000000,862,1.0000000000,863,-1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1584,-1.0000000000 +791,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,-1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1585,-1.0000000000 +792,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,-1.0000000000,978,-1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,-1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,-1.0000000000,1567,1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1586,-1.0000000000 +793,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,-1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,-1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,-1.0000000000,972,1.0000000000,973,1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,-1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1587,-1.0000000000 +794,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,-1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1588,-1.0000000000 +795,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,1.0000000000,846,-1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,1.0000000000,859,-1.0000000000,860,1.0000000000,861,1.0000000000,862,-1.0000000000,863,1.0000000000,864,-1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,-1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,-1.0000000000,1589,-1.0000000000 +796,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,-1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,-1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1590,-1.0000000000 +797,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,1.0000000000,854,1.0000000000,855,1.0000000000,856,-1.0000000000,857,1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,-1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,-1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,-1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1591,-1.0000000000 +798,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,-1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,1.0000000000,888,-1.0000000000,889,1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,1.0000000000,896,-1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,-1.0000000000,907,-1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,-1.0000000000,933,1.0000000000,934,1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,1.0000000000,947,-1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,-1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,-1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1592,-1.0000000000 +799,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,-1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,-1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,1.0000000000,947,-1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1593,-1.0000000000 +800,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,-1.0000000000,1594,-1.0000000000 +801,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,1.0000000000,939,-1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,1.0000000000,981,-1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1595,-1.0000000000 +802,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1596,-1.0000000000 +803,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,-1.0000000000,972,1.0000000000,973,1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,1.0000000000,981,-1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,-1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,-1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,-1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1597,-1.0000000000 +804,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,-1.0000000000,862,-1.0000000000,863,1.0000000000,864,1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,-1.0000000000,888,1.0000000000,889,-1.0000000000,890,1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,-1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1598,-1.0000000000 +805,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,-1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,-1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,-1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,-1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1599,-1.0000000000 +806,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,-1.0000000000,913,-1.0000000000,914,1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1600,-1.0000000000 +807,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,-1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,-1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1601,-1.0000000000 +808,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,-1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1602,-1.0000000000 +809,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,1.0000000000,820,1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,-1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,1.0000000000,868,1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,-1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,1.0000000000,984,1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1603,-1.0000000000 +810,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,-1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1604,-1.0000000000 +811,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,-1.0000000000,940,1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,-1.0000000000,991,1.0000000000,992,-1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1605,-1.0000000000 +812,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,-1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,1.0000000000,979,-1.0000000000,980,1.0000000000,981,-1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,-1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,-1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,-1.0000000000,1606,-1.0000000000 +813,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,-1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1607,-1.0000000000 +814,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,-1.0000000000,840,1.0000000000,841,-1.0000000000,842,1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,-1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1608,-1.0000000000 +815,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,-1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,1.0000000000,868,1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,-1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1609,-1.0000000000 +816,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1610,-1.0000000000 +817,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,1.0000000000,939,1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,1.0000000000,971,-1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1611,-1.0000000000 +818,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1612,-1.0000000000 +819,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,-1.0000000000,867,1.0000000000,868,-1.0000000000,869,1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,1.0000000000,891,1.0000000000,892,-1.0000000000,893,-1.0000000000,894,1.0000000000,895,-1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,-1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1613,-1.0000000000 +820,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1614,-1.0000000000 +821,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,-1.0000000000,870,-1.0000000000,871,1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,-1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,-1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1615,-1.0000000000 +822,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,1.0000000000,864,1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,-1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1616,-1.0000000000 +823,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,-1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,-1.0000000000,862,1.0000000000,863,-1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,1.0000000000,895,-1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,1.0000000000,902,-1.0000000000,903,1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,-1.0000000000,928,-1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1617,-1.0000000000 +824,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,-1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,-1.0000000000,901,1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,1.0000000000,922,-1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,-1.0000000000,1618,-1.0000000000 +825,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,-1.0000000000,979,1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1619,-1.0000000000 +826,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,-1.0000000000,803,1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,-1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,-1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,-1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,1.0000000000,891,-1.0000000000,892,1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,-1.0000000000,970,1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,1.0000000000,987,-1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,-1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1620,-1.0000000000 +827,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,-1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,-1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1621,-1.0000000000 +828,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,-1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1622,-1.0000000000 +829,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,1.0000000000,844,1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,-1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,1.0000000000,891,-1.0000000000,892,1.0000000000,893,1.0000000000,894,-1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1623,-1.0000000000 +830,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,-1.0000000000,851,-1.0000000000,852,1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,1.0000000000,861,-1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,-1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,1.0000000000,968,1.0000000000,969,-1.0000000000,970,1.0000000000,971,1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,1.0000000000,992,-1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1624,-1.0000000000 +831,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,-1.0000000000,986,1.0000000000,987,-1.0000000000,988,1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,-1.0000000000,1093,1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1625,-1.0000000000 +832,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,-1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,1.0000000000,833,-1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,-1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,-1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1626,-1.0000000000 +833,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,-1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,-1.0000000000,852,1.0000000000,853,1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,-1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,1.0000000000,971,1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1627,-1.0000000000 +834,0,0.8421083689,1578,0.0235017370,1628,-1.0000000000 +835,0,-0.2846569419,1579,0.0261672977,1629,-1.0000000000 +836,0,-0.6479381323,1580,0.0223037712,1630,-1.0000000000 +837,0,0.3773280084,1581,0.0231465548,1631,-1.0000000000 +838,0,-1.0555180311,1582,0.0243742540,1632,-1.0000000000 +839,0,0.7876127958,1583,0.0225345884,1633,-1.0000000000 +840,0,-0.9667378664,1584,0.0249240641,1634,-1.0000000000 +841,0,-0.7313812971,1585,0.0240810122,1635,-1.0000000000 +842,0,0.7189067602,1586,0.0228495728,1636,-1.0000000000 +843,0,0.7211230993,1587,0.0222876444,1637,-1.0000000000 +844,0,-0.9235455990,1588,0.0243723150,1638,-1.0000000000 +845,0,-0.5571734905,1589,0.0194766801,1639,-1.0000000000 +846,0,0.8664592505,1590,0.0231784545,1640,-1.0000000000 +847,0,0.3598901629,1591,0.0223980900,1641,-1.0000000000 +848,0,0.8700128198,1592,0.0229846016,1642,-1.0000000000 +849,0,0.7697677016,1593,0.0229231622,1643,-1.0000000000 +850,0,0.2859251499,1594,0.0247299802,1644,-1.0000000000 +851,0,-0.7671884298,1595,0.0267935731,1645,-1.0000000000 +852,0,0.7625827193,1596,0.0292239934,1646,-1.0000000000 +853,0,-0.6408279538,1597,0.0266149249,1647,-1.0000000000 +854,0,0.4876926839,1598,0.0229843184,1648,-1.0000000000 +855,0,-0.7342277169,1599,0.0265182480,1649,-1.0000000000 +856,0,-0.0043167840,1600,0.0231549405,1650,-1.0000000000 +857,0,-0.9360870719,1601,0.0253012348,1651,-1.0000000000 +858,0,-0.2136942148,1602,0.0208041538,1652,-1.0000000000 +859,0,0.6678317189,1603,0.0230627339,1653,-1.0000000000 +860,0,-0.8490259647,1604,0.0283609889,1654,-1.0000000000 +861,0,-0.8502492905,1605,0.0245368518,1655,-1.0000000000 +862,0,0.3299311101,1606,0.0213238895,1656,-1.0000000000 +863,0,-0.6741704941,1607,0.0265815370,1657,-1.0000000000 +864,0,-0.7203316092,1608,0.0197502580,1658,-1.0000000000 +865,0,-0.5871137381,1609,0.0245222691,1659,-1.0000000000 +866,0,-0.1073979139,1610,0.0194286499,1660,-1.0000000000 +867,0,-0.6457850933,1611,0.0255288966,1661,-1.0000000000 +868,0,-0.7653211355,1612,0.0226976387,1662,-1.0000000000 +869,0,-0.7774050236,1613,0.0227414705,1663,-1.0000000000 +870,0,-0.7453527451,1614,0.0255117286,1664,-1.0000000000 +871,0,0.3966747224,1615,0.0273439139,1665,-1.0000000000 +872,0,0.6267040372,1616,0.0262405220,1666,-1.0000000000 +873,0,-0.7901589870,1617,0.0219206698,1667,-1.0000000000 +874,0,-0.6241480708,1618,0.0257767029,1668,-1.0000000000 +875,0,0.3426552415,1619,0.0209231097,1669,-1.0000000000 +876,0,1.0251504183,1620,0.0249391589,1670,-1.0000000000 +877,0,0.5753672123,1621,0.0281392988,1671,-1.0000000000 +878,0,0.0552809983,1622,0.0230191071,1672,-1.0000000000 +879,0,-0.7643856406,1623,0.0223054085,1673,-1.0000000000 +880,0,-0.9038895965,1624,0.0259901769,1674,-1.0000000000 +881,0,0.3115992844,1625,0.0212058239,1675,-1.0000000000 +882,0,0.8047288656,1626,0.0262604449,1676,-1.0000000000 +883,0,-0.1062955856,1627,0.0169141162,1677,-1.0000000000 +884,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1828,-1.0000000000 +885,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1829,-1.0000000000 +886,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1830,-1.0000000000 +887,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1831,-1.0000000000 +888,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1832,-1.0000000000 +889,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1833,-1.0000000000 +890,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1834,-1.0000000000 +891,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1835,-1.0000000000 +892,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1836,-1.0000000000 +893,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1837,-1.0000000000 +894,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1838,-1.0000000000 +895,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1839,-1.0000000000 +896,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1840,-1.0000000000 +897,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1841,-1.0000000000 +898,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1842,-1.0000000000 +899,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1843,-1.0000000000 +900,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1844,-1.0000000000 +901,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1845,-1.0000000000 +902,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1846,-1.0000000000 +903,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1847,-1.0000000000 +904,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1848,-1.0000000000 +905,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1849,-1.0000000000 +906,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1850,-1.0000000000 +907,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1851,-1.0000000000 +908,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1852,-1.0000000000 +909,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1853,-1.0000000000 +910,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,-1.0000000000,1854,-1.0000000000 +911,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1855,-1.0000000000 +912,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1856,-1.0000000000 +913,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1857,-1.0000000000 +914,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1858,-1.0000000000 +915,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1859,-1.0000000000 +916,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1860,-1.0000000000 +917,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1861,-1.0000000000 +918,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1862,-1.0000000000 +919,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1863,-1.0000000000 +920,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,-1.0000000000,1864,-1.0000000000 +921,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1865,-1.0000000000 +922,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1866,-1.0000000000 +923,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1867,-1.0000000000 +924,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1868,-1.0000000000 +925,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1869,-1.0000000000 +926,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1870,-1.0000000000 +927,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1871,-1.0000000000 +928,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1872,-1.0000000000 +929,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1873,-1.0000000000 +930,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1874,-1.0000000000 +931,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1875,-1.0000000000 +932,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1876,-1.0000000000 +933,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1877,-1.0000000000 +934,0,-0.4422365427,1828,0.1020488292,1878,-1.0000000000 +935,0,0.4480501115,1829,0.0991111100,1879,-1.0000000000 +936,0,-0.1003972590,1830,0.0965854451,1880,-1.0000000000 +937,0,-1.1484458447,1831,0.1059442237,1881,-1.0000000000 +938,0,1.0887894630,1832,0.0989778936,1882,-1.0000000000 +939,0,-1.0348954201,1833,0.1068197116,1883,-1.0000000000 +940,0,0.5534237027,1834,0.1160275713,1884,-1.0000000000 +941,0,0.9348842502,1835,0.1132629067,1885,-1.0000000000 +942,0,-0.4643164575,1836,0.1065536290,1886,-1.0000000000 +943,0,0.0835817456,1837,0.1003656834,1887,-1.0000000000 +944,0,0.3977578878,1838,0.1060394570,1888,-1.0000000000 +945,0,0.0678663701,1839,0.1013686582,1889,-1.0000000000 +946,0,-0.8597519398,1840,0.1015724093,1890,-1.0000000000 +947,0,1.2035224438,1841,0.1225976050,1891,-1.0000000000 +948,0,0.6223870516,1842,0.1063073128,1892,-1.0000000000 +949,0,-0.6301627755,1843,0.1010998860,1893,-1.0000000000 +950,0,-0.2829226255,1844,0.1127813533,1894,-1.0000000000 +951,0,-0.3967113197,1845,0.0949260890,1895,-1.0000000000 +952,0,-0.4686790705,1846,0.1089941412,1896,-1.0000000000 +953,0,0.1133320630,1847,0.1046472266,1897,-1.0000000000 +954,0,-0.8415259123,1848,0.1142742112,1898,-1.0000000000 +955,0,-0.9505460262,1849,0.1072790921,1899,-1.0000000000 +956,0,0.6531319022,1850,0.0998267680,1900,-1.0000000000 +957,0,-1.1331965923,1851,0.1025341526,1901,-1.0000000000 +958,0,1.3528954983,1852,0.0976141840,1902,-1.0000000000 +959,0,0.4627612829,1853,0.1206339747,1903,-1.0000000000 +960,0,0.8055898547,1854,0.1269099861,1904,-1.0000000000 +961,0,-0.9832527637,1855,0.1577575952,1905,-1.0000000000 +962,0,-0.1737223566,1856,0.1104114428,1906,-1.0000000000 +963,0,-0.0058632195,1857,0.1134437397,1907,-1.0000000000 +964,0,-0.9974204898,1858,0.1002218947,1908,-1.0000000000 +965,0,-1.0862815380,1859,0.1043362990,1909,-1.0000000000 +966,0,0.0564095974,1860,0.1188390180,1910,-1.0000000000 +967,0,1.0363285542,1861,0.1173062101,1911,-1.0000000000 +968,0,-0.7735077143,1862,0.1057077050,1912,-1.0000000000 +969,0,-0.4638699293,1863,0.1058885753,1913,-1.0000000000 +970,0,-0.6389272809,1864,0.1045930758,1914,-1.0000000000 +971,0,-0.0019936562,1865,0.1059108078,1915,-1.0000000000 +972,0,-0.4133639932,1866,0.1102507859,1916,-1.0000000000 +973,0,-0.2886965275,1867,0.1195091382,1917,-1.0000000000 +974,0,0.5997220874,1868,0.1224286780,1918,-1.0000000000 +975,0,1.2392590046,1869,0.1132306159,1919,-1.0000000000 +976,0,-1.6176872253,1870,0.1193554476,1920,-1.0000000000 +977,0,-0.0936360657,1871,0.1110986844,1921,-1.0000000000 +978,0,0.8811743259,1872,0.1029497087,1922,-1.0000000000 +979,0,0.3017511964,1873,0.0968364775,1923,-1.0000000000 +980,0,0.5134924650,1874,0.1179610640,1924,-1.0000000000 +981,0,-0.0661748648,1875,0.1095789969,1925,-1.0000000000 +982,0,-1.3897794485,1876,0.1369069517,1926,-1.0000000000 +983,0,-0.7762956619,1877,0.1096271724,1927,-1.0000000000 +984,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2078,-1.0000000000 +985,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2079,-1.0000000000 +986,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2080,-1.0000000000 +987,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2081,-1.0000000000 +988,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2082,-1.0000000000 +989,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2083,-1.0000000000 +990,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2084,-1.0000000000 +991,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2085,-1.0000000000 +992,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,-1.0000000000,1977,1.0000000000,2086,-1.0000000000 +993,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2087,-1.0000000000 +994,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2088,-1.0000000000 +995,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2089,-1.0000000000 +996,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2090,-1.0000000000 +997,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2091,-1.0000000000 +998,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2092,-1.0000000000 +999,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2093,-1.0000000000 +1000,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2094,-1.0000000000 +1001,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2095,-1.0000000000 +1002,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2096,-1.0000000000 +1003,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2097,-1.0000000000 +1004,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2098,-1.0000000000 +1005,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2099,-1.0000000000 +1006,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2100,-1.0000000000 +1007,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2101,-1.0000000000 +1008,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2102,-1.0000000000 +1009,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,1.0000000000,2103,-1.0000000000 +1010,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2104,-1.0000000000 +1011,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2105,-1.0000000000 +1012,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2106,-1.0000000000 +1013,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,1.0000000000,2107,-1.0000000000 +1014,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2108,-1.0000000000 +1015,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,-1.0000000000,1977,1.0000000000,2109,-1.0000000000 +1016,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2110,-1.0000000000 +1017,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2111,-1.0000000000 +1018,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2112,-1.0000000000 +1019,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2113,-1.0000000000 +1020,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2114,-1.0000000000 +1021,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2115,-1.0000000000 +1022,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2116,-1.0000000000 +1023,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2117,-1.0000000000 +1024,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2118,-1.0000000000 +1025,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2119,-1.0000000000 +1026,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2120,-1.0000000000 +1027,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,1.0000000000,2121,-1.0000000000 +1028,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2122,-1.0000000000 +1029,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2123,-1.0000000000 +1030,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2124,-1.0000000000 +1031,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2125,-1.0000000000 +1032,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2126,-1.0000000000 +1033,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2127,-1.0000000000 +1034,0,-1.5439108610,2078,0.0876089185,2128,-1.0000000000 +1035,0,-0.4739111364,2079,0.0961711332,2129,-1.0000000000 +1036,0,-1.0415468216,2080,0.0937085450,2130,-1.0000000000 +1037,0,0.6139742732,2081,0.0812947005,2131,-1.0000000000 +1038,0,0.5557186604,2082,0.0871866420,2132,-1.0000000000 +1039,0,-0.3893597722,2083,0.0804945678,2133,-1.0000000000 +1040,0,-0.8266534805,2084,0.0812162086,2134,-1.0000000000 +1041,0,0.2232298106,2085,0.0948337018,2135,-1.0000000000 +1042,0,-0.0620028004,2086,0.0776069760,2136,-1.0000000000 +1043,0,1.1303224564,2087,0.0934174880,2137,-1.0000000000 +1044,0,-0.2364211082,2088,0.0797051936,2138,-1.0000000000 +1045,0,-0.9706853628,2089,0.0967904106,2139,-1.0000000000 +1046,0,-0.2923468649,2090,0.0907429308,2140,-1.0000000000 +1047,0,-0.5784704685,2091,0.0755174533,2141,-1.0000000000 +1048,0,-0.0592839196,2092,0.0796242356,2142,-1.0000000000 +1049,0,0.3860493600,2093,0.0900726616,2143,-1.0000000000 +1050,0,1.4812798500,2094,0.0888576508,2144,-1.0000000000 +1051,0,-0.8718976378,2095,0.1031556055,2145,-1.0000000000 +1052,0,-0.1305737942,2096,0.0803080872,2146,-1.0000000000 +1053,0,-0.2846091986,2097,0.0820637047,2147,-1.0000000000 +1054,0,0.1756512523,2098,0.0995460078,2148,-1.0000000000 +1055,0,1.2454360723,2099,0.1092514172,2149,-1.0000000000 +1056,0,1.0246465206,2100,0.0863156915,2150,-1.0000000000 +1057,0,0.2504656911,2101,0.0761504471,2151,-1.0000000000 +1058,0,0.7058990002,2102,0.0841773748,2152,-1.0000000000 +1059,0,0.0360603780,2103,0.0885879919,2153,-1.0000000000 +1060,0,-0.5337175727,2104,0.0816795677,2154,-1.0000000000 +1061,0,1.3386275768,2105,0.0769669712,2155,-1.0000000000 +1062,0,-0.5070524216,2106,0.0816306695,2156,-1.0000000000 +1063,0,-0.7249984741,2107,0.0855440348,2157,-1.0000000000 +1064,0,1.4707089663,2108,0.0787225068,2158,-1.0000000000 +1065,0,0.2180018425,2109,0.0845124200,2159,-1.0000000000 +1066,0,0.6674256325,2110,0.0969409272,2160,-1.0000000000 +1067,0,0.0993419141,2111,0.0880582631,2161,-1.0000000000 +1068,0,0.0910886228,2112,0.0868164375,2162,-1.0000000000 +1069,0,-0.5364635587,2113,0.1057630703,2163,-1.0000000000 +1070,0,1.2253115177,2114,0.0867191926,2164,-1.0000000000 +1071,0,0.8443910480,2115,0.0999500081,2165,-1.0000000000 +1072,0,1.0910279751,2116,0.0895362720,2166,-1.0000000000 +1073,0,0.1953761876,2117,0.0960677862,2167,-1.0000000000 +1074,0,0.4993414283,2118,0.0850909576,2168,-1.0000000000 +1075,0,0.2611379027,2119,0.0794575140,2169,-1.0000000000 +1076,0,-1.7781825066,2120,0.0924188271,2170,-1.0000000000 +1077,0,-0.6430346966,2121,0.0960254595,2171,-1.0000000000 +1078,0,0.7111772299,2122,0.0932400376,2172,-1.0000000000 +1079,0,0.5366181135,2123,0.0883551985,2173,-1.0000000000 +1080,0,1.2333692312,2124,0.0930536613,2174,-1.0000000000 +1081,0,0.7760955095,2125,0.0919722095,2175,-1.0000000000 +1082,0,-0.0114938617,2126,0.0945464075,2176,-1.0000000000 +1083,0,0.8896213770,2127,0.1000391170,2177,-1.0000000000 +1084,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,1.0000000000,2328,-1.0000000000 +1085,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2329,-1.0000000000 +1086,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2330,-1.0000000000 +1087,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2331,-1.0000000000 +1088,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2332,-1.0000000000 +1089,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,1.0000000000,2333,-1.0000000000 +1090,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2334,-1.0000000000 +1091,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2335,-1.0000000000 +1092,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2336,-1.0000000000 +1093,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2337,-1.0000000000 +1094,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2338,-1.0000000000 +1095,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2339,-1.0000000000 +1096,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,-1.0000000000,2340,-1.0000000000 +1097,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2341,-1.0000000000 +1098,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2342,-1.0000000000 +1099,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2343,-1.0000000000 +1100,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2344,-1.0000000000 +1101,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2345,-1.0000000000 +1102,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2346,-1.0000000000 +1103,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2347,-1.0000000000 +1104,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2348,-1.0000000000 +1105,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2349,-1.0000000000 +1106,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2350,-1.0000000000 +1107,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2351,-1.0000000000 +1108,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,-1.0000000000,2352,-1.0000000000 +1109,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2353,-1.0000000000 +1110,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2354,-1.0000000000 +1111,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,1.0000000000,2355,-1.0000000000 +1112,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2356,-1.0000000000 +1113,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2357,-1.0000000000 +1114,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2358,-1.0000000000 +1115,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2359,-1.0000000000 +1116,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2360,-1.0000000000 +1117,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2361,-1.0000000000 +1118,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,1.0000000000,2362,-1.0000000000 +1119,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,1.0000000000,2363,-1.0000000000 +1120,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,1.0000000000,2364,-1.0000000000 +1121,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2365,-1.0000000000 +1122,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,-1.0000000000,2366,-1.0000000000 +1123,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2367,-1.0000000000 +1124,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2368,-1.0000000000 +1125,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2369,-1.0000000000 +1126,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2370,-1.0000000000 +1127,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2371,-1.0000000000 +1128,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2372,-1.0000000000 +1129,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2373,-1.0000000000 +1130,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2374,-1.0000000000 +1131,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2375,-1.0000000000 +1132,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2376,-1.0000000000 +1133,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2377,-1.0000000000 +1134,0,0.0831787437,2328,0.0764585137,2378,-1.0000000000 +1135,0,-0.1364517659,2329,0.0798864216,2379,-1.0000000000 +1136,0,1.8092790842,2330,0.0792033300,2380,-1.0000000000 +1137,0,0.2641986907,2331,0.0732443780,2381,-1.0000000000 +1138,0,1.2061002254,2332,0.0782436728,2382,-1.0000000000 +1139,0,-1.8642137051,2333,0.0861918181,2383,-1.0000000000 +1140,0,-0.1733025759,2334,0.0763822570,2384,-1.0000000000 +1141,0,1.4934809208,2335,0.0766226798,2385,-1.0000000000 +1142,0,-0.1346085519,2336,0.0771160796,2386,-1.0000000000 +1143,0,0.1427569836,2337,0.0810657293,2387,-1.0000000000 +1144,0,-0.0470439941,2338,0.0790032297,2388,-1.0000000000 +1145,0,0.3314089775,2339,0.0826260373,2389,-1.0000000000 +1146,0,0.5605881810,2340,0.0821316242,2390,-1.0000000000 +1147,0,-0.0279953144,2341,0.0758167356,2391,-1.0000000000 +1148,0,0.1289070398,2342,0.0772503018,2392,-1.0000000000 +1149,0,-0.2735776901,2343,0.0737596825,2393,-1.0000000000 +1150,0,0.0808036923,2344,0.0803246498,2394,-1.0000000000 +1151,0,0.3288836777,2345,0.0781317875,2395,-1.0000000000 +1152,0,-0.0946673453,2346,0.0748800337,2396,-1.0000000000 +1153,0,0.1801957637,2347,0.0833257213,2397,-1.0000000000 +1154,0,-0.3167375326,2348,0.0825496614,2398,-1.0000000000 +1155,0,-1.6758612394,2349,0.0833077803,2399,-1.0000000000 +1156,0,0.4785592556,2350,0.0786740705,2400,-1.0000000000 +1157,0,-0.0440198034,2351,0.0839604437,2401,-1.0000000000 +1158,0,-0.4510684013,2352,0.0727607608,2402,-1.0000000000 +1159,0,0.4796656966,2353,0.0754371658,2403,-1.0000000000 +1160,0,-0.1467658728,2354,0.0801599845,2404,-1.0000000000 +1161,0,-1.6980912685,2355,0.0824286491,2405,-1.0000000000 +1162,0,-0.5121878386,2356,0.0887714252,2406,-1.0000000000 +1163,0,-0.1283654422,2357,0.0806707665,2407,-1.0000000000 +1164,0,-0.5782864094,2358,0.0757020339,2408,-1.0000000000 +1165,0,-1.3219553232,2359,0.0830138251,2409,-1.0000000000 +1166,0,1.3010077477,2360,0.0867237747,2410,-1.0000000000 +1167,0,1.8038090467,2361,0.0811277553,2411,-1.0000000000 +1168,0,1.0391250849,2362,0.0832474679,2412,-1.0000000000 +1169,0,-0.8869209290,2363,0.0883564204,2413,-1.0000000000 +1170,0,0.4410263300,2364,0.0816484168,2414,-1.0000000000 +1171,0,0.5588466525,2365,0.0827038214,2415,-1.0000000000 +1172,0,-0.4485054016,2366,0.0719914138,2416,-1.0000000000 +1173,0,0.2402071357,2367,0.0743149817,2417,-1.0000000000 +1174,0,-1.7117775679,2368,0.0778249726,2418,-1.0000000000 +1175,0,-0.2367737740,2369,0.0717907771,2419,-1.0000000000 +1176,0,0.0982874855,2370,0.0753626451,2420,-1.0000000000 +1177,0,-0.0940445662,2371,0.0761000440,2421,-1.0000000000 +1178,0,-0.0428520180,2372,0.0847094953,2422,-1.0000000000 +1179,0,0.5425710678,2373,0.0811219513,2423,-1.0000000000 +1180,0,0.4396020770,2374,0.0789181367,2424,-1.0000000000 +1181,0,0.3062215745,2375,0.0784865990,2425,-1.0000000000 +1182,0,-0.2372326851,2376,0.0754072890,2426,-1.0000000000 +1183,0,0.4145061076,2377,0.0873605311,2427,-1.0000000000 +1184,0,-0.0000000000,2428,1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,-1.0000000000,2433,-1.0000000000,2434,-1.0000000000,2435,1.0000000000,2436,1.0000000000,2437,-1.0000000000,2438,1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,-1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,-1.0000000000,2445,-1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,-1.0000000000,2449,1.0000000000,2450,1.0000000000,2451,-1.0000000000,2452,-1.0000000000,2453,1.0000000000,2454,1.0000000000,2455,1.0000000000,2456,-1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,-1.0000000000,2469,1.0000000000,2470,1.0000000000,2471,-1.0000000000,2472,1.0000000000,2473,1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,1.0000000000,2578,-1.0000000000 +1185,0,-0.0000000000,2428,1.0000000000,2429,-1.0000000000,2430,-1.0000000000,2431,1.0000000000,2432,1.0000000000,2433,-1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,1.0000000000,2441,1.0000000000,2442,-1.0000000000,2443,1.0000000000,2444,1.0000000000,2445,-1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,-1.0000000000,2449,1.0000000000,2450,-1.0000000000,2451,-1.0000000000,2452,1.0000000000,2453,-1.0000000000,2454,-1.0000000000,2455,-1.0000000000,2456,-1.0000000000,2457,-1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,1.0000000000,2462,-1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,1.0000000000,2466,-1.0000000000,2467,-1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,1.0000000000,2473,1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,1.0000000000,2579,-1.0000000000 +1186,0,-0.0000000000,2428,-1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,-1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,-1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,1.0000000000,2440,-1.0000000000,2441,1.0000000000,2442,1.0000000000,2443,-1.0000000000,2444,-1.0000000000,2445,1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,-1.0000000000,2449,-1.0000000000,2450,-1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,-1.0000000000,2454,-1.0000000000,2455,1.0000000000,2456,1.0000000000,2457,1.0000000000,2458,-1.0000000000,2459,-1.0000000000,2460,-1.0000000000,2461,1.0000000000,2462,-1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,-1.0000000000,2473,-1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,-1.0000000000,2580,-1.0000000000 +1187,0,-0.0000000000,2428,-1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,-1.0000000000,2437,-1.0000000000,2438,1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,-1.0000000000,2442,1.0000000000,2443,-1.0000000000,2444,-1.0000000000,2445,1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,-1.0000000000,2449,-1.0000000000,2450,1.0000000000,2451,-1.0000000000,2452,-1.0000000000,2453,1.0000000000,2454,-1.0000000000,2455,1.0000000000,2456,-1.0000000000,2457,1.0000000000,2458,-1.0000000000,2459,-1.0000000000,2460,1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,1.0000000000,2464,-1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,-1.0000000000,2469,-1.0000000000,2470,1.0000000000,2471,-1.0000000000,2472,-1.0000000000,2473,1.0000000000,2474,1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,1.0000000000,2581,-1.0000000000 +1188,0,-0.0000000000,2428,-1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,-1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,1.0000000000,2436,1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,-1.0000000000,2445,1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,-1.0000000000,2449,-1.0000000000,2450,-1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,-1.0000000000,2454,-1.0000000000,2455,1.0000000000,2456,-1.0000000000,2457,-1.0000000000,2458,-1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,-1.0000000000,2464,1.0000000000,2465,1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,1.0000000000,2469,-1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,1.0000000000,2473,-1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,-1.0000000000,2582,-1.0000000000 +1189,0,-0.0000000000,2428,1.0000000000,2429,1.0000000000,2430,-1.0000000000,2431,-1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,1.0000000000,2435,1.0000000000,2436,1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,-1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,-1.0000000000,2445,-1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,1.0000000000,2449,-1.0000000000,2450,1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,1.0000000000,2454,-1.0000000000,2455,-1.0000000000,2456,1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,1.0000000000,2469,-1.0000000000,2470,-1.0000000000,2471,-1.0000000000,2472,1.0000000000,2473,-1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,-1.0000000000,2583,-1.0000000000 +1190,0,-0.0000000000,2428,1.0000000000,2429,-1.0000000000,2430,-1.0000000000,2431,1.0000000000,2432,1.0000000000,2433,-1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,1.0000000000,2437,-1.0000000000,2438,1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,-1.0000000000,2445,-1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,-1.0000000000,2449,-1.0000000000,2450,-1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,-1.0000000000,2454,1.0000000000,2455,-1.0000000000,2456,1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,-1.0000000000,2460,-1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,1.0000000000,2464,-1.0000000000,2465,-1.0000000000,2466,1.0000000000,2467,1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,1.0000000000,2471,1.0000000000,2472,-1.0000000000,2473,-1.0000000000,2474,1.0000000000,2475,-1.0000000000,2476,-1.0000000000,2477,-1.0000000000,2584,-1.0000000000 +1191,0,-0.0000000000,2428,1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,-1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,1.0000000000,2441,1.0000000000,2442,-1.0000000000,2443,1.0000000000,2444,1.0000000000,2445,-1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,-1.0000000000,2449,1.0000000000,2450,-1.0000000000,2451,-1.0000000000,2452,1.0000000000,2453,-1.0000000000,2454,1.0000000000,2455,-1.0000000000,2456,-1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,1.0000000000,2461,1.0000000000,2462,-1.0000000000,2463,1.0000000000,2464,-1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,-1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,-1.0000000000,2473,1.0000000000,2474,1.0000000000,2475,-1.0000000000,2476,-1.0000000000,2477,1.0000000000,2585,-1.0000000000 +1192,0,-0.0000000000,2428,1.0000000000,2429,1.0000000000,2430,1.0000000000,2431,-1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,1.0000000000,2435,1.0000000000,2436,-1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,1.0000000000,2440,-1.0000000000,2441,1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,1.0000000000,2445,-1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,1.0000000000,2449,1.0000000000,2450,-1.0000000000,2451,1.0000000000,2452,1.0000000000,2453,-1.0000000000,2454,1.0000000000,2455,-1.0000000000,2456,1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,1.0000000000,2462,1.0000000000,2463,-1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,-1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,-1.0000000000,2473,-1.0000000000,2474,1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,-1.0000000000,2586,-1.0000000000 +1193,0,-0.0000000000,2428,1.0000000000,2429,1.0000000000,2430,1.0000000000,2431,-1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,-1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,-1.0000000000,2442,-1.0000000000,2443,1.0000000000,2444,1.0000000000,2445,1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,1.0000000000,2449,1.0000000000,2450,1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,1.0000000000,2454,-1.0000000000,2455,1.0000000000,2456,-1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,1.0000000000,2462,-1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,-1.0000000000,2468,1.0000000000,2469,-1.0000000000,2470,-1.0000000000,2471,-1.0000000000,2472,-1.0000000000,2473,1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,1.0000000000,2587,-1.0000000000 +1194,0,-0.2191663980,2578,0.0748265833,2588,-1.0000000000 +1195,0,0.1379462183,2579,0.0680898950,2589,-1.0000000000 +1196,0,0.3651287258,2580,0.0697829127,2590,-1.0000000000 +1197,0,-0.3790612817,2581,0.0699527264,2591,-1.0000000000 +1198,0,0.0887304395,2582,0.0746282265,2592,-1.0000000000 +1199,0,0.1295915544,2583,0.0643937513,2593,-1.0000000000 +1200,0,0.3341619074,2584,0.0683351308,2594,-1.0000000000 +1201,0,-0.0701742172,2585,0.0764223784,2595,-1.0000000000 +1202,0,0.2174075395,2586,0.0778548196,2596,-1.0000000000 +1203,0,0.3690969944,2587,0.0806291550,2597,-1.0000000000 +1204,0,-0.0000000000,2598,1.0000000000,2599,1.0000000000,2600,1.0000000000,2601,-1.0000000000,2602,1.0000000000,2603,1.0000000000,2604,-1.0000000000,2605,-1.0000000000,2606,1.0000000000,2607,1.0000000000,2628,-1.0000000000 +1205,0,-0.0000000000,2598,1.0000000000,2599,-1.0000000000,2600,-1.0000000000,2601,1.0000000000,2602,-1.0000000000,2603,1.0000000000,2604,-1.0000000000,2605,-1.0000000000,2606,-1.0000000000,2607,1.0000000000,2629,-1.0000000000 +1206,0,-0.0000000000,2598,1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,1.0000000000,2602,1.0000000000,2603,-1.0000000000,2604,-1.0000000000,2605,1.0000000000,2606,-1.0000000000,2607,1.0000000000,2630,-1.0000000000 +1207,0,-0.0000000000,2598,1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,1.0000000000,2603,1.0000000000,2604,1.0000000000,2605,-1.0000000000,2606,-1.0000000000,2607,-1.0000000000,2631,-1.0000000000 +1208,0,-0.0000000000,2598,-1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,-1.0000000000,2603,-1.0000000000,2604,-1.0000000000,2605,1.0000000000,2606,-1.0000000000,2607,1.0000000000,2632,-1.0000000000 +1209,0,-0.0000000000,2598,-1.0000000000,2599,1.0000000000,2600,1.0000000000,2601,-1.0000000000,2602,1.0000000000,2603,1.0000000000,2604,-1.0000000000,2605,1.0000000000,2606,1.0000000000,2607,1.0000000000,2633,-1.0000000000 +1210,0,-0.0000000000,2598,-1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,-1.0000000000,2603,-1.0000000000,2604,-1.0000000000,2605,1.0000000000,2606,1.0000000000,2607,-1.0000000000,2634,-1.0000000000 +1211,0,-0.0000000000,2598,1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,-1.0000000000,2603,1.0000000000,2604,1.0000000000,2605,1.0000000000,2606,-1.0000000000,2607,1.0000000000,2635,-1.0000000000 +1212,0,-0.0000000000,2598,-1.0000000000,2599,-1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,-1.0000000000,2603,1.0000000000,2604,-1.0000000000,2605,-1.0000000000,2606,1.0000000000,2607,-1.0000000000,2636,-1.0000000000 +1213,0,-0.0000000000,2598,-1.0000000000,2599,1.0000000000,2600,1.0000000000,2601,1.0000000000,2602,1.0000000000,2603,-1.0000000000,2604,-1.0000000000,2605,-1.0000000000,2606,-1.0000000000,2607,-1.0000000000,2637,-1.0000000000 +1214,0,0.0786820799,2628,0.2380353510,2638,-1.0000000000 +1215,0,0.2452328354,2629,0.2767313421,2639,-1.0000000000 +1216,0,0.4382847250,2630,0.2744768858,2640,-1.0000000000 +1217,0,0.1370536983,2631,0.2933354974,2641,-1.0000000000 +1218,0,-0.0251469873,2632,0.2791853845,2642,-1.0000000000 +1219,0,-0.2257008702,2633,0.2494552583,2643,-1.0000000000 +1220,0,-0.0018014926,2634,0.3040358126,2644,-1.0000000000 +1221,0,-0.0473403111,2635,0.2666788399,2645,-1.0000000000 +1222,0,-0.3460843861,2636,0.2826097310,2646,-1.0000000000 +1223,0,0.0315086767,2637,0.2692045569,2647,-1.0000000000 +1224,0,-0.0000000000,2648,-1.0000000000,2649,-1.0000000000,2650,-1.0000000000,2651,-1.0000000000,2652,1.0000000000,2653,1.0000000000,2654,1.0000000000,2655,1.0000000000,2656,1.0000000000,2657,-1.0000000000,784,-1.0000000000 +1225,0,-0.0000000000,2648,-1.0000000000,2649,-1.0000000000,2650,-1.0000000000,2651,-1.0000000000,2652,-1.0000000000,2653,-1.0000000000,2654,-1.0000000000,2655,-1.0000000000,2656,-1.0000000000,2657,1.0000000000,785,-1.0000000000 +1226,0,-0.0000000000,2648,1.0000000000,2649,-1.0000000000,2650,-1.0000000000,2651,1.0000000000,2652,-1.0000000000,2653,1.0000000000,2654,1.0000000000,2655,-1.0000000000,2656,1.0000000000,2657,1.0000000000,786,-1.0000000000 +1227,0,-0.0000000000,2648,1.0000000000,2649,-1.0000000000,2650,1.0000000000,2651,-1.0000000000,2652,1.0000000000,2653,1.0000000000,2654,-1.0000000000,2655,-1.0000000000,2656,-1.0000000000,2657,1.0000000000,787,-1.0000000000 +1228,0,-0.0000000000,2648,-1.0000000000,2649,1.0000000000,2650,-1.0000000000,2651,1.0000000000,2652,-1.0000000000,2653,-1.0000000000,2654,-1.0000000000,2655,1.0000000000,2656,1.0000000000,2657,1.0000000000,788,-1.0000000000 +1229,0,-0.0000000000,2648,1.0000000000,2649,1.0000000000,2650,1.0000000000,2651,1.0000000000,2652,1.0000000000,2653,1.0000000000,2654,-1.0000000000,2655,1.0000000000,2656,1.0000000000,2657,-1.0000000000,789,-1.0000000000 +1230,0,-0.0000000000,2648,-1.0000000000,2649,-1.0000000000,2650,1.0000000000,2651,1.0000000000,2652,1.0000000000,2653,-1.0000000000,2654,1.0000000000,2655,1.0000000000,2656,-1.0000000000,2657,1.0000000000,790,-1.0000000000 +1231,0,-0.0000000000,2648,-1.0000000000,2649,1.0000000000,2650,1.0000000000,2651,-1.0000000000,2652,1.0000000000,2653,-1.0000000000,2654,1.0000000000,2655,-1.0000000000,2656,1.0000000000,2657,1.0000000000,791,-1.0000000000 +1232,0,-0.0000000000,2648,1.0000000000,2649,-1.0000000000,2650,-1.0000000000,2651,1.0000000000,2652,-1.0000000000,2653,1.0000000000,2654,-1.0000000000,2655,1.0000000000,2656,-1.0000000000,2657,-1.0000000000,792,-1.0000000000 +1233,0,-0.0000000000,2648,1.0000000000,2649,1.0000000000,2650,-1.0000000000,2651,-1.0000000000,2652,-1.0000000000,2653,1.0000000000,2654,-1.0000000000,2655,-1.0000000000,2656,1.0000000000,2657,-1.0000000000,793,-1.0000000000 +1234,2,0,790,-1.0000000000,789,1.0000000000 +0,sign,1678,1628 +1,sign,1679,1629 +2,sign,1680,1630 +3,sign,1681,1631 +4,sign,1682,1632 +5,sign,1683,1633 +6,sign,1684,1634 +7,sign,1685,1635 +8,sign,1686,1636 +9,sign,1687,1637 +10,sign,1688,1638 +11,sign,1689,1639 +12,sign,1690,1640 +13,sign,1691,1641 +14,sign,1692,1642 +15,sign,1693,1643 +16,sign,1694,1644 +17,sign,1695,1645 +18,sign,1696,1646 +19,sign,1697,1647 +20,sign,1698,1648 +21,sign,1699,1649 +22,sign,1700,1650 +23,sign,1701,1651 +24,sign,1702,1652 +25,sign,1703,1653 +26,sign,1704,1654 +27,sign,1705,1655 +28,sign,1706,1656 +29,sign,1707,1657 +30,sign,1708,1658 +31,sign,1709,1659 +32,sign,1710,1660 +33,sign,1711,1661 +34,sign,1712,1662 +35,sign,1713,1663 +36,sign,1714,1664 +37,sign,1715,1665 +38,sign,1716,1666 +39,sign,1717,1667 +40,sign,1718,1668 +41,sign,1719,1669 +42,sign,1720,1670 +43,sign,1721,1671 +44,sign,1722,1672 +45,sign,1723,1673 +46,sign,1724,1674 +47,sign,1725,1675 +48,sign,1726,1676 +49,sign,1727,1677 +50,sign,1928,1878 +51,sign,1929,1879 +52,sign,1930,1880 +53,sign,1931,1881 +54,sign,1932,1882 +55,sign,1933,1883 +56,sign,1934,1884 +57,sign,1935,1885 +58,sign,1936,1886 +59,sign,1937,1887 +60,sign,1938,1888 +61,sign,1939,1889 +62,sign,1940,1890 +63,sign,1941,1891 +64,sign,1942,1892 +65,sign,1943,1893 +66,sign,1944,1894 +67,sign,1945,1895 +68,sign,1946,1896 +69,sign,1947,1897 +70,sign,1948,1898 +71,sign,1949,1899 +72,sign,1950,1900 +73,sign,1951,1901 +74,sign,1952,1902 +75,sign,1953,1903 +76,sign,1954,1904 +77,sign,1955,1905 +78,sign,1956,1906 +79,sign,1957,1907 +80,sign,1958,1908 +81,sign,1959,1909 +82,sign,1960,1910 +83,sign,1961,1911 +84,sign,1962,1912 +85,sign,1963,1913 +86,sign,1964,1914 +87,sign,1965,1915 +88,sign,1966,1916 +89,sign,1967,1917 +90,sign,1968,1918 +91,sign,1969,1919 +92,sign,1970,1920 +93,sign,1971,1921 +94,sign,1972,1922 +95,sign,1973,1923 +96,sign,1974,1924 +97,sign,1975,1925 +98,sign,1976,1926 +99,sign,1977,1927 +100,sign,2178,2128 +101,sign,2179,2129 +102,sign,2180,2130 +103,sign,2181,2131 +104,sign,2182,2132 +105,sign,2183,2133 +106,sign,2184,2134 +107,sign,2185,2135 +108,sign,2186,2136 +109,sign,2187,2137 +110,sign,2188,2138 +111,sign,2189,2139 +112,sign,2190,2140 +113,sign,2191,2141 +114,sign,2192,2142 +115,sign,2193,2143 +116,sign,2194,2144 +117,sign,2195,2145 +118,sign,2196,2146 +119,sign,2197,2147 +120,sign,2198,2148 +121,sign,2199,2149 +122,sign,2200,2150 +123,sign,2201,2151 +124,sign,2202,2152 +125,sign,2203,2153 +126,sign,2204,2154 +127,sign,2205,2155 +128,sign,2206,2156 +129,sign,2207,2157 +130,sign,2208,2158 +131,sign,2209,2159 +132,sign,2210,2160 +133,sign,2211,2161 +134,sign,2212,2162 +135,sign,2213,2163 +136,sign,2214,2164 +137,sign,2215,2165 +138,sign,2216,2166 +139,sign,2217,2167 +140,sign,2218,2168 +141,sign,2219,2169 +142,sign,2220,2170 +143,sign,2221,2171 +144,sign,2222,2172 +145,sign,2223,2173 +146,sign,2224,2174 +147,sign,2225,2175 +148,sign,2226,2176 +149,sign,2227,2177 +150,sign,2428,2378 +151,sign,2429,2379 +152,sign,2430,2380 +153,sign,2431,2381 +154,sign,2432,2382 +155,sign,2433,2383 +156,sign,2434,2384 +157,sign,2435,2385 +158,sign,2436,2386 +159,sign,2437,2387 +160,sign,2438,2388 +161,sign,2439,2389 +162,sign,2440,2390 +163,sign,2441,2391 +164,sign,2442,2392 +165,sign,2443,2393 +166,sign,2444,2394 +167,sign,2445,2395 +168,sign,2446,2396 +169,sign,2447,2397 +170,sign,2448,2398 +171,sign,2449,2399 +172,sign,2450,2400 +173,sign,2451,2401 +174,sign,2452,2402 +175,sign,2453,2403 +176,sign,2454,2404 +177,sign,2455,2405 +178,sign,2456,2406 +179,sign,2457,2407 +180,sign,2458,2408 +181,sign,2459,2409 +182,sign,2460,2410 +183,sign,2461,2411 +184,sign,2462,2412 +185,sign,2463,2413 +186,sign,2464,2414 +187,sign,2465,2415 +188,sign,2466,2416 +189,sign,2467,2417 +190,sign,2468,2418 +191,sign,2469,2419 +192,sign,2470,2420 +193,sign,2471,2421 +194,sign,2472,2422 +195,sign,2473,2423 +196,sign,2474,2424 +197,sign,2475,2425 +198,sign,2476,2426 +199,sign,2477,2427 +200,sign,2598,2588 +201,sign,2599,2589 +202,sign,2600,2590 +203,sign,2601,2591 +204,sign,2602,2592 +205,sign,2603,2593 +206,sign,2604,2594 +207,sign,2605,2595 +208,sign,2606,2596 +209,sign,2607,2597 +210,sign,2648,2638 +211,sign,2649,2639 +212,sign,2650,2640 +213,sign,2651,2641 +214,sign,2652,2642 +215,sign,2653,2643 +216,sign,2654,2644 +217,sign,2655,2645 +218,sign,2656,2646 +219,sign,2657,2647 From 18867aefbb01b021640ed1b217eb6ea96acac45b Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Sun, 26 Nov 2023 15:06:33 +0200 Subject: [PATCH 107/165] Minor --- maraboupy/Marabou.py | 3 +- maraboupy/MarabouCore.cpp | 2 +- src/engine/PiecewiseLinearConstraint.h | 4 +- src/proofs/Checker.cpp | 94 +++++++++++--------- src/proofs/Checker.h | 32 ++++--- src/proofs/PlcLemma.cpp | 4 - src/proofs/PlcLemma.h | 1 - src/proofs/SmtLibWriter.cpp | 18 ++-- src/proofs/SmtLibWriter.h | 2 +- src/proofs/UnsatCertificateNode.cpp | 2 +- src/proofs/UnsatCertificateNode.h | 4 +- src/proofs/tests/Test_UnsatCertificateNode.h | 10 +-- 12 files changed, 94 insertions(+), 82 deletions(-) diff --git a/maraboupy/Marabou.py b/maraboupy/Marabou.py index 8d344a48cf..6555b23ffa 100644 --- a/maraboupy/Marabou.py +++ b/maraboupy/Marabou.py @@ -126,7 +126,7 @@ def createOptions(numWorkers=1, initialTimeout=5, initialSplits=0, onlineSplits= preprocessorBoundTolerance=0.0000000001, dumpBounds=False, tighteningStrategy="deeppoly", milpTightening="none", milpSolverTimeout=0, numSimulations=10, numBlasThreads=1, performLpTighteningAfterSplit=False, - lpSolver=""): + lpSolver="", produceProofs=False): """Create an options object for how Marabou should solve the query Args: @@ -179,4 +179,5 @@ def createOptions(numWorkers=1, initialTimeout=5, initialSplits=0, onlineSplits= options._numBlasThreads = numBlasThreads options._performLpTighteningAfterSplit = performLpTighteningAfterSplit options._lpSolver = lpSolver + options._produceProofs = produceProofs return options diff --git a/maraboupy/MarabouCore.cpp b/maraboupy/MarabouCore.cpp index f4bb934f3b..4b46c03265 100644 --- a/maraboupy/MarabouCore.cpp +++ b/maraboupy/MarabouCore.cpp @@ -231,7 +231,7 @@ struct MarabouOptions { , _tighteningStrategyString( Options::get()->getString( Options::SYMBOLIC_BOUND_TIGHTENING_TYPE ).ascii() ) , _milpTighteningString( Options::get()->getString( Options::MILP_SOLVER_BOUND_TIGHTENING_TYPE ).ascii() ) , _lpSolverString( Options::get()->getString( Options::LP_SOLVER ).ascii() ) - , _produceProofs( Options::get()->getBool( Options::PRODUCE_PROOFS )) + , _produceProofs( Options::get()->getBool( Options::PRODUCE_PROOFS ) ) {}; void setOptions() diff --git a/src/engine/PiecewiseLinearConstraint.h b/src/engine/PiecewiseLinearConstraint.h index 7fbbac1b37..a0c0eba751 100644 --- a/src/engine/PiecewiseLinearConstraint.h +++ b/src/engine/PiecewiseLinearConstraint.h @@ -457,8 +457,9 @@ class PiecewiseLinearConstraint : public ITableau::VariableWatcher Add a variable to the list of aux vars designated in the Tableau second argument is used for MaxConstraints */ - virtual void addTableauAuxVar( unsigned tableauAuxVar, unsigned /*constraintAuxVar*/ ) + virtual void addTableauAuxVar( unsigned tableauAuxVar, unsigned constraintAuxVar ) { + ASSERT ( constraintAuxVar < tableauAuxVar ); _tableauAuxVars.append( tableauAuxVar ); } @@ -469,6 +470,7 @@ class PiecewiseLinearConstraint : public ITableau::VariableWatcher { return {}; } + protected: unsigned _numCases; // Number of possible cases/phases for this constraint // (e.g. 2 for ReLU, ABS, SIGN; >=2 for Max and Disjunction ) diff --git a/src/proofs/Checker.cpp b/src/proofs/Checker.cpp index e4130017e3..f42fbb523a 100644 --- a/src/proofs/Checker.cpp +++ b/src/proofs/Checker.cpp @@ -92,48 +92,10 @@ bool Checker::checkNode( const UnsatCertificateNode *node ) if ( !checkSingleVarSplits( childrenSplits ) && !childrenSplitConstraint ) return false; + // Fix the constraints phase according to the child, and check each child for ( const auto &child : node->getChildren() ) { - // Fix the phase of the constraint corresponding to the children - if ( childrenSplitConstraint && childrenSplitConstraint->getType() == PiecewiseLinearFunctionType::RELU ) - { - List tightenings = child->getSplit().getBoundTightenings(); - if ( tightenings.front()._type == Tightening::LB || tightenings.back()._type == Tightening::LB ) - childrenSplitConstraint->setPhaseStatus( RELU_PHASE_ACTIVE ); - else - childrenSplitConstraint->setPhaseStatus( RELU_PHASE_INACTIVE ); - } - - else if ( childrenSplitConstraint && childrenSplitConstraint->getType() == PiecewiseLinearFunctionType::SIGN ) - { - List tightenings = child->getSplit().getBoundTightenings(); - if ( tightenings.front()._type == Tightening::LB ) - childrenSplitConstraint->setPhaseStatus( SIGN_PHASE_POSITIVE ); - else - childrenSplitConstraint->setPhaseStatus( SIGN_PHASE_NEGATIVE ); - } - else if ( childrenSplitConstraint && childrenSplitConstraint->getType() == PiecewiseLinearFunctionType::ABSOLUTE_VALUE ) - { - List tightenings = child->getSplit().getBoundTightenings(); - if ( tightenings.front()._type == Tightening::LB ) - childrenSplitConstraint->setPhaseStatus( ABS_PHASE_POSITIVE ); - else - childrenSplitConstraint->setPhaseStatus( ABS_PHASE_NEGATIVE ); - } - else if ( childrenSplitConstraint && childrenSplitConstraint->getType() == PiecewiseLinearFunctionType::MAX ) - { - List tightenings = child->getSplit().getBoundTightenings(); - if ( tightenings.size() == 2 ) - childrenSplitConstraint->setPhaseStatus( MAX_PHASE_ELIMINATED ); - else - { - PhaseStatus phase = ( ( MaxConstraint * )childrenSplitConstraint )->variableToPhase( tightenings.back()._variable ); - childrenSplitConstraint->setPhaseStatus( phase ); - } - } - else if ( childrenSplitConstraint && childrenSplitConstraint->getType() == PiecewiseLinearFunctionType::DISJUNCTION ) - ( ( DisjunctionConstraint * )childrenSplitConstraint )->removeFeasibleDisjunct( child->getSplit() ); - + fixChildSplitPhase( child, childrenSplitConstraint ); if ( !checkNode( child ) ) answer = false; } @@ -161,6 +123,47 @@ bool Checker::checkNode( const UnsatCertificateNode *node ) return answer; } +void Checker::fixChildSplitPhase( UnsatCertificateNode *child, PiecewiseLinearConstraint *childrenSplitConstraint ) +{ + if ( childrenSplitConstraint && childrenSplitConstraint->getType() == PiecewiseLinearFunctionType::RELU ) + { + List tightenings = child->getSplit().getBoundTightenings(); + if ( tightenings.front()._type == Tightening::LB || tightenings.back()._type == Tightening::LB ) + childrenSplitConstraint->setPhaseStatus( RELU_PHASE_ACTIVE ); + else + childrenSplitConstraint->setPhaseStatus( RELU_PHASE_INACTIVE ); + } + else if ( childrenSplitConstraint && childrenSplitConstraint->getType() == PiecewiseLinearFunctionType::SIGN ) + { + List tightenings = child->getSplit().getBoundTightenings(); + if ( tightenings.front()._type == Tightening::LB ) + childrenSplitConstraint->setPhaseStatus( SIGN_PHASE_POSITIVE ); + else + childrenSplitConstraint->setPhaseStatus( SIGN_PHASE_NEGATIVE ); + } + else if ( childrenSplitConstraint && childrenSplitConstraint->getType() == PiecewiseLinearFunctionType::ABSOLUTE_VALUE ) + { + List tightenings = child->getSplit().getBoundTightenings(); + if ( tightenings.front()._type == Tightening::LB ) + childrenSplitConstraint->setPhaseStatus( ABS_PHASE_POSITIVE ); + else + childrenSplitConstraint->setPhaseStatus( ABS_PHASE_NEGATIVE ); + } + else if ( childrenSplitConstraint && childrenSplitConstraint->getType() == PiecewiseLinearFunctionType::MAX ) + { + List tightenings = child->getSplit().getBoundTightenings(); + if ( tightenings.size() == 2 ) + childrenSplitConstraint->setPhaseStatus( MAX_PHASE_ELIMINATED ); + else + { + PhaseStatus phase = ( ( MaxConstraint * )childrenSplitConstraint )->variableToPhase( tightenings.back()._variable ); + childrenSplitConstraint->setPhaseStatus( phase ); + } + } + else if ( childrenSplitConstraint && childrenSplitConstraint->getType() == PiecewiseLinearFunctionType::DISJUNCTION ) + ( ( DisjunctionConstraint * )childrenSplitConstraint )->removeFeasibleDisjunct( child->getSplit() ); +} + bool Checker::checkContradiction( const UnsatCertificateNode *node ) const { ASSERT( node->isValidLeaf() && !node->getSATSolutionFlag() ); @@ -198,6 +201,8 @@ bool Checker::checkAllPLCExplanations( const UnsatCertificateNode *node, double continue; participatingVars = constraint->getParticipatingVariables(); + + // If the constraint is max, then lemma variables might have been eliminated if ( constraint->getType() == MAX ) { MaxConstraint *maxConstraint = ( MaxConstraint * ) constraint; @@ -460,7 +465,7 @@ PiecewiseLinearConstraint *Checker::getCorrespondingAbsConstraint( const ListgetF() && splits.back().getBoundTightenings().back()._type != splits.front().getBoundTightenings().back()._type ) + if ( splits.size() == 2 && splits.back().getBoundTightenings().size() == 1 && splits.front().getBoundTightenings().size() == 1 && + splits.back().getBoundTightenings().back()._variable == splits.front().getBoundTightenings().back()._variable && + splits.back().getBoundTightenings().back()._variable == maxConstraint->getF() && + splits.back().getBoundTightenings().back()._type != splits.front().getBoundTightenings().back()._type ) return constraint; if ( constraintMatched ) @@ -691,7 +699,7 @@ double Checker::checkAbsLemma( const PLCLemma &expl, PiecewiseLinearConstraint & const double *firstExplanation = expl.getExplanations(); const double *secondExplanation = expl.getExplanations() + _proofSize; - // Case of a non-phase fixing lemma + // Case of a non phase-fixing lemma if ( firstCausingVar == secondCausingVar ) { double explainedUpperBound = UNSATCertificateUtils::computeBound( firstCausingVar, UPPER, firstExplanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); diff --git a/src/proofs/Checker.h b/src/proofs/Checker.h index 2cc9cbc377..595cbc13a4 100644 --- a/src/proofs/Checker.h +++ b/src/proofs/Checker.h @@ -60,7 +60,6 @@ class Checker Stack> _upperBoundChanges; Stack> _lowerBoundChanges; - /* Checks a node in the certificate tree */ @@ -72,24 +71,24 @@ class Checker bool checkAllPLCExplanations( const UnsatCertificateNode *node, double epsilon ); /* - Return a change in the ground bounds caused by a ReLU constraint. + Return a change in the ground bounds caused by a ReLU constraint. */ - double checkReluLemma(const PLCLemma &expl, PiecewiseLinearConstraint &constraint, double epsilon ); + double checkReluLemma( const PLCLemma &expl, PiecewiseLinearConstraint &constraint, double epsilon ); /* - Return a change in the ground bounds caused by a Sign constraint. + Return a change in the ground bounds caused by a Sign constraint. */ - double checkSignLemma(const PLCLemma &expl, PiecewiseLinearConstraint &constraint, double epsilon ); + double checkSignLemma( const PLCLemma &expl, PiecewiseLinearConstraint &constraint, double epsilon ); /* - Return a change in the ground bounds caused by a Absolute Value constraint. + Return a change in the ground bounds caused by a Absolute Value constraint. */ - double checkAbsLemma(const PLCLemma &expl, PiecewiseLinearConstraint &constraint, double epsilon ); + double checkAbsLemma( const PLCLemma &expl, PiecewiseLinearConstraint &constraint, double epsilon ); /* - Return a change in the ground bounds caused by a Max constraint. + Return a change in the ground bounds caused by a Max constraint. */ - double checkMaxLemma(const PLCLemma &expl, PiecewiseLinearConstraint &constraint ); + double checkMaxLemma( const PLCLemma &expl, PiecewiseLinearConstraint &constraint ); /* Checks a contradiction @@ -112,27 +111,27 @@ class Checker PiecewiseLinearConstraint *getCorrespondingConstraint( const List &splits ); /* - Return a pointer to a ReLU problem constraint representing the split + Return a pointer to a ReLU problem constraint representing the split */ PiecewiseLinearConstraint *getCorrespondingReluConstraint( const List &splits ); /* - Return a pointer to a sign problem constraint representing the split + Return a pointer to a sign problem constraint representing the split */ PiecewiseLinearConstraint *getCorrespondingSignConstraint( const List &splits ); /* - Return a pointer to a absolute value problem constraint representing the split + Return a pointer to a absolute value problem constraint representing the split */ PiecewiseLinearConstraint *getCorrespondingAbsConstraint( const List &splits ); /* - Return a pointer to a max problem constraint representing the split + Return a pointer to a max problem constraint representing the split */ PiecewiseLinearConstraint *getCorrespondingMaxConstraint( const List &splits ); /* - Return a pointer to a disjunction problem constraint representing the split + Return a pointer to a disjunction problem constraint representing the split */ PiecewiseLinearConstraint *getCorrespondingDisjunctionConstraint( const List &splits ); @@ -140,6 +139,11 @@ class Checker Return true iff a list of splits represents a splits over a single variable */ bool checkSingleVarSplits( const List &splits ); + + /* + Fix phase of the child split + */ + void fixChildSplitPhase( UnsatCertificateNode *child, PiecewiseLinearConstraint *childrenSplitConstraint ); }; #endif //__Checker_h__ \ No newline at end of file diff --git a/src/proofs/PlcLemma.cpp b/src/proofs/PlcLemma.cpp index 457c9fc180..91b5e2df2c 100644 --- a/src/proofs/PlcLemma.cpp +++ b/src/proofs/PlcLemma.cpp @@ -53,14 +53,10 @@ PLCLemma::PLCLemma( const List &causingVars, ASSERT( numOfExplanations == causingVars.size() && proofSize ); if ( _constraintType == RELU || _constraintType == SIGN ) - { ASSERT( numOfExplanations == 1 ); - } if ( _constraintType == ABSOLUTE_VALUE ) - { ASSERT( numOfExplanations == 2 || numOfExplanations == 1 ); - } _explanations = new double[numOfExplanations * proofSize]; diff --git a/src/proofs/PlcLemma.h b/src/proofs/PlcLemma.h index a105703847..ceae40b0cc 100644 --- a/src/proofs/PlcLemma.h +++ b/src/proofs/PlcLemma.h @@ -35,7 +35,6 @@ class PLCLemma ~PLCLemma(); - /* Getters for all fields */ diff --git a/src/proofs/SmtLibWriter.cpp b/src/proofs/SmtLibWriter.cpp index 6fe1b51545..48c6e79abf 100644 --- a/src/proofs/SmtLibWriter.cpp +++ b/src/proofs/SmtLibWriter.cpp @@ -60,19 +60,19 @@ void SmtLibWriter::addAbsConstraint( unsigned b, unsigned f, const PhaseStatus s instance.append( "( assert ( = x" + std::to_string( f ) + " ( - x" + std::to_string( b ) + " ) ) )\n" ); } -void SmtLibWriter::addMaxConstraint( unsigned f, const Set &elements, const PhaseStatus status, double info ,List &instance ) +void SmtLibWriter::addMaxConstraint( unsigned f, const Set &elements, const PhaseStatus status, double maxVal ,List &instance ) { String assertRowLine; unsigned counter; unsigned size = elements.size(); - // f equals to some value (the value of info) + // f equals to some value (the value of maxVal) if ( status == MAX_PHASE_ELIMINATED ) - instance.append( String ( "( assert ( = x" + std::to_string( f ) + " " ) + signedValue( info ) + " ) )\n" ); + instance.append( String ( "( assert ( = x" + std::to_string( f ) + " " ) + signedValue( maxVal ) + " ) )\n" ); - // f equals to some element (info should be an index) + // f equals to some element (maxVal is an index) else if ( status != PHASE_NOT_FIXED ) - instance.append( "( assert ( = x" + std::to_string( f ) + " x" + std::to_string( ( unsigned ) info ) + " ) )\n" ); + instance.append( "( assert ( = x" + std::to_string( f ) + " x" + std::to_string( ( unsigned ) maxVal ) + " ) )\n" ); else { @@ -94,12 +94,12 @@ void SmtLibWriter::addMaxConstraint( unsigned f, const Set &elements, assertRowLine += " ( >= x" + std::to_string( element ) + " x" + std::to_string( otherElement ) + " )"; } + for ( unsigned i = 0; i < size - 2 ; ++i ) assertRowLine += String( " )" ); assertRowLine += " ( = x" + std::to_string( f ) + " x" + std::to_string( element ) + " )"; - instance.append( assertRowLine + " ) )\n" ); } } @@ -119,12 +119,14 @@ void SmtLibWriter::addDisjunctionConstraint( const List &i assertRowLine += String( " " ); - // Coefficients +-1 can be neglected + // Coefficients +-1 can be dropped if ( entry->_value == 1 ) assertRowLine += String( "x" ) + std::to_string( entry->_index ); else if (entry->_value == -1 ) @@ -265,7 +267,7 @@ void SmtLibWriter::addEquation( const Equation &eq, List &instance ) assertRowLine += String( " " ); - // Coefficients +-1 can be neglected + // Coefficients +-1 can be dropped if ( addend._coefficient == 1 ) assertRowLine += String( "x" ) + std::to_string( addend._variable ); else if (addend._coefficient == -1 ) diff --git a/src/proofs/SmtLibWriter.h b/src/proofs/SmtLibWriter.h index 1011eadb09..cb37bf559e 100644 --- a/src/proofs/SmtLibWriter.h +++ b/src/proofs/SmtLibWriter.h @@ -61,7 +61,7 @@ class SmtLibWriter /* Adds a line representing a max constraint, in SMTLIB format, to the SMTLIB instance */ - static void addMaxConstraint( unsigned f, const Set &elements, const PhaseStatus status, double info, List &instance ); + static void addMaxConstraint( unsigned f, const Set &elements, const PhaseStatus status, double maxVal, List &instance ); /* Adds a line representing a disjunction constraint, in SMTLIB format, to the SMTLIB instance diff --git a/src/proofs/UnsatCertificateNode.cpp b/src/proofs/UnsatCertificateNode.cpp index cb059fe60e..9f47a7524e 100644 --- a/src/proofs/UnsatCertificateNode.cpp +++ b/src/proofs/UnsatCertificateNode.cpp @@ -80,7 +80,7 @@ const List> &UnsatCertificateNode::getPLCLemmas() cons return _PLCExplanations; } -void UnsatCertificateNode::addPLCLemma(std::shared_ptr &explanation ) +void UnsatCertificateNode::addPLCLemma( std::shared_ptr &explanation ) { _PLCExplanations.append( explanation ); } diff --git a/src/proofs/UnsatCertificateNode.h b/src/proofs/UnsatCertificateNode.h index dc9db0092a..aad65c81a2 100644 --- a/src/proofs/UnsatCertificateNode.h +++ b/src/proofs/UnsatCertificateNode.h @@ -17,10 +17,10 @@ #include "BoundExplainer.h" #include "Contradiction.h" -#include "SmtLibWriter.h" #include "PiecewiseLinearFunctionType.h" #include "PlcLemma.h" #include "ReluConstraint.h" +#include "SmtLibWriter.h" #include "UnsatCertificateUtils.h" enum DelegationStatus : unsigned @@ -72,7 +72,7 @@ class UnsatCertificateNode /* Adds an PLC explanation to the list */ - void addPLCLemma(std::shared_ptr &explanation ); + void addPLCLemma( std::shared_ptr &explanation ); /* Returns a pointer to a child by a head split, or NULL if not found diff --git a/src/proofs/tests/Test_UnsatCertificateNode.h b/src/proofs/tests/Test_UnsatCertificateNode.h index 170a49e13d..cd151f96e1 100644 --- a/src/proofs/tests/Test_UnsatCertificateNode.h +++ b/src/proofs/tests/Test_UnsatCertificateNode.h @@ -87,12 +87,12 @@ class UnsatCertificateNodeTestSuite : public CxxTest::TestSuite TS_ASSERT(root.getPLCLemmas().empty() ); - root.addPLCLemma(explanation1); - root.addPLCLemma(explanation2); - root.addPLCLemma(explanation3); - TS_ASSERT_EQUALS(root.getPLCLemmas().size(), 3U ); + root.addPLCLemma( explanation1 ); + root.addPLCLemma( explanation2 ); + root.addPLCLemma( explanation3 ); + TS_ASSERT_EQUALS( root.getPLCLemmas().size(), 3U ); root.deletePLCExplanations(); - TS_ASSERT(root.getPLCLemmas().empty() ); + TS_ASSERT( root.getPLCLemmas().empty() ); } }; From 44129f80992c0249e8d49cdb477bb6a59d45a359 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Sun, 26 Nov 2023 15:13:52 +0200 Subject: [PATCH 108/165] Minor --- src/engine/TableauState.cpp | 10 +++++ src/engine/TableauState.h | 5 +++ src/proofs/PlcExplanation.cpp | 82 ----------------------------------- src/proofs/PlcExplanation.h | 60 ------------------------- 4 files changed, 15 insertions(+), 142 deletions(-) delete mode 100644 src/proofs/PlcExplanation.cpp delete mode 100644 src/proofs/PlcExplanation.h diff --git a/src/engine/TableauState.cpp b/src/engine/TableauState.cpp index fdaeb2b670..4d9dab95d4 100644 --- a/src/engine/TableauState.cpp +++ b/src/engine/TableauState.cpp @@ -205,7 +205,17 @@ void TableauState::setDimensions( unsigned m, unsigned n, const IBasisFactorizat _basisFactorization = BasisFactorizationFactory::createBasisFactorization( m, oracle ); if ( !_basisFactorization ) throw MarabouError( MarabouError::ALLOCATION_FAILED, "TableauState::basisFactorization" ); +} +void TableauState::initializeBounds( unsigned n ) +{ + _lowerBounds = new double[n]; + if ( !_lowerBounds ) + throw MarabouError( MarabouError::ALLOCATION_FAILED, "TableauState::lowerBounds" ); + + _upperBounds = new double[n]; + if ( !_upperBounds ) + throw MarabouError( MarabouError::ALLOCATION_FAILED, "TableauState::upperBounds" ); } // diff --git a/src/engine/TableauState.h b/src/engine/TableauState.h index a83ff6b6ed..d54d3e4fdf 100644 --- a/src/engine/TableauState.h +++ b/src/engine/TableauState.h @@ -43,6 +43,11 @@ class TableauState void setDimensions( unsigned m, unsigned n, const IBasisFactorization::BasisColumnOracle &oracle ); + /* + Just create the bounds array. + */ + void initializeBounds( unsigned n ); + /* The dimensions of matrix A */ diff --git a/src/proofs/PlcExplanation.cpp b/src/proofs/PlcExplanation.cpp deleted file mode 100644 index 69a46f3dd2..0000000000 --- a/src/proofs/PlcExplanation.cpp +++ /dev/null @@ -1,82 +0,0 @@ -/********************* */ -/*! \file PlcExplanation.cpp - ** \verbatim - ** Top contributors (to current version): - ** Omri Isac, Guy Katz - ** This file is part of the Marabou project. - ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS - ** in the top-level source directory) and their institutional affiliations. - ** All rights reserved. See the file COPYING in the top-level source - ** directory for licensing information.\endverbatim - ** - ** [[ Add lengthier description here ]] - **/ - -#include "PlcExplanation.h" - -PLCExplanation::PLCExplanation( unsigned causingVar, - unsigned affectedVar, - double bound, - BoundType causingVarBound, - BoundType affectedVarBound, - const Vector &explanation, - PiecewiseLinearFunctionType constraintType ) - : _causingVar( causingVar ) - , _affectedVar( affectedVar ) - , _bound( bound ) - , _causingVarBound( causingVarBound ) - , _affectedVarBound( affectedVarBound ) - , _constraintType( constraintType ) -{ - if ( explanation.empty() ) - _explanation = NULL; - else - { - _explanation = new double[explanation.size()]; - std::copy( explanation.begin(), explanation.end(), _explanation ); - } -} - -PLCExplanation::~PLCExplanation() -{ - if ( _explanation ) - { - delete [] _explanation; - _explanation = NULL; - } -} - -unsigned PLCExplanation::getCausingVar() const -{ - return _causingVar; -} - -unsigned PLCExplanation::getAffectedVar() const -{ - return _affectedVar; -} - -double PLCExplanation::getBound() const -{ - return _bound; -} - -BoundType PLCExplanation::getCausingVarBound() const -{ - return _causingVarBound; -} - -BoundType PLCExplanation::getAffectedVarBound() const -{ - return _affectedVarBound; -} - -const double *PLCExplanation::getExplanation() const -{ - return _explanation; -} - -PiecewiseLinearFunctionType PLCExplanation::getConstraintType() const -{ - return _constraintType; -} diff --git a/src/proofs/PlcExplanation.h b/src/proofs/PlcExplanation.h deleted file mode 100644 index c68c6fa7d2..0000000000 --- a/src/proofs/PlcExplanation.h +++ /dev/null @@ -1,60 +0,0 @@ -/********************* */ -/*! \file PlcExplanation.h - ** \verbatim - ** Top contributors (to current version): - ** Omri Isac, Guy Katz - ** This file is part of the Marabou project. - ** Copyright (c) 2017-2022 by the authors listed in the file AUTHORS - ** in the top-level source directory) and their institutional affiliations. - ** All rights reserved. See the file COPYING in the top-level source - ** directory for licensing information.\endverbatim - ** - ** [[ Add lengthier description here ]] - **/ - -#ifndef __PlcExplanation_h__ -#define __PlcExplanation_h__ - -#include "PiecewiseLinearConstraint.h" -#include "PiecewiseLinearFunctionType.h" -#include "Vector.h" - -/* - Contains all necessary info of a ground bound update during a run (i.e from ReLU phase-fixing) -*/ -class PLCExplanation -{ -public: - PLCExplanation( unsigned causingVar, - unsigned affectedVar, - double bound, - BoundType causingVarBound, - BoundType affectedVarBound, - const Vector &explanation, - PiecewiseLinearFunctionType constraintType ); - - ~PLCExplanation(); - - - /* - Getters for all fields - */ - unsigned getCausingVar() const; - unsigned getAffectedVar() const; - double getBound() const; - BoundType getCausingVarBound() const; - BoundType getAffectedVarBound() const; - const double *getExplanation() const; - PiecewiseLinearFunctionType getConstraintType() const; - -private: - unsigned _causingVar; - unsigned _affectedVar; - double _bound; - BoundType _causingVarBound; - BoundType _affectedVarBound; - double *_explanation; - PiecewiseLinearFunctionType _constraintType; -}; - -#endif //__PlcExplanation_h__ From a93f8d50fc571c466782d889c4417b4761f4712b Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Sun, 26 Nov 2023 15:19:15 +0200 Subject: [PATCH 109/165] Minor --- src/engine/tests/Test_SmtCore.h | 6 +++--- src/proofs/CMakeLists.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/engine/tests/Test_SmtCore.h b/src/engine/tests/Test_SmtCore.h index 6a03bc3d76..4e3815bdc6 100644 --- a/src/engine/tests/Test_SmtCore.h +++ b/src/engine/tests/Test_SmtCore.h @@ -170,9 +170,9 @@ class SmtCoreTestSuite : public CxxTest::TestSuite return ""; } - void initTighteningRow( const unsigned /*counterpart*/ ) - { - } + void initTighteningRow( const unsigned /*counterpart*/ ) + { + } }; void setUp() diff --git a/src/proofs/CMakeLists.txt b/src/proofs/CMakeLists.txt index 5ff7fc58e1..ad7aca42d1 100644 --- a/src/proofs/CMakeLists.txt +++ b/src/proofs/CMakeLists.txt @@ -22,4 +22,4 @@ proofs_add_unit_test(UnsatCertificateUtils) if (${BUILD_PYTHON}) target_include_directories(${MARABOU_PY} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") -endif() \ No newline at end of file +endif() From b8575240c34693792f76288290090c27713269a8 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Sun, 26 Nov 2023 15:31:56 +0200 Subject: [PATCH 110/165] minor --- src/engine/PiecewiseLinearConstraint.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/engine/PiecewiseLinearConstraint.h b/src/engine/PiecewiseLinearConstraint.h index a0c0eba751..61f7884d61 100644 --- a/src/engine/PiecewiseLinearConstraint.h +++ b/src/engine/PiecewiseLinearConstraint.h @@ -457,9 +457,8 @@ class PiecewiseLinearConstraint : public ITableau::VariableWatcher Add a variable to the list of aux vars designated in the Tableau second argument is used for MaxConstraints */ - virtual void addTableauAuxVar( unsigned tableauAuxVar, unsigned constraintAuxVar ) + virtual void addTableauAuxVar( unsigned tableauAuxVar, unsigned /* constraintAuxVar */ ) { - ASSERT ( constraintAuxVar < tableauAuxVar ); _tableauAuxVars.append( tableauAuxVar ); } From d9fdd72a4120d7897beb06f3555f8143975e67dc Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Sun, 3 Dec 2023 15:08:06 +0200 Subject: [PATCH 111/165] Fix Comments --- src/common/MString.cpp | 2 + src/configuration/GlobalConfiguration.cpp | 2 +- src/engine/AbsoluteValueConstraint.cpp | 63 ++++++++++--- src/engine/AbsoluteValueConstraint.h | 6 +- src/engine/BoundManager.cpp | 29 +++--- src/engine/BoundManager.h | 6 +- src/engine/DisjunctionConstraint.cpp | 13 ++- src/engine/DisjunctionConstraint.h | 2 + src/engine/Engine.cpp | 36 ++++---- src/engine/IBoundManager.h | 6 +- src/engine/MaxConstraint.cpp | 27 +++--- src/engine/PiecewiseLinearConstraint.h | 8 +- src/engine/PrecisionRestorer.cpp | 4 +- src/engine/ReluConstraint.cpp | 35 ++++++-- src/engine/ReluConstraint.h | 5 ++ src/engine/SignConstraint.cpp | 24 +++-- src/engine/SignConstraint.h | 6 ++ src/engine/T/RowBoundTightenerFactory.h | 1 + src/engine/tests/MockBoundManager.h | 6 +- src/engine/tests/Test_SmtCore.h | 6 +- src/proofs/Checker.cpp | 94 ++++++++++---------- src/proofs/PlcLemma.cpp | 2 - src/proofs/SmtLibWriter.cpp | 1 - src/proofs/tests/Test_UnsatCertificateNode.h | 6 +- 24 files changed, 239 insertions(+), 151 deletions(-) diff --git a/src/common/MString.cpp b/src/common/MString.cpp index 9c2773942a..3f4dcf570f 100644 --- a/src/common/MString.cpp +++ b/src/common/MString.cpp @@ -211,6 +211,8 @@ bool String::endsWith( const String &suffix ) return l1 >= l2 && _super.compare(l1 - l2, l2, suffix._super) == 0; } +std::ostream &operator<<( std::ostream &stream, const String &string ); + // // Local Variables: // compile-command: "make -C ../.. " diff --git a/src/configuration/GlobalConfiguration.cpp b/src/configuration/GlobalConfiguration.cpp index c721ce0cf1..ecd8bb17eb 100644 --- a/src/configuration/GlobalConfiguration.cpp +++ b/src/configuration/GlobalConfiguration.cpp @@ -91,7 +91,7 @@ const bool GlobalConfiguration::ONLY_AUX_INITIAL_BASIS = false; const GlobalConfiguration::ExplicitBasisBoundTighteningType GlobalConfiguration::EXPLICIT_BASIS_BOUND_TIGHTENING_TYPE = GlobalConfiguration::COMPUTE_INVERTED_BASIS_MATRIX; -const bool GlobalConfiguration::EXPLICIT_BOUND_TIGHTENING_UNTIL_SATURATION = true; +const bool GlobalConfiguration::EXPLICIT_BOUND_TIGHTENING_UNTIL_SATURATION = false; const unsigned GlobalConfiguration::REFACTORIZATION_THRESHOLD = 100; const GlobalConfiguration::BasisFactorizationType GlobalConfiguration::BASIS_FACTORIZATION_TYPE = diff --git a/src/engine/AbsoluteValueConstraint.cpp b/src/engine/AbsoluteValueConstraint.cpp index 52a1ea64c1..7fc5fb3c86 100644 --- a/src/engine/AbsoluteValueConstraint.cpp +++ b/src/engine/AbsoluteValueConstraint.cpp @@ -142,11 +142,18 @@ void AbsoluteValueConstraint::notifyLowerBound( unsigned variable, double bound if ( variable == _b ) { - if ( FloatUtils::lt( bound, 0 ) && ( !proofs || !phaseFixed() ) ) + if ( FloatUtils::lt( bound, 0 ) ) { double fUpperBound = FloatUtils::max( -bound, getUpperBound( _b ) ) ; - if ( proofs ) - _boundManager->addLemmaExplanation( _f, fUpperBound, UPPER, { variable, variable }, UPPER, getType() ); + // If phase is not fixed, both bonds are stored and checker should check the max of the two + if ( proofs && !phaseFixed() ) + _boundManager->addLemmaExplanationAndTightenBound( _f, fUpperBound, BoundType::UPPER, + { variable, variable }, BoundType::UPPER, getType() ); + else if ( proofs && phaseFixed() ) + { + std::shared_ptr tighteningRow = _phaseStatus == ABS_PHASE_POSITIVE ? _posTighteningRow : _negTighteningRow; + _boundManager->tightenUpperBound( _f, fUpperBound, *tighteningRow ); + } else _boundManager->tightenUpperBound( _f, fUpperBound ); @@ -209,11 +216,18 @@ void AbsoluteValueConstraint::notifyUpperBound( unsigned variable, double bound if ( variable == _b ) { - if ( FloatUtils::gt( bound, 0 ) && ( !proofs || !phaseFixed() ) ) + if ( FloatUtils::gt( bound, 0 ) ) { double fUpperBound = FloatUtils::max( bound, -getLowerBound( _b ) ) ; - if ( proofs ) - _boundManager->addLemmaExplanation( _f, fUpperBound, UPPER, { variable, variable }, UPPER, getType() ); + // If phase is not fixed, both bonds are stored and checker should check the max of the two + if ( proofs && !phaseFixed() ) + _boundManager->addLemmaExplanationAndTightenBound( _f, fUpperBound, BoundType::UPPER, + { variable, variable }, BoundType::UPPER, getType() ); + else if ( proofs && phaseFixed() ) + { + std::shared_ptr tighteningRow = _phaseStatus == ABS_PHASE_POSITIVE ? _posTighteningRow : _negTighteningRow; + _boundManager->tightenUpperBound( _f, fUpperBound, *tighteningRow ); + } else _boundManager->tightenUpperBound( _f, fUpperBound ); @@ -777,7 +791,6 @@ String AbsoluteValueConstraint::serializeToString() const void AbsoluteValueConstraint::fixPhaseIfNeeded() { - if ( phaseFixed() ) return; @@ -794,7 +807,8 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() { setPhaseStatus( ABS_PHASE_POSITIVE ); if ( proofs ) - _boundManager->addLemmaExplanation( _posAux, 0, UPPER, { _b }, LOWER, getType() ); + _boundManager->addLemmaExplanationAndTightenBound( _posAux, 0, BoundType::UPPER, { _b }, + BoundType::LOWER, getType() ); return; } @@ -803,7 +817,8 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() { setPhaseStatus( ABS_PHASE_NEGATIVE ); if ( proofs ) - _boundManager->addLemmaExplanation( _negAux, 0, UPPER, { _b }, UPPER, getType() ); + _boundManager->addLemmaExplanationAndTightenBound( _negAux, 0, BoundType::UPPER, { _b }, + BoundType::UPPER, getType()); return; } @@ -816,7 +831,8 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() { setPhaseStatus( ABS_PHASE_NEGATIVE ); if ( proofs ) - _boundManager->addLemmaExplanation( _negAux, 0, UPPER, { _b, _f }, UPPER, getType() ); + _boundManager->addLemmaExplanationAndTightenBound( _negAux, 0, BoundType::UPPER, { _b, _f }, + BoundType::UPPER, getType() ); return; } @@ -826,7 +842,8 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() { setPhaseStatus( ABS_PHASE_POSITIVE ); if ( proofs ) - _boundManager->addLemmaExplanation( _posAux, 0, UPPER, { _b, _f }, LOWER, getType() ); + _boundManager->addLemmaExplanationAndTightenBound( _posAux, 0, BoundType::UPPER, { _b, _f }, + BoundType::LOWER, getType() ); return; } @@ -844,7 +861,8 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() { setPhaseStatus( ABS_PHASE_NEGATIVE ); if ( proofs ) - _boundManager->addLemmaExplanation( _negAux, 0, UPPER, { _posAux }, LOWER, getType() ); + _boundManager->addLemmaExplanationAndTightenBound( _negAux, 0, BoundType::UPPER, { _posAux }, + BoundType::LOWER, getType() ); return; } @@ -860,7 +878,8 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() { setPhaseStatus( ABS_PHASE_POSITIVE ); if ( proofs ) - _boundManager->addLemmaExplanation( _posAux, 0, UPPER, { _negAux }, LOWER, getType() ); + _boundManager->addLemmaExplanationAndTightenBound( _posAux, 0, BoundType::UPPER, { _negAux }, + BoundType::LOWER, getType() ); return; } } @@ -919,3 +938,21 @@ const List AbsoluteValueConstraint::getNativeAuxVars() const return { _posAux, _negAux }; return {}; } + +void AbsoluteValueConstraint::addTableauAuxVar( unsigned tableauAuxVar, unsigned constraintAuxVar ) +{ + ASSERT( constraintAuxVar == _negAux || constraintAuxVar == _posAux ); + if ( _tableauAuxVars.size() == 2 ) + return; + + if ( constraintAuxVar == _negAux ) + { + _tableauAuxVars.append( tableauAuxVar ); + ASSERT( _tableauAuxVars.back() == tableauAuxVar ); + } + else + { + _tableauAuxVars.appendHead( tableauAuxVar ); + ASSERT( _tableauAuxVars.front() == tableauAuxVar ); + } +} diff --git a/src/engine/AbsoluteValueConstraint.h b/src/engine/AbsoluteValueConstraint.h index da1640a0c4..cf34ca02b1 100644 --- a/src/engine/AbsoluteValueConstraint.h +++ b/src/engine/AbsoluteValueConstraint.h @@ -237,7 +237,7 @@ class AbsoluteValueConstraint : public PiecewiseLinearConstraint /* Create a the tableau row used for explaining bound tightening caused by the constraint - Stored in _posTighteningRow + stored in _posTighteningRow */ void createPosTighteningRow(); @@ -247,6 +247,10 @@ class AbsoluteValueConstraint : public PiecewiseLinearConstraint */ void createNegTighteningRow(); + /* + Assign a variable as an aux variable by the tableau, related to some existing aux variable. + */ + void addTableauAuxVar( unsigned tableauAuxVar, unsigned constraintAuxVar ) override; }; #endif // __AbsoluteValueConstraint_h__ diff --git a/src/engine/BoundManager.cpp b/src/engine/BoundManager.cpp index a15bfd7507..9ca61cdde6 100644 --- a/src/engine/BoundManager.cpp +++ b/src/engine/BoundManager.cpp @@ -321,7 +321,7 @@ bool BoundManager::tightenLowerBound( unsigned variable, double value, const Tab if ( tightened ) { if ( _engine->shouldProduceProofs() ) - _boundExplainer->updateBoundExplanation( row, LOWER, variable ); + _boundExplainer->updateBoundExplanation( row, BoundType::LOWER, variable ); if ( _tableau != nullptr ) _tableau->updateVariableToComplyWithLowerBoundUpdate( variable, value ); @@ -336,7 +336,7 @@ bool BoundManager::tightenUpperBound( unsigned variable, double value, const Tab if ( tightened ) { if ( _engine->shouldProduceProofs() ) - _boundExplainer->updateBoundExplanation( row, UPPER, variable ); + _boundExplainer->updateBoundExplanation( row, BoundType::UPPER, variable ); if ( _tableau != nullptr ) _tableau->updateVariableToComplyWithUpperBoundUpdate( variable, value ); @@ -351,7 +351,7 @@ bool BoundManager::tightenLowerBound( unsigned variable, double value, const Spa if ( tightened ) { if ( _engine->shouldProduceProofs() ) - _boundExplainer->updateBoundExplanationSparse( row, LOWER, variable ); + _boundExplainer->updateBoundExplanationSparse( row, BoundType::LOWER, variable ); if ( _tableau != nullptr ) _tableau->updateVariableToComplyWithLowerBoundUpdate( variable, value ); @@ -366,7 +366,7 @@ bool BoundManager::tightenUpperBound( unsigned variable, double value, const Spa if ( tightened ) { if ( _engine->shouldProduceProofs() ) - _boundExplainer->updateBoundExplanationSparse( row, UPPER, variable ); + _boundExplainer->updateBoundExplanationSparse( row, BoundType::UPPER, variable ); if ( _tableau != nullptr ) _tableau->updateVariableToComplyWithUpperBoundUpdate( variable, value ); @@ -406,9 +406,9 @@ void BoundManager::updateBoundExplanationSparse( const SparseUnsortedList &row, _boundExplainer->updateBoundExplanationSparse( row, isUpper, var ); } -bool BoundManager::addLemmaExplanation( unsigned var, double value, BoundType affectedVarBound, - const List &causingVars, BoundType causingVarBound, - PiecewiseLinearFunctionType constraintType ) +bool BoundManager::addLemmaExplanationAndTightenBound( unsigned var, double value, BoundType affectedVarBound, + const List &causingVars, BoundType causingVarBound, + PiecewiseLinearFunctionType constraintType ) { if ( !shouldProduceProofs() ) return false; @@ -419,7 +419,7 @@ bool BoundManager::addLemmaExplanation( unsigned var, double value, BoundType af Vector explanation( 0 ); Vector> allExplanations( 0 ); - bool tightened = affectedVarBound == UPPER ? tightenUpperBound( var, value ) : tightenLowerBound( var, value ); + bool tightened = affectedVarBound == BoundType::UPPER ? tightenUpperBound( var, value ) : tightenLowerBound( var, value ); if ( tightened ) { @@ -438,12 +438,17 @@ bool BoundManager::addLemmaExplanation( unsigned var, double value, BoundType af } else { + // Used for two cases: + // 1. Lemma of the type _f = max(upperBound(b), -lowerBound(b)). + // Two explanations are stored so the checker could check that f has the maximal value of the two. + // 2. Lemmas of the type lowerBound(f) > -lowerBound(b) or upperBound(b). + // Again, two explanations are involved in the proof. // Add zero vectors to maintain consistency of explanations size - getExplanation( causingVars.front(), causingVarBound == UPPER, explanation ); + getExplanation( causingVars.front(), causingVarBound == BoundType::UPPER, explanation ); allExplanations.append( explanation.empty() ? Vector( _tableau->getM(), 0 ) : explanation ); explanation.clear(); - getExplanation( causingVars.back(), LOWER, explanation ); + getExplanation( causingVars.back(), BoundType::LOWER, explanation ); allExplanations.append( explanation.empty() ? Vector( _tableau->getM(), 0 ) : explanation ); } } @@ -452,7 +457,7 @@ bool BoundManager::addLemmaExplanation( unsigned var, double value, BoundType af for ( const auto &element : causingVars ) { // Add zero vectors to maintain consistency of explanations size - getExplanation( element, UPPER, explanation ); + getExplanation( element, BoundType::UPPER, explanation ); allExplanations.append( explanation.empty() ? Vector( _tableau->getM(), 0 ) : explanation ); explanation.clear(); } @@ -462,7 +467,7 @@ bool BoundManager::addLemmaExplanation( unsigned var, double value, BoundType af std::shared_ptr PLCExpl = std::make_shared( causingVars, var, value, causingVarBound, affectedVarBound, allExplanations, constraintType ); _engine->getUNSATCertificateCurrentPointer()->addPLCLemma(PLCExpl ); - affectedVarBound == UPPER ? _engine->updateGroundUpperBound( var, value ) : _engine->updateGroundLowerBound( var, value ); + affectedVarBound == BoundType::UPPER ? _engine->updateGroundUpperBound( var, value ) : _engine->updateGroundLowerBound( var, value ); resetExplanation( var, affectedVarBound ); } return true; diff --git a/src/engine/BoundManager.h b/src/engine/BoundManager.h index 65ba25f8c3..1280166592 100644 --- a/src/engine/BoundManager.h +++ b/src/engine/BoundManager.h @@ -253,9 +253,9 @@ class BoundManager : public IBoundManager /* Adds a lemma to the UNSATCertificateNode object */ - bool addLemmaExplanation( unsigned var, double value, BoundType affectedVarBound, - const List &causingVars, BoundType causingVarBound, - PiecewiseLinearFunctionType constraintType ); + bool addLemmaExplanationAndTightenBound( unsigned var, double value, BoundType affectedVarBound, + const List &causingVars, BoundType causingVarBound, + PiecewiseLinearFunctionType constraintType ); /* Explainer of all bounds diff --git a/src/engine/DisjunctionConstraint.cpp b/src/engine/DisjunctionConstraint.cpp index 459891c8ee..8899761c24 100644 --- a/src/engine/DisjunctionConstraint.cpp +++ b/src/engine/DisjunctionConstraint.cpp @@ -518,7 +518,7 @@ List DisjunctionConstraint::getFeasibleDisjuncts() con { List validDisjuncts = List(); - for ( const auto feasibleDisjunct : _feasibleDisjuncts ) + for ( const auto &feasibleDisjunct : _feasibleDisjuncts ) validDisjuncts.append( _disjuncts.get( feasibleDisjunct ) ); return validDisjuncts; @@ -548,10 +548,7 @@ bool DisjunctionConstraint::addFeasibleDisjunct( const PiecewiseLinearCaseSplit return false; } -// -// Local Variables: -// compile-command: "make -C ../.. " -// tags-file-name: "../../TAGS" -// c-basic-offset: 4 -// End: -// +// No aux vars in disjunction constraint, so the function is suppressed +void DisjunctionConstraint::addTableauAuxVar( unsigned /* tableauAuxVar */, unsigned /* constraintAuxVar */ ) +{ +} diff --git a/src/engine/DisjunctionConstraint.h b/src/engine/DisjunctionConstraint.h index d215bbe281..060d041a57 100644 --- a/src/engine/DisjunctionConstraint.h +++ b/src/engine/DisjunctionConstraint.h @@ -236,6 +236,8 @@ class DisjunctionConstraint : public PiecewiseLinearConstraint //ASSERT( phase != PHASE_NOT_FIXED ); return static_cast( phase ) - 1; } + + void addTableauAuxVar( unsigned tableauAuxVar, unsigned constraintAuxVar ) override; }; #endif // __DisjunctionConstraint_h__ diff --git a/src/engine/Engine.cpp b/src/engine/Engine.cpp index 6021a46590..643f5f526b 100644 --- a/src/engine/Engine.cpp +++ b/src/engine/Engine.cpp @@ -1401,19 +1401,18 @@ bool Engine::processInputQuery( InputQuery &inputQuery, bool preprocess ) if ( _produceUNSATProofs ) { - bool containsUnsupportedConstraints = false; for ( auto &plConstraint : _preprocessedQuery->getPiecewiseLinearConstraints() ) { if ( !UNSATCertificateUtils::getSupportedActivations().exists( plConstraint->getType() ) ) { - containsUnsupportedConstraints = true; _produceUNSATProofs = false; Options::get()->setBool( Options::PRODUCE_PROOFS, false ); + String activationType = plConstraint->serializeToString().tokenize(",").back(); + ENGINE_LOG( "Turning off proof production since activation %s is not yet supported\n", activationType.ascii() ); + break; } } - if ( containsUnsupportedConstraints ) - ENGINE_LOG( "Turning off proof production since activations are not yet supported\n" ); } @@ -2008,7 +2007,7 @@ void Engine::applySplit( const PiecewiseLinearCaseSplit &split ) ENGINE_LOG( Stringf( "x%u: lower bound set to %.3lf", variable, bound._value ).ascii() ); if ( _produceUNSATProofs && FloatUtils::gt( bound._value, _boundManager.getLowerBound( bound._variable ) ) ) { - _boundManager.resetExplanation( variable, LOWER ); + _boundManager.resetExplanation( variable, BoundType::LOWER ); updateGroundLowerBound( variable, bound._value ); _boundManager.tightenLowerBound( variable, bound._value ); } @@ -2020,7 +2019,7 @@ void Engine::applySplit( const PiecewiseLinearCaseSplit &split ) ENGINE_LOG( Stringf( "x%u: upper bound set to %.3lf", variable, bound._value ).ascii() ); if ( _produceUNSATProofs && FloatUtils::lt( bound._value, _boundManager.getUpperBound( bound._variable ) ) ) { - _boundManager.resetExplanation( variable, UPPER ); + _boundManager.resetExplanation( variable, BoundType::UPPER ); updateGroundUpperBound( variable, bound._value ); _boundManager.tightenUpperBound( variable, bound._value ); } @@ -3378,7 +3377,7 @@ bool Engine::validateAllBounds( double epsilon ) const bool res = true; for ( unsigned var = 0; var < _tableau->getN(); ++var ) - if ( !validateBounds( var, epsilon, UPPER ) || !validateBounds( var, epsilon, LOWER ) ) + if ( !validateBounds( var, epsilon, BoundType::UPPER ) || !validateBounds( var, epsilon, BoundType::LOWER ) ) res = false; return res; @@ -3414,12 +3413,12 @@ unsigned Engine::explainFailureWithTableau() _tableau->getTableauRow( i, &boundUpdateRow ); basicVar = boundUpdateRow._lhs; - if ( FloatUtils::gt( _boundManager.computeRowBound( boundUpdateRow, LOWER ), _boundManager.getUpperBound( basicVar ) ) - && explainAndCheckContradiction( basicVar, LOWER, &boundUpdateRow ) ) + if ( FloatUtils::gt( _boundManager.computeRowBound( boundUpdateRow, BoundType::LOWER ), _boundManager.getUpperBound( basicVar ) ) + && explainAndCheckContradiction( basicVar, BoundType::LOWER, &boundUpdateRow ) ) return basicVar; - if ( FloatUtils::lt( _boundManager.computeRowBound( boundUpdateRow, UPPER ), _boundManager.getLowerBound( basicVar ) ) - && explainAndCheckContradiction( basicVar, UPPER, &boundUpdateRow ) ) + if ( FloatUtils::lt( _boundManager.computeRowBound( boundUpdateRow, BoundType::UPPER ), _boundManager.getLowerBound( basicVar ) ) + && explainAndCheckContradiction( basicVar, BoundType::UPPER, &boundUpdateRow ) ) return basicVar; } } @@ -3449,9 +3448,9 @@ unsigned Engine::explainFailureWithCostFunction() curUpper = ( curCost < 0 ); // Check the basic variable has no slack - if ( !( !curUpper && FloatUtils::gt( _boundManager.computeSparseRowBound( *costRow, LOWER, curBasicVar ), + if ( !( !curUpper && FloatUtils::gt( _boundManager.computeSparseRowBound( *costRow, BoundType::LOWER, curBasicVar ), _boundManager.getUpperBound( curBasicVar ) ) ) && - !( curUpper && FloatUtils::lt( _boundManager.computeSparseRowBound( *costRow, UPPER, curBasicVar ), + !( curUpper && FloatUtils::lt( _boundManager.computeSparseRowBound( *costRow, BoundType::UPPER, curBasicVar ), _boundManager.getLowerBound( curBasicVar ) ) ) ) continue; @@ -3529,7 +3528,8 @@ bool Engine::certifyUNSATCertificate() { if ( !UNSATCertificateUtils::getSupportedActivations().exists( constraint->getType() ) ) { - printf( "Certification Error! Network contains activation function that is not yet supported by Marabou certification.\n" ); + String activationType = constraint->serializeToString().tokenize(",").back(); + printf( "Certification Error! Network contains activation function %s, that is not yet supported by Marabou certification.\n", activationType.ascii() ); return false; } } @@ -3598,11 +3598,11 @@ const Vector Engine::computeContradiction( unsigned infeasibleVar ) cons Vector upperBoundExplanation( 0 ); Vector lowerBoundExplanation( 0 ); - if ( !_boundManager.isExplanationTrivial( infeasibleVar, UPPER ) ) - _boundManager.getExplanation( infeasibleVar, UPPER, upperBoundExplanation ); + if ( !_boundManager.isExplanationTrivial( infeasibleVar, BoundType::UPPER ) ) + _boundManager.getExplanation( infeasibleVar, BoundType::UPPER, upperBoundExplanation ); - if( !_boundManager.isExplanationTrivial( infeasibleVar, LOWER ) ) - _boundManager.getExplanation( infeasibleVar, LOWER, lowerBoundExplanation ); + if( !_boundManager.isExplanationTrivial( infeasibleVar, BoundType::LOWER ) ) + _boundManager.getExplanation( infeasibleVar, BoundType::LOWER, lowerBoundExplanation ); if ( upperBoundExplanation.empty() && lowerBoundExplanation.empty() ) return Vector( 0 ); diff --git a/src/engine/IBoundManager.h b/src/engine/IBoundManager.h index 2660c614bb..18936cd4d9 100644 --- a/src/engine/IBoundManager.h +++ b/src/engine/IBoundManager.h @@ -129,9 +129,9 @@ class IBoundManager Add a lemma to the UNSATCertificateNode object Return true iff adding the lemma was successful */ - virtual bool addLemmaExplanation( unsigned var, double value, BoundType affectedVarBound, - const List &causingVars, BoundType causingVarBound, - PiecewiseLinearFunctionType constraintType ) = 0; + virtual bool addLemmaExplanationAndTightenBound( unsigned var, double value, BoundType affectedVarBound, + const List &causingVars, BoundType causingVarBound, + PiecewiseLinearFunctionType constraintType ) = 0; /* Return the content of the object containing all explanations for variable bounds in the tableau diff --git a/src/engine/MaxConstraint.cpp b/src/engine/MaxConstraint.cpp index 064a868fe4..a0ddbca9cf 100644 --- a/src/engine/MaxConstraint.cpp +++ b/src/engine/MaxConstraint.cpp @@ -335,7 +335,8 @@ void MaxConstraint::getEntailedTightenings( List &tightenings ) cons if ( FloatUtils::gt( fUB, maxElementUB ) ) { if ( proofs ) - _boundManager->addLemmaExplanation( _f, maxElementUB, UPPER, getElements(), UPPER, getType() ); + _boundManager->addLemmaExplanationAndTightenBound( _f, maxElementUB, BoundType::UPPER, getElements(), + BoundType::UPPER, getType() ); else tightenings.append( Tightening( _f, maxElementUB, Tightening::UB ) ); } @@ -725,7 +726,10 @@ String MaxConstraint::serializeToString() const void MaxConstraint::eliminateCase( unsigned variable ) { - if ( _boundManager && _boundManager->shouldProduceProofs() ) + bool proofs = _boundManager && _boundManager->shouldProduceProofs(); + + // Function is not yet supported for proof production + if ( proofs ) return; if ( _cdInfeasibleCases ) @@ -743,15 +747,17 @@ void MaxConstraint::eliminateCase( unsigned variable ) _elementToAux.erase( variable ); _auxToElement.erase( aux ); } - - if ( _elementToTighteningRow.exists( variable ) && _elementToTighteningRow[variable] != NULL ) + if ( proofs ) { - _elementToTighteningRow[variable] = NULL; - _elementToTighteningRow.erase( variable ); - } + if ( _elementToTighteningRow.exists( variable ) && _elementToTighteningRow[variable] != NULL ) + { + _elementToTighteningRow[variable] = NULL; + _elementToTighteningRow.erase( variable ); + } - if ( _elementToTableauAux.exists( variable ) ) - _elementToTableauAux.erase( variable ); + if ( _elementToTableauAux.exists( variable ) ) + _elementToTableauAux.erase( variable ); + } } } @@ -780,8 +786,7 @@ bool MaxConstraint::haveOutOfBoundVariables() const void MaxConstraint::createElementTighteningRow( unsigned element ) { - - // Create the row only when needed and when not already create + // Create the row only when needed and when not already created if ( !_boundManager->getBoundExplainer() || _elementToTighteningRow[element] != NULL ) return; diff --git a/src/engine/PiecewiseLinearConstraint.h b/src/engine/PiecewiseLinearConstraint.h index 61f7884d61..291040a1e6 100644 --- a/src/engine/PiecewiseLinearConstraint.h +++ b/src/engine/PiecewiseLinearConstraint.h @@ -454,13 +454,9 @@ class PiecewiseLinearConstraint : public ITableau::VariableWatcher } /* - Add a variable to the list of aux vars designated in the Tableau - second argument is used for MaxConstraints + Add a variable to the list of aux vars designated in the Tableau, add connect it to the constraintAuxVariable */ - virtual void addTableauAuxVar( unsigned tableauAuxVar, unsigned /* constraintAuxVar */ ) - { - _tableauAuxVars.append( tableauAuxVar ); - } + virtual void addTableauAuxVar( unsigned tableauAuxVar, unsigned constraintAuxVar ) = 0; /* Get the native auxiliary vars diff --git a/src/engine/PrecisionRestorer.cpp b/src/engine/PrecisionRestorer.cpp index 88e424bb2a..fd56523ecd 100644 --- a/src/engine/PrecisionRestorer.cpp +++ b/src/engine/PrecisionRestorer.cpp @@ -71,8 +71,8 @@ void PrecisionRestorer::restorePrecision( IEngine &engine, lowerBoundsBackup[i] = tableau.getLowerBound( i ); upperBoundsBackup[i] = tableau.getUpperBound( i ); - groundUpperBoundsBackup[i] = engine.getGroundBound( i, UPPER ); - groundLowerBoundsBackup[i] = engine.getGroundBound( i, LOWER ); + groundUpperBoundsBackup[i] = engine.getGroundBound( i, BoundType::UPPER ); + groundLowerBoundsBackup[i] = engine.getGroundBound( i, BoundType::LOWER ); } } diff --git a/src/engine/ReluConstraint.cpp b/src/engine/ReluConstraint.cpp index ea17215256..6be58f9d01 100644 --- a/src/engine/ReluConstraint.cpp +++ b/src/engine/ReluConstraint.cpp @@ -172,7 +172,8 @@ void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) { // If we're in the active phase, aux should be 0 if ( proofs && _auxVarInUse ) - _boundManager->addLemmaExplanation( _aux, 0, UPPER, { variable }, LOWER, getType() ); + _boundManager->addLemmaExplanationAndTightenBound( _aux, 0, BoundType::UPPER, { variable }, + BoundType::LOWER, getType() ); else if ( !proofs && _auxVarInUse ) _boundManager->tightenUpperBound( _aux, 0 ); @@ -185,7 +186,8 @@ void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) else if ( _auxVarInUse && variable == _b && FloatUtils::isZero( bound ) ) { if ( proofs && _auxVarInUse ) - _boundManager->addLemmaExplanation( _aux, 0, UPPER, { variable }, LOWER, getType() ); + _boundManager->addLemmaExplanationAndTightenBound( _aux, 0, BoundType::UPPER, { variable }, + BoundType::LOWER, getType() ); else if ( !proofs && _auxVarInUse ) _boundManager->tightenUpperBound( _aux, 0 ); } @@ -195,7 +197,8 @@ void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) else if ( _auxVarInUse && variable == _aux && bound > 0 ) { if ( proofs ) - _boundManager->addLemmaExplanation( _f, 0, UPPER, { variable }, LOWER, getType() ); + _boundManager->addLemmaExplanationAndTightenBound( _f, 0, BoundType::UPPER, { variable }, + BoundType::LOWER, getType() ); else _boundManager->tightenUpperBound( _f, 0 ); @@ -212,7 +215,8 @@ void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) if ( _phaseStatus == RELU_PHASE_INACTIVE ) _boundManager->tightenUpperBound( _aux, -bound, *_tighteningRow ); else if ( _phaseStatus == PHASE_NOT_FIXED ) - _boundManager->addLemmaExplanation( _aux, -bound, UPPER, { variable }, LOWER, getType() ); + _boundManager->addLemmaExplanationAndTightenBound( _aux, -bound, BoundType::UPPER, { variable }, + BoundType::LOWER, getType() ); } else _boundManager->tightenUpperBound( _aux, -bound ); @@ -223,7 +227,8 @@ void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) else if ( bound < 0 && variable == _f ) { if ( proofs ) - _boundManager->addLemmaExplanation( _f, 0, LOWER, { variable }, LOWER, getType() ); + _boundManager->addLemmaExplanationAndTightenBound( _f, 0, BoundType::LOWER, { variable }, + BoundType::LOWER, getType() ); else _boundManager->tightenLowerBound( _f, 0 ); } @@ -267,7 +272,8 @@ void ReluConstraint::notifyUpperBound( unsigned variable, double newBound ) else { if ( FloatUtils::isZero( bound ) ) - _boundManager->addLemmaExplanation( _b, 0, UPPER, { variable }, UPPER, getType() ); + _boundManager->addLemmaExplanationAndTightenBound( _b, 0, BoundType::UPPER, { variable }, + BoundType::UPPER, getType() ); // Bound cannot be negative if ReLU is inactive else if ( FloatUtils::isNegative( bound ) ) throw InfeasibleQueryException(); @@ -283,7 +289,8 @@ void ReluConstraint::notifyUpperBound( unsigned variable, double newBound ) { // If b has a non-positive upper bound, f's upper bound is 0 if ( proofs ) - _boundManager->addLemmaExplanation( _f, 0, UPPER, { variable }, UPPER, getType() ); + _boundManager->addLemmaExplanationAndTightenBound( _f, 0, BoundType::UPPER, { variable }, + BoundType::UPPER, getType() ); else _boundManager->tightenUpperBound( _f, 0 ); @@ -301,7 +308,8 @@ void ReluConstraint::notifyUpperBound( unsigned variable, double newBound ) if ( _phaseStatus == RELU_PHASE_ACTIVE ) _boundManager->tightenUpperBound( _f, bound, *_tighteningRow ); else if ( _phaseStatus == PHASE_NOT_FIXED ) - _boundManager->addLemmaExplanation( _f, bound, UPPER, { variable }, UPPER, getType() ); + _boundManager->addLemmaExplanationAndTightenBound( _f, bound, BoundType::UPPER, { variable }, + BoundType::UPPER, getType() ); } else _boundManager->tightenUpperBound( _f, bound ); @@ -316,7 +324,8 @@ void ReluConstraint::notifyUpperBound( unsigned variable, double newBound ) else { if ( FloatUtils::isZero( bound ) ) - _boundManager->addLemmaExplanation( _b, 0, LOWER, { variable }, UPPER, getType() ); + _boundManager->addLemmaExplanationAndTightenBound( _b, 0, BoundType::LOWER, { variable }, + BoundType::UPPER, getType() ); // Bound cannot be negative if ReLU is active else if ( FloatUtils::isNegative( bound ) ) throw InfeasibleQueryException(); @@ -1063,6 +1072,14 @@ const List ReluConstraint::getNativeAuxVars() const return {}; } +void ReluConstraint::addTableauAuxVar( unsigned tableauAuxVar, unsigned constraintAuxVar ) +{ + ASSERT( _tableauAuxVars.empty() ); + + if ( constraintAuxVar == _aux ) + _tableauAuxVars.append( tableauAuxVar ); +} + // // Local Variables: // compile-command: "make -C ../.. " diff --git a/src/engine/ReluConstraint.h b/src/engine/ReluConstraint.h index f7191de529..925d75fa83 100644 --- a/src/engine/ReluConstraint.h +++ b/src/engine/ReluConstraint.h @@ -270,6 +270,11 @@ class ReluConstraint : public PiecewiseLinearConstraint Stored in _tighteningRow */ void createTighteningRow(); + + /* + Assign a variable as an aux variable by the tableau, related to some existing aux variable. + */ + void addTableauAuxVar( unsigned tableauAuxVar, unsigned constraintAuxVar ) override; }; #endif // __ReluConstraint_h__ diff --git a/src/engine/SignConstraint.cpp b/src/engine/SignConstraint.cpp index efac927216..47b2481635 100644 --- a/src/engine/SignConstraint.cpp +++ b/src/engine/SignConstraint.cpp @@ -395,7 +395,6 @@ void SignConstraint::notifyLowerBound( unsigned variable, double bound ) { setPhaseStatus( PhaseStatus::SIGN_PHASE_POSITIVE ); - if ( _boundManager != nullptr ) { if ( _boundManager->shouldProduceProofs() ) @@ -404,8 +403,10 @@ void SignConstraint::notifyLowerBound( unsigned variable, double bound ) if ( FloatUtils::gt( bound, 1 ) ) throw InfeasibleQueryException(); - _boundManager->addLemmaExplanation( _f, 1, LOWER, { variable }, LOWER, getType() ); - _boundManager->addLemmaExplanation( _b, 0, LOWER, { variable }, LOWER, getType() ); + _boundManager->addLemmaExplanationAndTightenBound( _f, 1, BoundType::LOWER, { variable }, + BoundType::LOWER, getType() ); + _boundManager->addLemmaExplanationAndTightenBound( _b, 0, BoundType::LOWER, { variable }, + BoundType::LOWER, getType() ); } else { @@ -420,7 +421,8 @@ void SignConstraint::notifyLowerBound( unsigned variable, double bound ) if ( _boundManager != nullptr ) { if ( _boundManager->shouldProduceProofs() ) - _boundManager->addLemmaExplanation( _f, 1, LOWER, { variable }, LOWER, getType() ); + _boundManager->addLemmaExplanationAndTightenBound( _f, 1, BoundType::LOWER, { variable }, + BoundType::LOWER, getType() ); else _boundManager->tightenLowerBound( _f, 1 ); } @@ -453,8 +455,10 @@ void SignConstraint::notifyUpperBound( unsigned variable, double bound ) if ( FloatUtils::lt( bound, -1 ) ) throw InfeasibleQueryException(); - _boundManager->addLemmaExplanation( _f, -1, UPPER, { variable }, UPPER, getType() ); - _boundManager->addLemmaExplanation( _b, 0, UPPER, { variable }, UPPER, getType() ); + _boundManager->addLemmaExplanationAndTightenBound( _f, -1, BoundType::UPPER, { variable }, + BoundType::UPPER, getType() ); + _boundManager->addLemmaExplanationAndTightenBound( _b, 0, BoundType::UPPER, { variable }, + BoundType::UPPER, getType() ); } else { @@ -469,7 +473,8 @@ void SignConstraint::notifyUpperBound( unsigned variable, double bound ) if ( _boundManager != nullptr ) { if ( _boundManager->shouldProduceProofs() ) - _boundManager->addLemmaExplanation( _f, -1, UPPER, { variable }, UPPER, getType() ); + _boundManager->addLemmaExplanationAndTightenBound( _f, -1, BoundType::UPPER, { variable }, + BoundType::UPPER, getType() ); else _boundManager->tightenUpperBound( _f, -1 ); } @@ -655,3 +660,8 @@ bool SignConstraint::supportPolarity() const { return true; } + +// No aux vars in Sign constraint, so the function is suppressed +void SignConstraint::addTableauAuxVar( unsigned /* tableauAuxVar */, unsigned /* constraintAuxVar */ ) +{ +} diff --git a/src/engine/SignConstraint.h b/src/engine/SignConstraint.h index d2d19121bb..e1e7478366 100644 --- a/src/engine/SignConstraint.h +++ b/src/engine/SignConstraint.h @@ -227,6 +227,7 @@ class SignConstraint : public PiecewiseLinearConstraint void updateScoreBasedOnPolarity() override; + private: unsigned _b, _f; @@ -247,6 +248,11 @@ class SignConstraint : public PiecewiseLinearConstraint Return true iff b or f are out of bounds. */ bool haveOutOfBoundVariables() const; + + /* + Assign a variable as an aux variable by the tableau, related to the existing aux variable. + */ + void addTableauAuxVar( unsigned tableauAuxVar, unsigned constraintAuxVar ) override; }; #endif // __SignConstraint_h__ diff --git a/src/engine/T/RowBoundTightenerFactory.h b/src/engine/T/RowBoundTightenerFactory.h index d51f5c493f..1e8b02aa67 100644 --- a/src/engine/T/RowBoundTightenerFactory.h +++ b/src/engine/T/RowBoundTightenerFactory.h @@ -21,6 +21,7 @@ class IRowBoundTightener; class ITableau; + namespace T { IRowBoundTightener *createRowBoundTightener( const ITableau &tableau ); diff --git a/src/engine/tests/MockBoundManager.h b/src/engine/tests/MockBoundManager.h index c9b22941d9..9cb115b1f0 100644 --- a/src/engine/tests/MockBoundManager.h +++ b/src/engine/tests/MockBoundManager.h @@ -265,9 +265,9 @@ class MockBoundManager : public IBoundManager return tightenUpperBound( variable, value ); } - bool addLemmaExplanation( unsigned /* var */, double /* value */, BoundType /* affectedVarBound */, - const List &/* causingVar */, BoundType /* causingVarBound */, - PiecewiseLinearFunctionType /* constraintType */ ) + bool addLemmaExplanationAndTightenBound(unsigned /* var */, double /* value */, BoundType /* affectedVarBound */, + const List &/* causingVar */, BoundType /* causingVarBound */, + PiecewiseLinearFunctionType /* constraintType */ ) { return true; } diff --git a/src/engine/tests/Test_SmtCore.h b/src/engine/tests/Test_SmtCore.h index 4e3815bdc6..f910c9220a 100644 --- a/src/engine/tests/Test_SmtCore.h +++ b/src/engine/tests/Test_SmtCore.h @@ -170,7 +170,11 @@ class SmtCoreTestSuite : public CxxTest::TestSuite return ""; } - void initTighteningRow( const unsigned /*counterpart*/ ) + void initTighteningRow( const unsigned /*counterpart*/ ) + { + } + + void addTableauAuxVar( unsigned /*tableauAuxVar*/, unsigned /*constraintAuxVar*/ ) { } }; diff --git a/src/proofs/Checker.cpp b/src/proofs/Checker.cpp index f42fbb523a..b94681f3e3 100644 --- a/src/proofs/Checker.cpp +++ b/src/proofs/Checker.cpp @@ -189,7 +189,7 @@ bool Checker::checkAllPLCExplanations( const UnsatCertificateNode *node, double { PiecewiseLinearConstraint *matchedConstraint = NULL; BoundType affectedVarBound = plcLemma->getAffectedVarBound(); - double explainedBound = affectedVarBound == UPPER ? FloatUtils::infinity() : FloatUtils::negativeInfinity(); + double explainedBound = affectedVarBound == BoundType::UPPER ? FloatUtils::infinity() : FloatUtils::negativeInfinity(); const List causingVars = plcLemma->getCausingVars(); unsigned affectedVar = plcLemma->getAffectedVar(); List participatingVars; @@ -235,13 +235,13 @@ bool Checker::checkAllPLCExplanations( const UnsatCertificateNode *node, double // If so, update the ground bounds and continue - auto &temp = affectedVarBound == UPPER ? _groundUpperBounds : _groundLowerBounds; - bool isTighter = affectedVarBound == UPPER ? FloatUtils::lt( explainedBound, temp[affectedVar] ) : FloatUtils::gt( explainedBound, temp[affectedVar] ); + auto &temp = affectedVarBound == BoundType::UPPER ? _groundUpperBounds : _groundLowerBounds; + bool isTighter = affectedVarBound == BoundType::UPPER ? FloatUtils::lt( explainedBound, temp[affectedVar] ) : FloatUtils::gt( explainedBound, temp[affectedVar] ); if ( isTighter ) { temp[affectedVar] = explainedBound; ASSERT( !_upperBoundChanges.empty() && !_lowerBoundChanges.empty() ); - affectedVarBound == UPPER ? _upperBoundChanges.top().insert( affectedVar ) : _lowerBoundChanges.top().insert( affectedVar ); + affectedVarBound == BoundType::UPPER ? _upperBoundChanges.top().insert( affectedVar ) : _lowerBoundChanges.top().insert( affectedVar ); } } return true; @@ -553,7 +553,7 @@ double Checker::checkReluLemma( const PLCLemma &expl, PiecewiseLinearConstraint BoundType causingVarBound = expl.getCausingVarBound(); BoundType affectedVarBound = expl.getAffectedVarBound(); - double explainedBound = UNSATCertificateUtils::computeBound( causingVar, causingVarBound == UPPER, explanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); + double explainedBound = UNSATCertificateUtils::computeBound( causingVar, causingVarBound == BoundType::UPPER, explanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); List constraintVars = constraint.getParticipatingVariables(); ASSERT(constraintVars.size() == 3 ); @@ -564,55 +564,55 @@ double Checker::checkReluLemma( const PLCLemma &expl, PiecewiseLinearConstraint unsigned aux = conVec[2]; // If explanation is phase fixing, mark it - if ( ( affectedVarBound == LOWER && affectedVar == f && FloatUtils::isPositive( bound ) ) || ( affectedVarBound == UPPER && affectedVar == aux && FloatUtils::isZero( bound ) ) ) + if ( ( affectedVarBound == BoundType::LOWER && affectedVar == f && FloatUtils::isPositive( bound ) ) || ( affectedVarBound == BoundType::UPPER && affectedVar == aux && FloatUtils::isZero( bound ) ) ) constraint.setPhaseStatus( RELU_PHASE_ACTIVE ); - else if ( ( affectedVarBound == LOWER && affectedVar == aux && FloatUtils::isPositive( bound ) ) || ( affectedVarBound == UPPER && affectedVar == f && FloatUtils::isZero( bound ) ) ) + else if ( ( affectedVarBound == BoundType::LOWER && affectedVar == aux && FloatUtils::isPositive( bound ) ) || ( affectedVarBound == BoundType::UPPER && affectedVar == f && FloatUtils::isZero( bound ) ) ) constraint.setPhaseStatus( RELU_PHASE_INACTIVE ); // Make sure the explanation is explained using a ReLU bound tightening. Cases are matching each rule in ReluConstraint.cpp // We allow explained bound to be tighter than the ones recorded (since an explanation can explain tighter bounds), and an epsilon sized error is tolerated. // If lb of b is non negative, then ub of aux is 0 - if ( causingVar == b && causingVarBound == LOWER && affectedVar == aux && affectedVarBound == UPPER && !FloatUtils::isNegative( explainedBound + epsilon ) ) + if ( causingVar == b && causingVarBound == BoundType::LOWER && affectedVar == aux && affectedVarBound == BoundType::UPPER && !FloatUtils::isNegative( explainedBound + epsilon ) ) return 0; // If lb of f is positive, then ub if aux is 0 - else if ( causingVar == f && causingVarBound == LOWER && affectedVar == aux && affectedVarBound == UPPER && FloatUtils::isPositive( explainedBound + epsilon ) ) + else if ( causingVar == f && causingVarBound == BoundType::LOWER && affectedVar == aux && affectedVarBound == BoundType::UPPER && FloatUtils::isPositive( explainedBound + epsilon ) ) return 0; // If lb of b is negative x, then ub of aux is -x - else if ( causingVar == b && causingVarBound == LOWER && affectedVar == aux && affectedVarBound == UPPER && FloatUtils::isNegative( explainedBound - epsilon ) ) + else if ( causingVar == b && causingVarBound == BoundType::LOWER && affectedVar == aux && affectedVarBound == BoundType::UPPER && FloatUtils::isNegative( explainedBound - epsilon ) ) return -explainedBound; // If lb of aux is positive, then ub of f is 0 - else if ( causingVar == aux && causingVarBound == LOWER && affectedVar == f && affectedVarBound == UPPER && FloatUtils::isPositive( explainedBound + epsilon ) ) + else if ( causingVar == aux && causingVarBound == BoundType::LOWER && affectedVar == f && affectedVarBound == BoundType::UPPER && FloatUtils::isPositive( explainedBound + epsilon ) ) return 0; // If lb of f is negative, then it is 0 - else if ( causingVar == f && causingVarBound == LOWER && affectedVar == f && affectedVarBound == LOWER && FloatUtils::isNegative( explainedBound - epsilon ) ) + else if ( causingVar == f && causingVarBound == BoundType::LOWER && affectedVar == f && affectedVarBound == BoundType::LOWER && FloatUtils::isNegative( explainedBound - epsilon ) ) return 0; // Propagate ub from f to b - else if ( causingVar == f && causingVarBound == UPPER && affectedVar == b && affectedVarBound == UPPER ) + else if ( causingVar == f && causingVarBound == BoundType::UPPER && affectedVar == b && affectedVarBound ==BoundType::UPPER ) return explainedBound; // If ub of b is non positive, then ub of f is 0 - else if ( causingVar == b && causingVarBound == UPPER && affectedVar == f && affectedVarBound == UPPER && !FloatUtils::isPositive( explainedBound - epsilon ) ) + else if ( causingVar == b && causingVarBound == BoundType::UPPER && affectedVar == f && affectedVarBound == BoundType::UPPER && !FloatUtils::isPositive( explainedBound - epsilon ) ) return 0; // If ub of b is non positive x, then lb of aux is -x - else if ( causingVar == b && causingVarBound == UPPER && affectedVar == aux && affectedVarBound == LOWER && !FloatUtils::isPositive( explainedBound - epsilon ) ) + else if ( causingVar == b && causingVarBound == BoundType::UPPER && affectedVar == aux && affectedVarBound == BoundType::LOWER && !FloatUtils::isPositive( explainedBound - epsilon ) ) return -explainedBound; // If ub of b is positive, then propagate to f ( positivity of explained bound is not checked since negative explained ub can always explain positive bound ) - else if ( causingVar == b && causingVarBound == UPPER && affectedVar == f && affectedVarBound == UPPER && FloatUtils::isPositive( explainedBound + epsilon ) ) + else if ( causingVar == b && causingVarBound == BoundType::UPPER && affectedVar == f && affectedVarBound == BoundType::UPPER && FloatUtils::isPositive( explainedBound + epsilon ) ) return explainedBound; // If ub of aux is x, then lb of b is -x - else if ( causingVar == aux && causingVarBound == UPPER && affectedVar == b && affectedVarBound == LOWER ) + else if ( causingVar == aux && causingVarBound == BoundType::UPPER && affectedVar == b && affectedVarBound == BoundType::LOWER ) return -explainedBound; - return affectedVarBound == UPPER ? FloatUtils::infinity() : FloatUtils::negativeInfinity(); + return affectedVarBound == BoundType::UPPER ? FloatUtils::infinity() : FloatUtils::negativeInfinity(); } double Checker::checkSignLemma( const PLCLemma &expl, PiecewiseLinearConstraint &constraint, double epsilon ) @@ -627,7 +627,7 @@ double Checker::checkSignLemma( const PLCLemma &expl, PiecewiseLinearConstraint BoundType causingVarBound = expl.getCausingVarBound(); BoundType affectedVarBound = expl.getAffectedVarBound(); - double explainedBound = UNSATCertificateUtils::computeBound( causingVar, causingVarBound == UPPER, explanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); + double explainedBound = UNSATCertificateUtils::computeBound( causingVar, causingVarBound == BoundType::UPPER, explanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); List constraintVars = constraint.getParticipatingVariables(); ASSERT(constraintVars.size() == 2 ); @@ -635,39 +635,39 @@ double Checker::checkSignLemma( const PLCLemma &expl, PiecewiseLinearConstraint unsigned f = constraintVars.back(); // Any explanation is phase fixing - if ( ( affectedVarBound == LOWER && affectedVar == f && FloatUtils::gt( bound, -1 ) ) || ( affectedVarBound == LOWER && affectedVar == b && !FloatUtils::isNegative( bound ) ) ) + if ( ( affectedVarBound == BoundType::LOWER && affectedVar == f && FloatUtils::gt( bound, -1 ) ) || ( affectedVarBound == BoundType::LOWER && affectedVar == b && !FloatUtils::isNegative( bound ) ) ) constraint.setPhaseStatus( SIGN_PHASE_POSITIVE ); - else if ( ( affectedVarBound == UPPER && affectedVar == f && FloatUtils::gt( bound, 1 ) ) || ( affectedVarBound == UPPER && affectedVar == b && FloatUtils::isNegative( bound ) ) ) + else if ( ( affectedVarBound == BoundType::UPPER && affectedVar == f && FloatUtils::gt( bound, 1 ) ) || ( affectedVarBound == BoundType::UPPER && affectedVar == b && FloatUtils::isNegative( bound ) ) ) constraint.setPhaseStatus( SIGN_PHASE_NEGATIVE ); // Make sure the explanation is explained using a sign bound tightening. Cases are matching each rule in SignConstraint.cpp // We allow explained bound to be tighter than the ones recorded (since an explanation can explain tighter bounds), and an epsilon sized error is tolerated. // If lb of f is > -1, then lb of f is 1 - if ( causingVar == f && causingVarBound == LOWER && affectedVar == f && affectedVarBound == LOWER && FloatUtils::areEqual( bound, 1 ) && FloatUtils::gte( explainedBound + epsilon, -1 ) ) + if ( causingVar == f && causingVarBound == BoundType::LOWER && affectedVar == f && affectedVarBound == BoundType::LOWER && FloatUtils::areEqual( bound, 1 ) && FloatUtils::gte( explainedBound + epsilon, -1 ) ) return 1; // If lb of f is > -1, then lb of b is 0 - else if ( causingVar == f && causingVarBound == LOWER && affectedVar == b && affectedVarBound == LOWER && FloatUtils::isZero( bound ) && FloatUtils::gte( explainedBound + epsilon, -1 ) ) + else if ( causingVar == f && causingVarBound == BoundType::LOWER && affectedVar == b && affectedVarBound == BoundType::LOWER && FloatUtils::isZero( bound ) && FloatUtils::gte( explainedBound + epsilon, -1 ) ) return 0; // If lb of b is non negative, then lb of f is 1 - else if ( causingVar == b && causingVarBound == LOWER && affectedVar == f && affectedVarBound == LOWER && FloatUtils::areEqual( bound, 1 ) && !FloatUtils::isNegative( explainedBound + epsilon ) ) + else if ( causingVar == b && causingVarBound == BoundType::LOWER && affectedVar == f && affectedVarBound == BoundType::LOWER && FloatUtils::areEqual( bound, 1 ) && !FloatUtils::isNegative( explainedBound + epsilon ) ) return 1; // If ub of f is < 1, then ub of f is -1 - else if ( causingVar == f && causingVarBound == UPPER && affectedVar == f && affectedVarBound == UPPER && FloatUtils::areEqual( bound, -1 ) && FloatUtils::lte( explainedBound - epsilon, 1 ) ) + else if ( causingVar == f && causingVarBound == BoundType::UPPER && affectedVar == f && affectedVarBound == BoundType::UPPER && FloatUtils::areEqual( bound, -1 ) && FloatUtils::lte( explainedBound - epsilon, 1 ) ) return -1; // If ub of f is < 1, then ub of b is 0 - else if ( causingVar == f && causingVarBound == UPPER && affectedVar == b && affectedVarBound == UPPER && FloatUtils::isZero( bound ) && FloatUtils::lte( explainedBound - epsilon, 1 ) ) + else if ( causingVar == f && causingVarBound == BoundType::UPPER && affectedVar == b && affectedVarBound == BoundType::UPPER && FloatUtils::isZero( bound ) && FloatUtils::lte( explainedBound - epsilon, 1 ) ) return 0; // If ub of b is negative, then ub of f is -1 - else if ( causingVar == b && causingVarBound == UPPER && affectedVar == f && affectedVarBound == UPPER && FloatUtils::areEqual( bound, -1 ) && FloatUtils::isNegative( explainedBound - epsilon ) ) + else if ( causingVar == b && causingVarBound == BoundType::UPPER && affectedVar == f && affectedVarBound == BoundType::UPPER && FloatUtils::areEqual( bound, -1 ) && FloatUtils::isNegative( explainedBound - epsilon ) ) return -1; - return affectedVarBound == UPPER ? FloatUtils::infinity() : FloatUtils::negativeInfinity(); + return affectedVarBound == BoundType::UPPER ? FloatUtils::infinity() : FloatUtils::negativeInfinity(); } double Checker::checkAbsLemma( const PLCLemma &expl, PiecewiseLinearConstraint &constraint, double epsilon ) @@ -702,34 +702,34 @@ double Checker::checkAbsLemma( const PLCLemma &expl, PiecewiseLinearConstraint & // Case of a non phase-fixing lemma if ( firstCausingVar == secondCausingVar ) { - double explainedUpperBound = UNSATCertificateUtils::computeBound( firstCausingVar, UPPER, firstExplanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); - double explainedLowerBound = UNSATCertificateUtils::computeBound( secondCausingVar, LOWER, secondExplanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); + double explainedUpperBound = UNSATCertificateUtils::computeBound( firstCausingVar, BoundType::UPPER, firstExplanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); + double explainedLowerBound = UNSATCertificateUtils::computeBound( secondCausingVar, BoundType::LOWER, secondExplanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); // b is always the causing var, affecting the ub of f - if ( affectedVar == f && firstCausingVar == b && affectedVarBound == UPPER && bound > 0 ) + if ( affectedVar == f && firstCausingVar == b && affectedVarBound == BoundType::UPPER && bound > 0 ) return FloatUtils::max( explainedUpperBound, -explainedLowerBound ); - return affectedVarBound == UPPER ? FloatUtils::infinity() : FloatUtils::negativeInfinity(); + return affectedVarBound == BoundType::UPPER ? FloatUtils::infinity() : FloatUtils::negativeInfinity(); } // Cases of a phase-fixing lemma else { ASSERT( firstCausingVar == b && secondCausingVar == f ); - double explainedBBound = UNSATCertificateUtils::computeBound( firstCausingVar, causingVarBound == UPPER, firstExplanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); - double explainedFBound = UNSATCertificateUtils::computeBound( secondCausingVar, LOWER, secondExplanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); + double explainedBBound = UNSATCertificateUtils::computeBound( firstCausingVar, causingVarBound == BoundType::UPPER, firstExplanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); + double explainedFBound = UNSATCertificateUtils::computeBound( secondCausingVar, BoundType::LOWER, secondExplanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); - if ( affectedVar == neg && causingVarBound == UPPER && explainedFBound > explainedBBound - epsilon && bound == 0 ) + if ( affectedVar == neg && causingVarBound == BoundType::UPPER && explainedFBound > explainedBBound - epsilon && bound == 0 ) { constraint.setPhaseStatus( ABS_PHASE_NEGATIVE ); return 0; } - else if ( affectedVar == pos && causingVarBound == LOWER && explainedFBound > -explainedBBound - epsilon && bound == 0 ) + else if ( affectedVar == pos && causingVarBound == BoundType::LOWER && explainedFBound > -explainedBBound - epsilon && bound == 0 ) { constraint.setPhaseStatus( ABS_PHASE_POSITIVE ); return 0; } - return affectedVarBound == UPPER ? FloatUtils::infinity() : FloatUtils::negativeInfinity(); + return affectedVarBound == BoundType::UPPER ? FloatUtils::infinity() : FloatUtils::negativeInfinity(); } } @@ -737,30 +737,30 @@ double Checker::checkAbsLemma( const PLCLemma &expl, PiecewiseLinearConstraint & const double *explanation = expl.getExplanations(); unsigned causingVar = expl.getCausingVars().front(); - double explainedBound = UNSATCertificateUtils::computeBound( causingVar, causingVarBound == UPPER, explanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); + double explainedBound = UNSATCertificateUtils::computeBound( causingVar, causingVarBound == BoundType::UPPER, explanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); - if ( affectedVar == pos && causingVar == b && causingVarBound == LOWER && !FloatUtils::isNegative( explainedBound + epsilon ) && bound == 0 ) + if ( affectedVar == pos && causingVar == b && causingVarBound == BoundType::LOWER && !FloatUtils::isNegative( explainedBound + epsilon ) && bound == 0 ) { constraint.setPhaseStatus( ABS_PHASE_POSITIVE ); return 0; } - else if ( affectedVar == neg && causingVar == b && causingVarBound == UPPER && !FloatUtils::isPositive( explainedBound - epsilon ) && bound == 0 ) + else if ( affectedVar == neg && causingVar == b && causingVarBound == BoundType::UPPER && !FloatUtils::isPositive( explainedBound - epsilon ) && bound == 0 ) { constraint.setPhaseStatus( ABS_PHASE_NEGATIVE ); return 0; } - else if ( affectedVar == neg && causingVar == pos && causingVarBound == LOWER && FloatUtils::isPositive( explainedBound + epsilon ) && bound == 0 ) + else if ( affectedVar == neg && causingVar == pos && causingVarBound == BoundType::LOWER && FloatUtils::isPositive( explainedBound + epsilon ) && bound == 0 ) { constraint.setPhaseStatus( ABS_PHASE_NEGATIVE ); return 0; } - else if ( affectedVar == pos && causingVar == neg && causingVarBound == LOWER && FloatUtils::isPositive( explainedBound + epsilon ) && bound == 0 ) + else if ( affectedVar == pos && causingVar == neg && causingVarBound == BoundType::LOWER && FloatUtils::isPositive( explainedBound + epsilon ) && bound == 0 ) { constraint.setPhaseStatus( ABS_PHASE_POSITIVE ); return 0; } - return affectedVarBound == UPPER ? FloatUtils::infinity() : FloatUtils::negativeInfinity(); + return affectedVarBound == BoundType::UPPER ? FloatUtils::infinity() : FloatUtils::negativeInfinity(); } double Checker::checkMaxLemma( const PLCLemma &expl, PiecewiseLinearConstraint &constraint ) @@ -774,7 +774,7 @@ double Checker::checkMaxLemma( const PLCLemma &expl, PiecewiseLinearConstraint & const double *allExplanations = expl.getExplanations(); BoundType causingVarBound = expl.getCausingVarBound(); BoundType affectedVarBound = expl.getAffectedVarBound(); - double explainedBound = affectedVarBound == UPPER ? FloatUtils::infinity() : FloatUtils::negativeInfinity(); + double explainedBound = affectedVarBound == BoundType::UPPER ? FloatUtils::infinity() : FloatUtils::negativeInfinity(); unsigned f = maxConstraint->getF(); @@ -791,12 +791,12 @@ double Checker::checkMaxLemma( const PLCLemma &expl, PiecewiseLinearConstraint & const double *explanation = allExplanations + ( counter * _proofSize ); ++counter; - explainedBound = UNSATCertificateUtils::computeBound( var, UPPER, explanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); + explainedBound = UNSATCertificateUtils::computeBound( var, BoundType::UPPER, explanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); maxBound = FloatUtils::max( maxBound, explainedBound ); } - if ( causingVarBound == UPPER && affectedVar == f && affectedVarBound == UPPER ) + if ( causingVarBound == BoundType::UPPER && affectedVar == f && affectedVarBound == BoundType::UPPER ) return maxBound; - return affectedVarBound == UPPER ? FloatUtils::infinity() : FloatUtils::negativeInfinity(); + return affectedVarBound == BoundType::UPPER ? FloatUtils::infinity() : FloatUtils::negativeInfinity(); } \ No newline at end of file diff --git a/src/proofs/PlcLemma.cpp b/src/proofs/PlcLemma.cpp index 91b5e2df2c..69cc0541f2 100644 --- a/src/proofs/PlcLemma.cpp +++ b/src/proofs/PlcLemma.cpp @@ -28,7 +28,6 @@ PLCLemma::PLCLemma( const List &causingVars, , _affectedVarBound( affectedVarBound ) , _constraintType( constraintType ) { - if ( explanations.empty() ) _explanations = NULL; else @@ -63,7 +62,6 @@ PLCLemma::PLCLemma( const List &causingVars, for ( unsigned i = 0; i < numOfExplanations; ++i ) for ( unsigned j = 0; j < proofSize; ++j ) _explanations[i * proofSize + j] = explanations[i][j]; - } } } diff --git a/src/proofs/SmtLibWriter.cpp b/src/proofs/SmtLibWriter.cpp index 48c6e79abf..2a40786fe2 100644 --- a/src/proofs/SmtLibWriter.cpp +++ b/src/proofs/SmtLibWriter.cpp @@ -185,7 +185,6 @@ void SmtLibWriter::addTableauRow( const SparseUnsortedList &row, List &i else assertRowLine += String( " " ); - // Coefficients +-1 can be dropped if ( entry->_value == 1 ) assertRowLine += String( "x" ) + std::to_string( entry->_index ); diff --git a/src/proofs/tests/Test_UnsatCertificateNode.h b/src/proofs/tests/Test_UnsatCertificateNode.h index cd151f96e1..bbd4f4de75 100644 --- a/src/proofs/tests/Test_UnsatCertificateNode.h +++ b/src/proofs/tests/Test_UnsatCertificateNode.h @@ -81,9 +81,9 @@ class UnsatCertificateNodeTestSuite : public CxxTest::TestSuite UnsatCertificateNode root = UnsatCertificateNode( NULL, PiecewiseLinearCaseSplit() ); Vector> emptyVec; - auto explanation1 = std::shared_ptr( new PLCLemma( { 1 }, 1, 0, UPPER, UPPER, emptyVec, RELU ) ); - auto explanation2 = std::shared_ptr( new PLCLemma( { 1 }, 1, -1, UPPER, UPPER, emptyVec, RELU ) ); - auto explanation3 = std::shared_ptr( new PLCLemma( { 1 }, 1, -4, UPPER, UPPER, emptyVec, RELU ) ); + auto explanation1 = std::shared_ptr( new PLCLemma( { 1 }, 1, 0, BoundType::UPPER, BoundType::UPPER, emptyVec, RELU ) ); + auto explanation2 = std::shared_ptr( new PLCLemma( { 1 }, 1, -1, BoundType::UPPER, BoundType::UPPER, emptyVec, RELU ) ); + auto explanation3 = std::shared_ptr( new PLCLemma( { 1 }, 1, -4, BoundType::UPPER, BoundType::UPPER, emptyVec, RELU ) ); TS_ASSERT(root.getPLCLemmas().empty() ); From 6a17d6546bce42aa1d7b1267b8e23dd0532c5e32 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Sun, 3 Dec 2023 16:33:32 +0200 Subject: [PATCH 112/165] Minor --- src/engine/AbsoluteValueConstraint.cpp | 26 +++--- src/engine/MaxConstraint.cpp | 119 ++++++++++++------------- src/engine/MaxConstraint.h | 5 ++ src/engine/ReluConstraint.cpp | 18 ++-- src/engine/SignConstraint.cpp | 12 +-- 5 files changed, 88 insertions(+), 92 deletions(-) diff --git a/src/engine/AbsoluteValueConstraint.cpp b/src/engine/AbsoluteValueConstraint.cpp index 7fc5fb3c86..e8ea7305e5 100644 --- a/src/engine/AbsoluteValueConstraint.cpp +++ b/src/engine/AbsoluteValueConstraint.cpp @@ -142,16 +142,16 @@ void AbsoluteValueConstraint::notifyLowerBound( unsigned variable, double bound if ( variable == _b ) { - if ( FloatUtils::lt( bound, 0 ) ) + if ( bound < 0 ) { double fUpperBound = FloatUtils::max( -bound, getUpperBound( _b ) ) ; // If phase is not fixed, both bonds are stored and checker should check the max of the two if ( proofs && !phaseFixed() ) _boundManager->addLemmaExplanationAndTightenBound( _f, fUpperBound, BoundType::UPPER, - { variable, variable }, BoundType::UPPER, getType() ); + {variable, variable}, BoundType::UPPER, getType() ); else if ( proofs && phaseFixed() ) { - std::shared_ptr tighteningRow = _phaseStatus == ABS_PHASE_POSITIVE ? _posTighteningRow : _negTighteningRow; + std::shared_ptr tighteningRow = fUpperBound == getUpperBound( _b ) ? _posTighteningRow : _negTighteningRow; _boundManager->tightenUpperBound( _f, fUpperBound, *tighteningRow ); } else @@ -216,16 +216,16 @@ void AbsoluteValueConstraint::notifyUpperBound( unsigned variable, double bound if ( variable == _b ) { - if ( FloatUtils::gt( bound, 0 ) ) + if ( bound > 0 ) { double fUpperBound = FloatUtils::max( bound, -getLowerBound( _b ) ) ; // If phase is not fixed, both bonds are stored and checker should check the max of the two if ( proofs && !phaseFixed() ) _boundManager->addLemmaExplanationAndTightenBound( _f, fUpperBound, BoundType::UPPER, - { variable, variable }, BoundType::UPPER, getType() ); + {variable, variable}, BoundType::UPPER, getType() ); else if ( proofs && phaseFixed() ) { - std::shared_ptr tighteningRow = _phaseStatus == ABS_PHASE_POSITIVE ? _posTighteningRow : _negTighteningRow; + std::shared_ptr tighteningRow = fUpperBound == bound ? _posTighteningRow : _negTighteningRow; _boundManager->tightenUpperBound( _f, fUpperBound, *tighteningRow ); } else @@ -807,7 +807,7 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() { setPhaseStatus( ABS_PHASE_POSITIVE ); if ( proofs ) - _boundManager->addLemmaExplanationAndTightenBound( _posAux, 0, BoundType::UPPER, { _b }, + _boundManager->addLemmaExplanationAndTightenBound( _posAux, 0, BoundType::UPPER, {_b}, BoundType::LOWER, getType() ); return; } @@ -817,8 +817,8 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() { setPhaseStatus( ABS_PHASE_NEGATIVE ); if ( proofs ) - _boundManager->addLemmaExplanationAndTightenBound( _negAux, 0, BoundType::UPPER, { _b }, - BoundType::UPPER, getType()); + _boundManager->addLemmaExplanationAndTightenBound( _negAux, 0, BoundType::UPPER, {_b}, + BoundType::UPPER, getType() ); return; } @@ -831,7 +831,7 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() { setPhaseStatus( ABS_PHASE_NEGATIVE ); if ( proofs ) - _boundManager->addLemmaExplanationAndTightenBound( _negAux, 0, BoundType::UPPER, { _b, _f }, + _boundManager->addLemmaExplanationAndTightenBound( _negAux, 0, BoundType::UPPER, {_b, _f}, BoundType::UPPER, getType() ); return; } @@ -842,7 +842,7 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() { setPhaseStatus( ABS_PHASE_POSITIVE ); if ( proofs ) - _boundManager->addLemmaExplanationAndTightenBound( _posAux, 0, BoundType::UPPER, { _b, _f }, + _boundManager->addLemmaExplanationAndTightenBound( _posAux, 0, BoundType::UPPER, {_b, _f}, BoundType::LOWER, getType() ); return; } @@ -861,7 +861,7 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() { setPhaseStatus( ABS_PHASE_NEGATIVE ); if ( proofs ) - _boundManager->addLemmaExplanationAndTightenBound( _negAux, 0, BoundType::UPPER, { _posAux }, + _boundManager->addLemmaExplanationAndTightenBound( _negAux, 0, BoundType::UPPER, {_posAux}, BoundType::LOWER, getType() ); return; } @@ -878,7 +878,7 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() { setPhaseStatus( ABS_PHASE_POSITIVE ); if ( proofs ) - _boundManager->addLemmaExplanationAndTightenBound( _posAux, 0, BoundType::UPPER, { _negAux }, + _boundManager->addLemmaExplanationAndTightenBound( _posAux, 0, BoundType::UPPER, {_negAux}, BoundType::LOWER, getType() ); return; } diff --git a/src/engine/MaxConstraint.cpp b/src/engine/MaxConstraint.cpp index a0ddbca9cf..f6730ee8e0 100644 --- a/src/engine/MaxConstraint.cpp +++ b/src/engine/MaxConstraint.cpp @@ -202,19 +202,7 @@ void MaxConstraint::notifyLowerBound( unsigned variable, double value ) // Can focus only on the newly learned bound and possible consequences. List tightenings; getEntailedTightenings( tightenings ); - - if ( !proofs ) - { - for ( const auto &tightening : tightenings ) - { - if ( tightening._type == Tightening::LB ) - _boundManager->tightenLowerBound( tightening._variable, - tightening._value ); - else if ( tightening._type == Tightening::UB ) - _boundManager->tightenUpperBound( tightening._variable, - tightening._value ); - } - } + applyTightenings( tightenings ); } } @@ -280,25 +268,12 @@ void MaxConstraint::notifyUpperBound( unsigned variable, double value ) // Can focus only on the newly learned bound and possible consequences. List tightenings; getEntailedTightenings( tightenings ); - if ( !proofs ) - { - for ( const auto &tightening : tightenings ) - { - if ( tightening._type == Tightening::LB ) - _boundManager->tightenLowerBound( tightening._variable, - tightening._value ); - else if ( tightening._type == Tightening::UB ) - _boundManager->tightenUpperBound( tightening._variable, - tightening._value ); - } - } + applyTightenings( tightenings ); } } void MaxConstraint::getEntailedTightenings( List &tightenings ) const { - bool proofs = _boundManager && _boundManager->shouldProduceProofs(); - unsigned maxElementForLB = _f; // Lower and upper bounds for the f variable double fLB = existsLowerBound( _f ) ? getLowerBound( _f ) : FloatUtils::negativeInfinity(); @@ -311,11 +286,7 @@ void MaxConstraint::getEntailedTightenings( List &tightenings ) cons for ( const auto &element : _elements ) { if ( existsLowerBound( element ) ) - { maxElementLB = FloatUtils::max( getLowerBound( element ), maxElementLB ); - if ( maxElementLB == getLowerBound( element ) ) - maxElementForLB = element; - } if ( !existsUpperBound( element ) ) maxElementUB = FloatUtils::infinity(); @@ -326,52 +297,22 @@ void MaxConstraint::getEntailedTightenings( List &tightenings ) cons maxElementLB = FloatUtils::max( _maxValueOfEliminatedPhases, maxElementLB ); maxElementUB = FloatUtils::max( _maxValueOfEliminatedPhases, maxElementUB ); - if ( maxElementLB == _maxValueOfEliminatedPhases ) - maxElementForLB = _f; - // f_UB and maxElementUB need to be equal. If not, the lower of the two wins. if ( FloatUtils::areDisequal( fUB, maxElementUB ) ) { if ( FloatUtils::gt( fUB, maxElementUB ) ) - { - if ( proofs ) - _boundManager->addLemmaExplanationAndTightenBound( _f, maxElementUB, BoundType::UPPER, getElements(), - BoundType::UPPER, getType() ); - else - tightenings.append( Tightening( _f, maxElementUB, Tightening::UB ) ); - } + tightenings.append( Tightening( _f, maxElementUB, Tightening::UB ) ); else - { // f_UB <= maxElementUB for ( const auto &element : _elements ) - { if ( !existsUpperBound( element ) || FloatUtils::gt( getUpperBound( element ), fUB ) ) - { - if ( proofs ) - { - ASSERT( _elementToTighteningRow[element] != NULL ); - _boundManager->tightenUpperBound( element, fUB, *_elementToTighteningRow[element] ); - } - else - tightenings.append( Tightening( element, fUB, Tightening::UB ) ); - - } - } - } + tightenings.append( Tightening( element, fUB, Tightening::UB ) ); } // fLB cannot be smaller than maxElementLB if ( FloatUtils::lt( fLB, maxElementLB ) ) - { - if ( proofs && maxElementForLB != _f ) - { - ASSERT(_elements.exists( maxElementForLB ) && _elementToTighteningRow[maxElementForLB] != NULL ); - _boundManager->tightenLowerBound( _f, maxElementLB, *_elementToTighteningRow[maxElementForLB] ); - } - else tightenings.append( Tightening( _f, maxElementLB, Tightening::LB ) ); - } // TODO: bound tightening for aux vars. } @@ -813,4 +754,54 @@ void MaxConstraint::addTableauAuxVar( unsigned tableauAuxVar, unsigned constrain unsigned element = _auxToElement[constraintAuxVar]; _elementToTableauAux[element] = tableauAuxVar; _elementToTighteningRow[element] = nullptr; -} \ No newline at end of file +} + +void MaxConstraint::applyTightenings( const List &tightenings ) const +{ + bool proofs = _boundManager && _boundManager->shouldProduceProofs(); + + for ( const auto &tightening : tightenings ) + { + if ( tightening._type == Tightening::LB ) + { + if ( proofs ) + { + unsigned maxElementForLB = _f; + double maxElementLB = FloatUtils::negativeInfinity(); + + for ( const auto &element : _elements ) + { + if ( existsLowerBound( element ) ) + { + maxElementLB = FloatUtils::max( getLowerBound( element ), maxElementLB ); + if ( maxElementLB == getLowerBound( element ) ) + maxElementForLB = element; + } + } + + ASSERT( _elements.exists( maxElementForLB ) && _elementToTighteningRow[maxElementForLB] != NULL ); + ASSERT ( tightening._variable == _f ); + _boundManager->tightenLowerBound( _f, maxElementLB, *_elementToTighteningRow[maxElementForLB] ); + } + else + _boundManager->tightenLowerBound( tightening._variable, tightening._value ); + } + else if ( tightening._type == Tightening::UB ) + { + if ( proofs ) + { + if ( tightening._variable == _f ) + _boundManager->addLemmaExplanationAndTightenBound( _f, tightening._value, BoundType::UPPER, getElements(), + BoundType::UPPER, getType() ); + else + { + ASSERT (_elements.exists( tightening._variable ) ); + ASSERT( _elementToTighteningRow[tightening._variable] != NULL ); + _boundManager->tightenUpperBound( tightening._variable, tightening._value, *_elementToTighteningRow[tightening._variable] ); + } + } + else + _boundManager->tightenUpperBound( tightening._variable, tightening._value ); + } + } +} diff --git a/src/engine/MaxConstraint.h b/src/engine/MaxConstraint.h index e9d9aff426..9f5b9f1d37 100644 --- a/src/engine/MaxConstraint.h +++ b/src/engine/MaxConstraint.h @@ -297,6 +297,11 @@ class MaxConstraint : public PiecewiseLinearConstraint void createElementTighteningRow( unsigned element ); const List getNativeAuxVars() const override; void addTableauAuxVar( unsigned tableauAuxVar, unsigned constraintAuxVar ) override; + + /* + Apply tightenings in the list, discovered by getEntailedTightenings + */ + void applyTightenings( const List &tightenings ) const; }; #endif // __MaxConstraint_h__ diff --git a/src/engine/ReluConstraint.cpp b/src/engine/ReluConstraint.cpp index 6be58f9d01..c53cf83467 100644 --- a/src/engine/ReluConstraint.cpp +++ b/src/engine/ReluConstraint.cpp @@ -172,7 +172,7 @@ void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) { // If we're in the active phase, aux should be 0 if ( proofs && _auxVarInUse ) - _boundManager->addLemmaExplanationAndTightenBound( _aux, 0, BoundType::UPPER, { variable }, + _boundManager->addLemmaExplanationAndTightenBound( _aux, 0, BoundType::UPPER, {variable}, BoundType::LOWER, getType() ); else if ( !proofs && _auxVarInUse ) _boundManager->tightenUpperBound( _aux, 0 ); @@ -186,7 +186,7 @@ void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) else if ( _auxVarInUse && variable == _b && FloatUtils::isZero( bound ) ) { if ( proofs && _auxVarInUse ) - _boundManager->addLemmaExplanationAndTightenBound( _aux, 0, BoundType::UPPER, { variable }, + _boundManager->addLemmaExplanationAndTightenBound( _aux, 0, BoundType::UPPER, {variable}, BoundType::LOWER, getType() ); else if ( !proofs && _auxVarInUse ) _boundManager->tightenUpperBound( _aux, 0 ); @@ -197,7 +197,7 @@ void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) else if ( _auxVarInUse && variable == _aux && bound > 0 ) { if ( proofs ) - _boundManager->addLemmaExplanationAndTightenBound( _f, 0, BoundType::UPPER, { variable }, + _boundManager->addLemmaExplanationAndTightenBound( _f, 0, BoundType::UPPER, {variable}, BoundType::LOWER, getType() ); else _boundManager->tightenUpperBound( _f, 0 ); @@ -215,7 +215,7 @@ void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) if ( _phaseStatus == RELU_PHASE_INACTIVE ) _boundManager->tightenUpperBound( _aux, -bound, *_tighteningRow ); else if ( _phaseStatus == PHASE_NOT_FIXED ) - _boundManager->addLemmaExplanationAndTightenBound( _aux, -bound, BoundType::UPPER, { variable }, + _boundManager->addLemmaExplanationAndTightenBound( _aux, -bound, BoundType::UPPER, {variable}, BoundType::LOWER, getType() ); } else @@ -227,7 +227,7 @@ void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) else if ( bound < 0 && variable == _f ) { if ( proofs ) - _boundManager->addLemmaExplanationAndTightenBound( _f, 0, BoundType::LOWER, { variable }, + _boundManager->addLemmaExplanationAndTightenBound( _f, 0, BoundType::LOWER, {variable}, BoundType::LOWER, getType() ); else _boundManager->tightenLowerBound( _f, 0 ); @@ -272,7 +272,7 @@ void ReluConstraint::notifyUpperBound( unsigned variable, double newBound ) else { if ( FloatUtils::isZero( bound ) ) - _boundManager->addLemmaExplanationAndTightenBound( _b, 0, BoundType::UPPER, { variable }, + _boundManager->addLemmaExplanationAndTightenBound( _b, 0, BoundType::UPPER, {variable}, BoundType::UPPER, getType() ); // Bound cannot be negative if ReLU is inactive else if ( FloatUtils::isNegative( bound ) ) @@ -289,7 +289,7 @@ void ReluConstraint::notifyUpperBound( unsigned variable, double newBound ) { // If b has a non-positive upper bound, f's upper bound is 0 if ( proofs ) - _boundManager->addLemmaExplanationAndTightenBound( _f, 0, BoundType::UPPER, { variable }, + _boundManager->addLemmaExplanationAndTightenBound( _f, 0, BoundType::UPPER, {variable}, BoundType::UPPER, getType() ); else _boundManager->tightenUpperBound( _f, 0 ); @@ -308,7 +308,7 @@ void ReluConstraint::notifyUpperBound( unsigned variable, double newBound ) if ( _phaseStatus == RELU_PHASE_ACTIVE ) _boundManager->tightenUpperBound( _f, bound, *_tighteningRow ); else if ( _phaseStatus == PHASE_NOT_FIXED ) - _boundManager->addLemmaExplanationAndTightenBound( _f, bound, BoundType::UPPER, { variable }, + _boundManager->addLemmaExplanationAndTightenBound( _f, bound, BoundType::UPPER, {variable}, BoundType::UPPER, getType() ); } else @@ -324,7 +324,7 @@ void ReluConstraint::notifyUpperBound( unsigned variable, double newBound ) else { if ( FloatUtils::isZero( bound ) ) - _boundManager->addLemmaExplanationAndTightenBound( _b, 0, BoundType::LOWER, { variable }, + _boundManager->addLemmaExplanationAndTightenBound( _b, 0, BoundType::LOWER, {variable}, BoundType::UPPER, getType() ); // Bound cannot be negative if ReLU is active else if ( FloatUtils::isNegative( bound ) ) diff --git a/src/engine/SignConstraint.cpp b/src/engine/SignConstraint.cpp index 47b2481635..50002936fd 100644 --- a/src/engine/SignConstraint.cpp +++ b/src/engine/SignConstraint.cpp @@ -403,9 +403,9 @@ void SignConstraint::notifyLowerBound( unsigned variable, double bound ) if ( FloatUtils::gt( bound, 1 ) ) throw InfeasibleQueryException(); - _boundManager->addLemmaExplanationAndTightenBound( _f, 1, BoundType::LOWER, { variable }, + _boundManager->addLemmaExplanationAndTightenBound( _f, 1, BoundType::LOWER, {variable}, BoundType::LOWER, getType() ); - _boundManager->addLemmaExplanationAndTightenBound( _b, 0, BoundType::LOWER, { variable }, + _boundManager->addLemmaExplanationAndTightenBound( _b, 0, BoundType::LOWER, {variable}, BoundType::LOWER, getType() ); } else @@ -421,7 +421,7 @@ void SignConstraint::notifyLowerBound( unsigned variable, double bound ) if ( _boundManager != nullptr ) { if ( _boundManager->shouldProduceProofs() ) - _boundManager->addLemmaExplanationAndTightenBound( _f, 1, BoundType::LOWER, { variable }, + _boundManager->addLemmaExplanationAndTightenBound( _f, 1, BoundType::LOWER, {variable}, BoundType::LOWER, getType() ); else _boundManager->tightenLowerBound( _f, 1 ); @@ -455,9 +455,9 @@ void SignConstraint::notifyUpperBound( unsigned variable, double bound ) if ( FloatUtils::lt( bound, -1 ) ) throw InfeasibleQueryException(); - _boundManager->addLemmaExplanationAndTightenBound( _f, -1, BoundType::UPPER, { variable }, + _boundManager->addLemmaExplanationAndTightenBound( _f, -1, BoundType::UPPER, {variable}, BoundType::UPPER, getType() ); - _boundManager->addLemmaExplanationAndTightenBound( _b, 0, BoundType::UPPER, { variable }, + _boundManager->addLemmaExplanationAndTightenBound( _b, 0, BoundType::UPPER, {variable}, BoundType::UPPER, getType() ); } else @@ -473,7 +473,7 @@ void SignConstraint::notifyUpperBound( unsigned variable, double bound ) if ( _boundManager != nullptr ) { if ( _boundManager->shouldProduceProofs() ) - _boundManager->addLemmaExplanationAndTightenBound( _f, -1, BoundType::UPPER, { variable }, + _boundManager->addLemmaExplanationAndTightenBound( _f, -1, BoundType::UPPER, {variable}, BoundType::UPPER, getType() ); else _boundManager->tightenUpperBound( _f, -1 ); From 7fe001e384ed73867ee9ca86f8bedcfb9fe5077f Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Sun, 3 Dec 2023 16:49:27 +0200 Subject: [PATCH 113/165] Minor --- src/engine/MaxConstraint.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/engine/MaxConstraint.cpp b/src/engine/MaxConstraint.cpp index f6730ee8e0..3899400492 100644 --- a/src/engine/MaxConstraint.cpp +++ b/src/engine/MaxConstraint.cpp @@ -274,7 +274,6 @@ void MaxConstraint::notifyUpperBound( unsigned variable, double value ) void MaxConstraint::getEntailedTightenings( List &tightenings ) const { - // Lower and upper bounds for the f variable double fLB = existsLowerBound( _f ) ? getLowerBound( _f ) : FloatUtils::negativeInfinity(); double fUB = existsUpperBound( _f ) ? getUpperBound( _f ) : FloatUtils::infinity(); From 758bd6c843e82a21be141fc4818b22024b81c52b Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Sun, 3 Dec 2023 16:55:46 +0200 Subject: [PATCH 114/165] Minor --- src/common/MString.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/common/MString.h b/src/common/MString.h index d72132846e..790ad0ec06 100644 --- a/src/common/MString.h +++ b/src/common/MString.h @@ -60,6 +60,7 @@ class String Super _super; }; +std::ostream &operator<<( std::ostream &stream, const String &string ); #ifdef CXXTEST_RUNNING #include From bc5f33a7a2828846e714bb97b71fd367cf997f8c Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Sun, 3 Dec 2023 17:05:54 +0200 Subject: [PATCH 115/165] Minor --- src/engine/AbsoluteValueConstraint.cpp | 16 ++++++++-------- src/engine/ReluConstraint.cpp | 18 +++++++++--------- src/engine/SignConstraint.cpp | 12 ++++++------ 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/engine/AbsoluteValueConstraint.cpp b/src/engine/AbsoluteValueConstraint.cpp index e8ea7305e5..1c492718bc 100644 --- a/src/engine/AbsoluteValueConstraint.cpp +++ b/src/engine/AbsoluteValueConstraint.cpp @@ -148,7 +148,7 @@ void AbsoluteValueConstraint::notifyLowerBound( unsigned variable, double bound // If phase is not fixed, both bonds are stored and checker should check the max of the two if ( proofs && !phaseFixed() ) _boundManager->addLemmaExplanationAndTightenBound( _f, fUpperBound, BoundType::UPPER, - {variable, variable}, BoundType::UPPER, getType() ); + { variable, variable }, BoundType::UPPER, getType() ); else if ( proofs && phaseFixed() ) { std::shared_ptr tighteningRow = fUpperBound == getUpperBound( _b ) ? _posTighteningRow : _negTighteningRow; @@ -222,7 +222,7 @@ void AbsoluteValueConstraint::notifyUpperBound( unsigned variable, double bound // If phase is not fixed, both bonds are stored and checker should check the max of the two if ( proofs && !phaseFixed() ) _boundManager->addLemmaExplanationAndTightenBound( _f, fUpperBound, BoundType::UPPER, - {variable, variable}, BoundType::UPPER, getType() ); + { variable, variable }, BoundType::UPPER, getType() ); else if ( proofs && phaseFixed() ) { std::shared_ptr tighteningRow = fUpperBound == bound ? _posTighteningRow : _negTighteningRow; @@ -807,7 +807,7 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() { setPhaseStatus( ABS_PHASE_POSITIVE ); if ( proofs ) - _boundManager->addLemmaExplanationAndTightenBound( _posAux, 0, BoundType::UPPER, {_b}, + _boundManager->addLemmaExplanationAndTightenBound( _posAux, 0, BoundType::UPPER, { _b }, BoundType::LOWER, getType() ); return; } @@ -817,7 +817,7 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() { setPhaseStatus( ABS_PHASE_NEGATIVE ); if ( proofs ) - _boundManager->addLemmaExplanationAndTightenBound( _negAux, 0, BoundType::UPPER, {_b}, + _boundManager->addLemmaExplanationAndTightenBound( _negAux, 0, BoundType::UPPER, { _b }, BoundType::UPPER, getType() ); return; } @@ -831,7 +831,7 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() { setPhaseStatus( ABS_PHASE_NEGATIVE ); if ( proofs ) - _boundManager->addLemmaExplanationAndTightenBound( _negAux, 0, BoundType::UPPER, {_b, _f}, + _boundManager->addLemmaExplanationAndTightenBound( _negAux, 0, BoundType::UPPER, { _b, _f }, BoundType::UPPER, getType() ); return; } @@ -842,7 +842,7 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() { setPhaseStatus( ABS_PHASE_POSITIVE ); if ( proofs ) - _boundManager->addLemmaExplanationAndTightenBound( _posAux, 0, BoundType::UPPER, {_b, _f}, + _boundManager->addLemmaExplanationAndTightenBound( _posAux, 0, BoundType::UPPER, { _b, _f }, BoundType::LOWER, getType() ); return; } @@ -861,7 +861,7 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() { setPhaseStatus( ABS_PHASE_NEGATIVE ); if ( proofs ) - _boundManager->addLemmaExplanationAndTightenBound( _negAux, 0, BoundType::UPPER, {_posAux}, + _boundManager->addLemmaExplanationAndTightenBound( _negAux, 0, BoundType::UPPER, { _posAux }, BoundType::LOWER, getType() ); return; } @@ -878,7 +878,7 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() { setPhaseStatus( ABS_PHASE_POSITIVE ); if ( proofs ) - _boundManager->addLemmaExplanationAndTightenBound( _posAux, 0, BoundType::UPPER, {_negAux}, + _boundManager->addLemmaExplanationAndTightenBound( _posAux, 0, BoundType::UPPER, { _negAux }, BoundType::LOWER, getType() ); return; } diff --git a/src/engine/ReluConstraint.cpp b/src/engine/ReluConstraint.cpp index c53cf83467..6be58f9d01 100644 --- a/src/engine/ReluConstraint.cpp +++ b/src/engine/ReluConstraint.cpp @@ -172,7 +172,7 @@ void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) { // If we're in the active phase, aux should be 0 if ( proofs && _auxVarInUse ) - _boundManager->addLemmaExplanationAndTightenBound( _aux, 0, BoundType::UPPER, {variable}, + _boundManager->addLemmaExplanationAndTightenBound( _aux, 0, BoundType::UPPER, { variable }, BoundType::LOWER, getType() ); else if ( !proofs && _auxVarInUse ) _boundManager->tightenUpperBound( _aux, 0 ); @@ -186,7 +186,7 @@ void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) else if ( _auxVarInUse && variable == _b && FloatUtils::isZero( bound ) ) { if ( proofs && _auxVarInUse ) - _boundManager->addLemmaExplanationAndTightenBound( _aux, 0, BoundType::UPPER, {variable}, + _boundManager->addLemmaExplanationAndTightenBound( _aux, 0, BoundType::UPPER, { variable }, BoundType::LOWER, getType() ); else if ( !proofs && _auxVarInUse ) _boundManager->tightenUpperBound( _aux, 0 ); @@ -197,7 +197,7 @@ void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) else if ( _auxVarInUse && variable == _aux && bound > 0 ) { if ( proofs ) - _boundManager->addLemmaExplanationAndTightenBound( _f, 0, BoundType::UPPER, {variable}, + _boundManager->addLemmaExplanationAndTightenBound( _f, 0, BoundType::UPPER, { variable }, BoundType::LOWER, getType() ); else _boundManager->tightenUpperBound( _f, 0 ); @@ -215,7 +215,7 @@ void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) if ( _phaseStatus == RELU_PHASE_INACTIVE ) _boundManager->tightenUpperBound( _aux, -bound, *_tighteningRow ); else if ( _phaseStatus == PHASE_NOT_FIXED ) - _boundManager->addLemmaExplanationAndTightenBound( _aux, -bound, BoundType::UPPER, {variable}, + _boundManager->addLemmaExplanationAndTightenBound( _aux, -bound, BoundType::UPPER, { variable }, BoundType::LOWER, getType() ); } else @@ -227,7 +227,7 @@ void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) else if ( bound < 0 && variable == _f ) { if ( proofs ) - _boundManager->addLemmaExplanationAndTightenBound( _f, 0, BoundType::LOWER, {variable}, + _boundManager->addLemmaExplanationAndTightenBound( _f, 0, BoundType::LOWER, { variable }, BoundType::LOWER, getType() ); else _boundManager->tightenLowerBound( _f, 0 ); @@ -272,7 +272,7 @@ void ReluConstraint::notifyUpperBound( unsigned variable, double newBound ) else { if ( FloatUtils::isZero( bound ) ) - _boundManager->addLemmaExplanationAndTightenBound( _b, 0, BoundType::UPPER, {variable}, + _boundManager->addLemmaExplanationAndTightenBound( _b, 0, BoundType::UPPER, { variable }, BoundType::UPPER, getType() ); // Bound cannot be negative if ReLU is inactive else if ( FloatUtils::isNegative( bound ) ) @@ -289,7 +289,7 @@ void ReluConstraint::notifyUpperBound( unsigned variable, double newBound ) { // If b has a non-positive upper bound, f's upper bound is 0 if ( proofs ) - _boundManager->addLemmaExplanationAndTightenBound( _f, 0, BoundType::UPPER, {variable}, + _boundManager->addLemmaExplanationAndTightenBound( _f, 0, BoundType::UPPER, { variable }, BoundType::UPPER, getType() ); else _boundManager->tightenUpperBound( _f, 0 ); @@ -308,7 +308,7 @@ void ReluConstraint::notifyUpperBound( unsigned variable, double newBound ) if ( _phaseStatus == RELU_PHASE_ACTIVE ) _boundManager->tightenUpperBound( _f, bound, *_tighteningRow ); else if ( _phaseStatus == PHASE_NOT_FIXED ) - _boundManager->addLemmaExplanationAndTightenBound( _f, bound, BoundType::UPPER, {variable}, + _boundManager->addLemmaExplanationAndTightenBound( _f, bound, BoundType::UPPER, { variable }, BoundType::UPPER, getType() ); } else @@ -324,7 +324,7 @@ void ReluConstraint::notifyUpperBound( unsigned variable, double newBound ) else { if ( FloatUtils::isZero( bound ) ) - _boundManager->addLemmaExplanationAndTightenBound( _b, 0, BoundType::LOWER, {variable}, + _boundManager->addLemmaExplanationAndTightenBound( _b, 0, BoundType::LOWER, { variable }, BoundType::UPPER, getType() ); // Bound cannot be negative if ReLU is active else if ( FloatUtils::isNegative( bound ) ) diff --git a/src/engine/SignConstraint.cpp b/src/engine/SignConstraint.cpp index 50002936fd..47b2481635 100644 --- a/src/engine/SignConstraint.cpp +++ b/src/engine/SignConstraint.cpp @@ -403,9 +403,9 @@ void SignConstraint::notifyLowerBound( unsigned variable, double bound ) if ( FloatUtils::gt( bound, 1 ) ) throw InfeasibleQueryException(); - _boundManager->addLemmaExplanationAndTightenBound( _f, 1, BoundType::LOWER, {variable}, + _boundManager->addLemmaExplanationAndTightenBound( _f, 1, BoundType::LOWER, { variable }, BoundType::LOWER, getType() ); - _boundManager->addLemmaExplanationAndTightenBound( _b, 0, BoundType::LOWER, {variable}, + _boundManager->addLemmaExplanationAndTightenBound( _b, 0, BoundType::LOWER, { variable }, BoundType::LOWER, getType() ); } else @@ -421,7 +421,7 @@ void SignConstraint::notifyLowerBound( unsigned variable, double bound ) if ( _boundManager != nullptr ) { if ( _boundManager->shouldProduceProofs() ) - _boundManager->addLemmaExplanationAndTightenBound( _f, 1, BoundType::LOWER, {variable}, + _boundManager->addLemmaExplanationAndTightenBound( _f, 1, BoundType::LOWER, { variable }, BoundType::LOWER, getType() ); else _boundManager->tightenLowerBound( _f, 1 ); @@ -455,9 +455,9 @@ void SignConstraint::notifyUpperBound( unsigned variable, double bound ) if ( FloatUtils::lt( bound, -1 ) ) throw InfeasibleQueryException(); - _boundManager->addLemmaExplanationAndTightenBound( _f, -1, BoundType::UPPER, {variable}, + _boundManager->addLemmaExplanationAndTightenBound( _f, -1, BoundType::UPPER, { variable }, BoundType::UPPER, getType() ); - _boundManager->addLemmaExplanationAndTightenBound( _b, 0, BoundType::UPPER, {variable}, + _boundManager->addLemmaExplanationAndTightenBound( _b, 0, BoundType::UPPER, { variable }, BoundType::UPPER, getType() ); } else @@ -473,7 +473,7 @@ void SignConstraint::notifyUpperBound( unsigned variable, double bound ) if ( _boundManager != nullptr ) { if ( _boundManager->shouldProduceProofs() ) - _boundManager->addLemmaExplanationAndTightenBound( _f, -1, BoundType::UPPER, {variable}, + _boundManager->addLemmaExplanationAndTightenBound( _f, -1, BoundType::UPPER, { variable }, BoundType::UPPER, getType() ); else _boundManager->tightenUpperBound( _f, -1 ); From 69045f26d5b919b7b38812db09a512253cc00719 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 5 Dec 2023 16:50:34 +0200 Subject: [PATCH 116/165] Sparse Explanations in proof tree --- .../SparseUnsortedList.cpp | 6 +++ src/engine/Engine.cpp | 13 ++--- src/engine/Engine.h | 1 + src/proofs/Checker.cpp | 51 ++++++++++--------- src/proofs/Checker.h | 2 +- src/proofs/Contradiction.cpp | 18 +++---- src/proofs/Contradiction.h | 5 +- src/proofs/PlcLemma.cpp | 25 +++++---- src/proofs/PlcLemma.h | 5 +- src/proofs/UnsatCertificateUtils.cpp | 45 ++++++++-------- src/proofs/UnsatCertificateUtils.h | 11 ++-- src/proofs/tests/Test_UnsatCertificateUtils.h | 9 ++-- 12 files changed, 99 insertions(+), 92 deletions(-) diff --git a/src/basis_factorization/SparseUnsortedList.cpp b/src/basis_factorization/SparseUnsortedList.cpp index ffb185dc5c..235fe91bb3 100644 --- a/src/basis_factorization/SparseUnsortedList.cpp +++ b/src/basis_factorization/SparseUnsortedList.cpp @@ -52,6 +52,12 @@ void SparseUnsortedList::initialize( const double *V, unsigned size ) } } +void SparseUnsortedList::initializeToEmpty() +{ + _size = 0; + _list.clear(); +} + void SparseUnsortedList::clear() { _list.clear(); diff --git a/src/engine/Engine.cpp b/src/engine/Engine.cpp index 643f5f526b..03286d19e2 100644 --- a/src/engine/Engine.cpp +++ b/src/engine/Engine.cpp @@ -3321,10 +3321,10 @@ bool Engine::certifyInfeasibility( unsigned var ) const if ( contradiction.empty() ) return FloatUtils::isNegative( _groundBoundManager.getUpperBound( var ) - _groundBoundManager.getLowerBound( var ) ); - - double derivedBound = UNSATCertificateUtils::computeCombinationUpperBound( contradiction.data(), _tableau->getSparseA(), - _groundBoundManager.getUpperBounds(), _groundBoundManager.getLowerBounds(), - _tableau->getM(), _tableau->getN() ); + SparseUnsortedList sparseContradiction = SparseUnsortedList(); + contradiction.empty() ? sparseContradiction.initializeToEmpty() : sparseContradiction.initialize( contradiction.data(), contradiction.size() ); + double derivedBound = UNSATCertificateUtils::computeCombinationUpperBound( sparseContradiction, _tableau->getSparseA(), + _groundBoundManager.getUpperBounds(), _groundBoundManager.getLowerBounds(), _tableau->getN() ); return FloatUtils::isNegative( derivedBound ); } @@ -3337,10 +3337,11 @@ double Engine::explainBound( unsigned var, bool isUpper ) const if ( !_boundManager.isExplanationTrivial( var, isUpper ) ) _boundManager.getExplanation( var, isUpper, explanationVec ); - const double *explanation = explanationVec.empty() ? NULL : explanationVec.data(); + SparseUnsortedList explanation = SparseUnsortedList( explanationVec.size() ); + explanationVec.empty() ? explanation.initializeToEmpty() : explanation.initialize( explanationVec.data(), explanationVec.size() ); return UNSATCertificateUtils::computeBound( var, isUpper, explanation, _tableau->getSparseA(), _groundBoundManager.getUpperBounds(), _groundBoundManager.getLowerBounds(), - _tableau->getM(), _tableau->getN() ); + _tableau->getN() ); } bool Engine::validateBounds( unsigned var, double epsilon, bool isUpper ) const diff --git a/src/engine/Engine.h b/src/engine/Engine.h index 731e5f8fa0..259e09adf6 100644 --- a/src/engine/Engine.h +++ b/src/engine/Engine.h @@ -40,6 +40,7 @@ #include "SignalHandler.h" #include "SmtCore.h" #include "SnCDivideStrategy.h" +#include "SparseUnsortedList.h" #include "Statistics.h" #include "SumOfInfeasibilitiesManager.h" #include "SymbolicBoundTighteningType.h" diff --git a/src/proofs/Checker.cpp b/src/proofs/Checker.cpp index b94681f3e3..445fa1229d 100644 --- a/src/proofs/Checker.cpp +++ b/src/proofs/Checker.cpp @@ -167,15 +167,15 @@ void Checker::fixChildSplitPhase( UnsatCertificateNode *child, PiecewiseLinearC bool Checker::checkContradiction( const UnsatCertificateNode *node ) const { ASSERT( node->isValidLeaf() && !node->getSATSolutionFlag() ); - const double *contradiction = node->getContradiction()->getContradiction(); + const SparseUnsortedList contradiction = node->getContradiction()->getContradiction(); - if ( contradiction == NULL ) + if ( contradiction.empty() ) { unsigned infeasibleVar = node->getContradiction()->getVar(); return FloatUtils::isNegative( _groundUpperBounds[infeasibleVar] - _groundLowerBounds[infeasibleVar] ); } - double contradictionUpperBound = UNSATCertificateUtils::computeCombinationUpperBound( contradiction, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); + double contradictionUpperBound = UNSATCertificateUtils::computeCombinationUpperBound( contradiction, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _groundUpperBounds.size() ); return FloatUtils::isNegative( contradictionUpperBound ); } @@ -247,9 +247,9 @@ bool Checker::checkAllPLCExplanations( const UnsatCertificateNode *node, double return true; } -double Checker::explainBound( unsigned var, bool isUpper, const double *explanation ) const +double Checker::explainBound( unsigned var, bool isUpper, const SparseUnsortedList &explanation ) const { - return UNSATCertificateUtils::computeBound( var, isUpper, explanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); + return UNSATCertificateUtils::computeBound( var, isUpper, explanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _groundUpperBounds.size() ); } PiecewiseLinearConstraint *Checker::getCorrespondingConstraint( const List &splits ) @@ -549,14 +549,15 @@ double Checker::checkReluLemma( const PLCLemma &expl, PiecewiseLinearConstraint unsigned causingVar = expl.getCausingVars().front(); unsigned affectedVar = expl.getAffectedVar(); double bound = expl.getBound(); - const double *explanation = expl.getExplanations(); + const List &explanations = expl.getExplanations(); BoundType causingVarBound = expl.getCausingVarBound(); BoundType affectedVarBound = expl.getAffectedVarBound(); + ASSERT( explanations.size() == 1 ); - double explainedBound = UNSATCertificateUtils::computeBound( causingVar, causingVarBound == BoundType::UPPER, explanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); + double explainedBound = UNSATCertificateUtils::computeBound( causingVar, causingVarBound == BoundType::UPPER, explanations.back(), _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _groundUpperBounds.size() ); List constraintVars = constraint.getParticipatingVariables(); - ASSERT(constraintVars.size() == 3 ); + ASSERT( constraintVars.size() == 3 ); Vector conVec( constraintVars.begin(), constraintVars.end() ); unsigned b = conVec[0]; @@ -623,11 +624,12 @@ double Checker::checkSignLemma( const PLCLemma &expl, PiecewiseLinearConstraint unsigned causingVar = expl.getCausingVars().front(); unsigned affectedVar = expl.getAffectedVar(); double bound = expl.getBound(); - const double *explanation = expl.getExplanations(); + const List &explanations = expl.getExplanations(); BoundType causingVarBound = expl.getCausingVarBound(); BoundType affectedVarBound = expl.getAffectedVarBound(); + ASSERT( explanations.size() == 1 ); - double explainedBound = UNSATCertificateUtils::computeBound( causingVar, causingVarBound == BoundType::UPPER, explanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); + double explainedBound = UNSATCertificateUtils::computeBound( causingVar, causingVarBound == BoundType::UPPER, explanations.front(), _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _groundUpperBounds.size() ); List constraintVars = constraint.getParticipatingVariables(); ASSERT(constraintVars.size() == 2 ); @@ -696,14 +698,14 @@ double Checker::checkAbsLemma( const PLCLemma &expl, PiecewiseLinearConstraint & unsigned firstCausingVar = expl.getCausingVars().front(); unsigned secondCausingVar = expl.getCausingVars().back(); - const double *firstExplanation = expl.getExplanations(); - const double *secondExplanation = expl.getExplanations() + _proofSize; + const SparseUnsortedList firstExplanation = expl.getExplanations().front(); + const SparseUnsortedList secondExplanation = expl.getExplanations().back(); // Case of a non phase-fixing lemma if ( firstCausingVar == secondCausingVar ) { - double explainedUpperBound = UNSATCertificateUtils::computeBound( firstCausingVar, BoundType::UPPER, firstExplanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); - double explainedLowerBound = UNSATCertificateUtils::computeBound( secondCausingVar, BoundType::LOWER, secondExplanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); + double explainedUpperBound = UNSATCertificateUtils::computeBound( firstCausingVar, BoundType::UPPER, firstExplanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _groundUpperBounds.size() ); + double explainedLowerBound = UNSATCertificateUtils::computeBound( secondCausingVar, BoundType::LOWER, secondExplanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _groundUpperBounds.size() ); // b is always the causing var, affecting the ub of f if ( affectedVar == f && firstCausingVar == b && affectedVarBound == BoundType::UPPER && bound > 0 ) @@ -715,8 +717,8 @@ double Checker::checkAbsLemma( const PLCLemma &expl, PiecewiseLinearConstraint & else { ASSERT( firstCausingVar == b && secondCausingVar == f ); - double explainedBBound = UNSATCertificateUtils::computeBound( firstCausingVar, causingVarBound == BoundType::UPPER, firstExplanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); - double explainedFBound = UNSATCertificateUtils::computeBound( secondCausingVar, BoundType::LOWER, secondExplanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); + double explainedBBound = UNSATCertificateUtils::computeBound( firstCausingVar, causingVarBound == BoundType::UPPER, firstExplanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _groundUpperBounds.size() ); + double explainedFBound = UNSATCertificateUtils::computeBound( secondCausingVar, BoundType::LOWER, secondExplanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _groundUpperBounds.size() ); if ( affectedVar == neg && causingVarBound == BoundType::UPPER && explainedFBound > explainedBBound - epsilon && bound == 0 ) { @@ -734,10 +736,10 @@ double Checker::checkAbsLemma( const PLCLemma &expl, PiecewiseLinearConstraint & } // Cases of a phase-fixing lemma - const double *explanation = expl.getExplanations(); + const List &explanation = expl.getExplanations(); unsigned causingVar = expl.getCausingVars().front(); - double explainedBound = UNSATCertificateUtils::computeBound( causingVar, causingVarBound == BoundType::UPPER, explanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); + double explainedBound = UNSATCertificateUtils::computeBound( causingVar, causingVarBound == BoundType::UPPER, explanation.front(), _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _groundUpperBounds.size() ); if ( affectedVar == pos && causingVar == b && causingVarBound == BoundType::LOWER && !FloatUtils::isNegative( explainedBound + epsilon ) && bound == 0 ) { @@ -771,7 +773,7 @@ double Checker::checkMaxLemma( const PLCLemma &expl, PiecewiseLinearConstraint & double maxBound = maxConstraint->getMaxValueOfEliminatedPhases(); const List causingVars = expl.getCausingVars(); unsigned affectedVar = expl.getAffectedVar(); - const double *allExplanations = expl.getExplanations(); + const List &allExplanations = expl.getExplanations(); BoundType causingVarBound = expl.getCausingVarBound(); BoundType affectedVarBound = expl.getAffectedVarBound(); double explainedBound = affectedVarBound == BoundType::UPPER ? FloatUtils::infinity() : FloatUtils::negativeInfinity(); @@ -786,13 +788,16 @@ double Checker::checkMaxLemma( const PLCLemma &expl, PiecewiseLinearConstraint & // Only tightening type is of the form f = element, for some element with the maximal upper bound unsigned counter = 0; + + Vector causingVarsVec = Vector( 0 ); for( const auto &var : causingVars ) - { - const double *explanation = allExplanations + ( counter * _proofSize ); - ++counter; + causingVarsVec.append( var ); - explainedBound = UNSATCertificateUtils::computeBound( var, BoundType::UPPER, explanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _proofSize, _groundUpperBounds.size() ); + for( const auto &explanation : allExplanations ) + { + explainedBound = UNSATCertificateUtils::computeBound( causingVarsVec[counter], BoundType::UPPER, explanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _groundUpperBounds.size() ); maxBound = FloatUtils::max( maxBound, explainedBound ); + ++counter; } if ( causingVarBound == BoundType::UPPER && affectedVar == f && affectedVarBound == BoundType::UPPER ) diff --git a/src/proofs/Checker.h b/src/proofs/Checker.h index 595cbc13a4..abfd704593 100644 --- a/src/proofs/Checker.h +++ b/src/proofs/Checker.h @@ -98,7 +98,7 @@ class Checker /* Computes a bound according to an explanation */ - double explainBound( unsigned var, bool isUpper, const double *explanation ) const; + double explainBound( unsigned var, bool isUpper, const SparseUnsortedList &explanation ) const; /* Write the data marked to delegate to a smtlib file format diff --git a/src/proofs/Contradiction.cpp b/src/proofs/Contradiction.cpp index 609291c416..dee6b1f029 100644 --- a/src/proofs/Contradiction.cpp +++ b/src/proofs/Contradiction.cpp @@ -17,27 +17,21 @@ Contradiction::Contradiction( const Vector &contradiction ) { if ( contradiction.empty() ) - _contradiction = NULL; + _contradiction.initializeToEmpty(); else - { - _contradiction = new double[contradiction.size()]; - std::copy( contradiction.begin(), contradiction.end(), _contradiction ); - } + _contradiction.initialize( contradiction.data(), contradiction.size() ); } Contradiction::Contradiction( unsigned var ) : _var( var ) - , _contradiction( NULL ) + , _contradiction( ) { } Contradiction::~Contradiction() { - if ( _contradiction ) - { - delete [] _contradiction; - _contradiction = NULL; - } + if ( !_contradiction.empty() ) + _contradiction.clear(); } unsigned Contradiction::getVar() const @@ -45,7 +39,7 @@ unsigned Contradiction::getVar() const return _var; } -const double *Contradiction::getContradiction() const +const SparseUnsortedList &Contradiction::getContradiction() const { return _contradiction; } diff --git a/src/proofs/Contradiction.h b/src/proofs/Contradiction.h index 209cffa82e..462b059fed 100644 --- a/src/proofs/Contradiction.h +++ b/src/proofs/Contradiction.h @@ -15,6 +15,7 @@ #ifndef __Contradiction_h__ #define __Contradiction_h__ +#include "SparseUnsortedList.h" #include "Vector.h" /* @@ -32,11 +33,11 @@ class Contradiction Getters for all fields */ unsigned getVar() const; - const double *getContradiction() const; + const SparseUnsortedList &getContradiction() const; private: unsigned _var; - double *_contradiction; + SparseUnsortedList _contradiction; }; #endif //__Contradiction_h__ diff --git a/src/proofs/PlcLemma.cpp b/src/proofs/PlcLemma.cpp index 69cc0541f2..2ec300fbdd 100644 --- a/src/proofs/PlcLemma.cpp +++ b/src/proofs/PlcLemma.cpp @@ -29,9 +29,11 @@ PLCLemma::PLCLemma( const List &causingVars, , _constraintType( constraintType ) { if ( explanations.empty() ) - _explanations = NULL; + _explanations = List(); else { + ASSERT( causingVars.size() == explanations.size() ); + bool allEmpty = true; unsigned proofSize = 0; @@ -44,7 +46,7 @@ PLCLemma::PLCLemma( const List &causingVars, } if ( allEmpty ) - _explanations = NULL; + _explanations = List(); else { unsigned numOfExplanations = explanations.size(); @@ -57,22 +59,23 @@ PLCLemma::PLCLemma( const List &causingVars, if ( _constraintType == ABSOLUTE_VALUE ) ASSERT( numOfExplanations == 2 || numOfExplanations == 1 ); - _explanations = new double[numOfExplanations * proofSize]; + _explanations = List(); for ( unsigned i = 0; i < numOfExplanations; ++i ) - for ( unsigned j = 0; j < proofSize; ++j ) - _explanations[i * proofSize + j] = explanations[i][j]; + { + SparseUnsortedList expl = SparseUnsortedList(); + expl.initialize( explanations[i].data(), proofSize ); + _explanations.append( expl ); + } } } } PLCLemma::~PLCLemma() { - if ( _explanations ) - { - delete [] _explanations; - _explanations = NULL; - } + if ( !_explanations.empty() ) + for ( auto &expl : _explanations ) + expl.clear(); } const List &PLCLemma::getCausingVars() const @@ -100,7 +103,7 @@ BoundType PLCLemma::getAffectedVarBound() const return _affectedVarBound; } -const double *PLCLemma::getExplanations() const +const List &PLCLemma::getExplanations() const { return _explanations; } diff --git a/src/proofs/PlcLemma.h b/src/proofs/PlcLemma.h index ceae40b0cc..1e2567eeb5 100644 --- a/src/proofs/PlcLemma.h +++ b/src/proofs/PlcLemma.h @@ -17,6 +17,7 @@ #include "PiecewiseLinearConstraint.h" #include "PiecewiseLinearFunctionType.h" +#include "SparseUnsortedList.h" #include "Vector.h" /* @@ -43,7 +44,7 @@ class PLCLemma double getBound() const; BoundType getCausingVarBound() const; BoundType getAffectedVarBound() const; - const double *getExplanations() const; + const List &getExplanations() const; PiecewiseLinearFunctionType getConstraintType() const; private: @@ -52,7 +53,7 @@ class PLCLemma double _bound; BoundType _causingVarBound; BoundType _affectedVarBound; - double *_explanations; + List _explanations; PiecewiseLinearFunctionType _constraintType; }; diff --git a/src/proofs/UnsatCertificateUtils.cpp b/src/proofs/UnsatCertificateUtils.cpp index 2b38700ec9..6b43469afe 100644 --- a/src/proofs/UnsatCertificateUtils.cpp +++ b/src/proofs/UnsatCertificateUtils.cpp @@ -16,11 +16,10 @@ double UNSATCertificateUtils::computeBound( unsigned var, bool isUpper, - const double *explanation, + const SparseUnsortedList &explanation, const SparseMatrix *initialTableau, const double *groundUpperBounds, const double *groundLowerBounds, - unsigned numberOfRows, unsigned numberOfVariables ) { ASSERT( var < numberOfVariables ); @@ -28,13 +27,13 @@ double UNSATCertificateUtils::computeBound( unsigned var, double derivedBound = 0; double temp; - if ( !explanation ) + if ( explanation.empty() ) return isUpper ? groundUpperBounds[var] : groundLowerBounds[var]; bool allZeros = true; - for ( unsigned i = 0; i < numberOfRows; ++i ) - if ( !FloatUtils::isZero( explanation[i] ) ) + for ( const auto &entry : explanation ) + if ( !FloatUtils::isZero( entry._value ) ) { allZeros = false; break; @@ -45,7 +44,7 @@ double UNSATCertificateUtils::computeBound( unsigned var, Vector explanationRowCombination( numberOfVariables, 0 ); // Create linear combination of original rows implied from explanation - UNSATCertificateUtils::getExplanationRowCombination( var, explanation, explanationRowCombination, initialTableau, numberOfRows, numberOfVariables ); + UNSATCertificateUtils::getExplanationRowCombination( var, explanation, explanationRowCombination, initialTableau, numberOfVariables ); // Set the bound derived from the linear combination, using original bounds. for ( unsigned i = 0; i < numberOfVariables; ++i ) @@ -67,27 +66,26 @@ double UNSATCertificateUtils::computeBound( unsigned var, } void UNSATCertificateUtils::getExplanationRowCombination( unsigned var, - const double *explanation, + const SparseUnsortedList &explanation, Vector &explanationRowCombination, const SparseMatrix *initialTableau, - unsigned numberOfRows, unsigned numberOfVariables ) { - ASSERT( explanation != NULL ); + ASSERT( !explanation.empty() ); SparseUnsortedList tableauRow( numberOfVariables ); explanationRowCombination = Vector ( numberOfVariables, 0 ); - for ( unsigned i = 0; i < numberOfRows; ++i ) + for ( const auto &entry : explanation ) { - if ( FloatUtils::isZero( explanation[i] ) ) + if ( FloatUtils::isZero( entry._value ) ) continue; - initialTableau->getRow( i, &tableauRow ); - for ( auto entry : tableauRow ) + initialTableau->getRow( entry._index, &tableauRow ); + for ( const auto &tableauEntry : tableauRow ) { - if ( !FloatUtils::isZero( entry._value ) ) - explanationRowCombination[entry._index] += entry._value * explanation[i]; + if ( !FloatUtils::isZero( tableauEntry._value ) ) + explanationRowCombination[tableauEntry._index] += entry._value * tableauEntry._value; } } @@ -102,28 +100,27 @@ void UNSATCertificateUtils::getExplanationRowCombination( unsigned var, ++explanationRowCombination[var]; } -double UNSATCertificateUtils::computeCombinationUpperBound( const double *explanation, +double UNSATCertificateUtils::computeCombinationUpperBound( const SparseUnsortedList &explanation, const SparseMatrix *initialTableau, const double *groundUpperBounds, const double *groundLowerBounds, - unsigned numberOfRows, unsigned numberOfVariables ) { - ASSERT( explanation != NULL ); + ASSERT( !explanation.empty() ); SparseUnsortedList tableauRow( numberOfVariables ); Vector explanationRowCombination( numberOfVariables, 0 ); - for ( unsigned row = 0; row < numberOfRows; ++row ) + for ( const auto &entry : explanation ) { - if ( FloatUtils::isZero( explanation[row] ) ) + if ( FloatUtils::isZero( entry._value ) ) continue; - initialTableau->getRow( row, &tableauRow ); - for ( auto entry : tableauRow ) + initialTableau->getRow( entry._index, &tableauRow ); + for ( const auto &tableauEntry : tableauRow ) { - if ( !FloatUtils::isZero( entry._value ) ) - explanationRowCombination[entry._index] += entry._value * explanation[row]; + if ( !FloatUtils::isZero( tableauEntry._value ) ) + explanationRowCombination[tableauEntry._index] += tableauEntry._value * entry._value; } } diff --git a/src/proofs/UnsatCertificateUtils.h b/src/proofs/UnsatCertificateUtils.h index e2cf5d4abd..f016df3a20 100644 --- a/src/proofs/UnsatCertificateUtils.h +++ b/src/proofs/UnsatCertificateUtils.h @@ -30,28 +30,25 @@ class UNSATCertificateUtils */ static double computeBound( unsigned var, bool isUpper, - const double *explanation, + const SparseUnsortedList &explanation, const SparseMatrix *initialTableau, const double *groundUpperBounds, const double *groundLowerBounds, - unsigned numberOfRows, unsigned numberOfVariables ); /* Given a var, a tableau and a column vector, create a linear combination used to explain a bound */ static void getExplanationRowCombination( unsigned var, - const double *explanation, + const SparseUnsortedList &explanation, Vector &explanationRowCombination, const SparseMatrix *initialTableau, - unsigned numberOfVariables, - unsigned numberOfRows ); + unsigned numberOfVariables ); - static double computeCombinationUpperBound( const double *explanation, + static double computeCombinationUpperBound( const SparseUnsortedList &explanation, const SparseMatrix *initialTableau, const double *groundUpperBounds, const double *groundLowerBounds, - unsigned numberOfRows, unsigned numberOfVariables ); static const Set getSupportedActivations(); diff --git a/src/proofs/tests/Test_UnsatCertificateUtils.h b/src/proofs/tests/Test_UnsatCertificateUtils.h index a376b57d77..213e4d8d22 100644 --- a/src/proofs/tests/Test_UnsatCertificateUtils.h +++ b/src/proofs/tests/Test_UnsatCertificateUtils.h @@ -28,14 +28,15 @@ class UnsatCertificateUtilsTestSuite : public CxxTest::TestSuite Vector groundUpperBounds = { 1, 1 ,1 ,1 ,1 ,1 }; Vector groundLowerBounds = { 0, 0, 0, 0, 0, 0 }; Vector rowCombination; - - double explanation[3] = { 1, 1, 0 }; + const double expl[3] = {1, 1, 0}; + SparseUnsortedList explanation = SparseUnsortedList(); + explanation.initialize( expl, 3); // Linear combination is x0 = 2x0 - x1 + x2 + x3 + x4, thus explanation combination is only lhs // Checks computation method only, since no actual bound will be explained this way unsigned var = 0; - UNSATCertificateUtils::getExplanationRowCombination( var, explanation, rowCombination, &initialTableau, m, n ); + UNSATCertificateUtils::getExplanationRowCombination( var, explanation, rowCombination, &initialTableau, n ); auto it = rowCombination.begin(); TS_ASSERT_EQUALS( *it, 2 ); @@ -52,7 +53,7 @@ class UnsatCertificateUtilsTestSuite : public CxxTest::TestSuite ++it; TS_ASSERT_EQUALS( it, rowCombination.end() ); - double explainedBound = UNSATCertificateUtils::computeBound( var, true, explanation, &initialTableau, groundUpperBounds.data(), groundLowerBounds.data(), 3, groundUpperBounds.size() ); + double explainedBound = UNSATCertificateUtils::computeBound( var, true, explanation, &initialTableau, groundUpperBounds.data(), groundLowerBounds.data(), groundUpperBounds.size() ); TS_ASSERT_EQUALS( explainedBound, 5 ); } From b58985da7693760cc5d4904083bb798c20910a5b Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 5 Dec 2023 17:07:21 +0200 Subject: [PATCH 117/165] Minor --- src/proofs/Checker.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/proofs/Checker.cpp b/src/proofs/Checker.cpp index 445fa1229d..4c136aacad 100644 --- a/src/proofs/Checker.cpp +++ b/src/proofs/Checker.cpp @@ -167,7 +167,7 @@ void Checker::fixChildSplitPhase( UnsatCertificateNode *child, PiecewiseLinearC bool Checker::checkContradiction( const UnsatCertificateNode *node ) const { ASSERT( node->isValidLeaf() && !node->getSATSolutionFlag() ); - const SparseUnsortedList contradiction = node->getContradiction()->getContradiction(); + const SparseUnsortedList &contradiction = node->getContradiction()->getContradiction(); if ( contradiction.empty() ) { @@ -698,8 +698,8 @@ double Checker::checkAbsLemma( const PLCLemma &expl, PiecewiseLinearConstraint & unsigned firstCausingVar = expl.getCausingVars().front(); unsigned secondCausingVar = expl.getCausingVars().back(); - const SparseUnsortedList firstExplanation = expl.getExplanations().front(); - const SparseUnsortedList secondExplanation = expl.getExplanations().back(); + const SparseUnsortedList &firstExplanation = expl.getExplanations().front(); + const SparseUnsortedList &secondExplanation = expl.getExplanations().back(); // Case of a non phase-fixing lemma if ( firstCausingVar == secondCausingVar ) From f3c7a7365e1e192e2129c035116065f59cd228c1 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 5 Dec 2023 17:31:59 +0200 Subject: [PATCH 118/165] Remove problematic rtest --- regress/regress1/CMakeLists.txt | 3 +- .../input_queries/deep_6_index_5525.ipq | 4264 ----------------- 2 files changed, 1 insertion(+), 4266 deletions(-) delete mode 100644 regress/regress1/input_queries/deep_6_index_5525.ipq diff --git a/regress/regress1/CMakeLists.txt b/regress/regress1/CMakeLists.txt index 0470a2f53f..012233f8d2 100644 --- a/regress/regress1/CMakeLists.txt +++ b/regress/regress1/CMakeLists.txt @@ -164,5 +164,4 @@ marabou_add_input_query_test(1 ACASXU_maxtest2.ipq unsat "--prove-unsat" "ipq") # Sign marabou_add_input_query_test(1 deep_6_index_5566.ipq unsat "--prove-unsat" "ipq") marabou_add_input_query_test(1 deep_6_index_5567.ipq unsat "--prove-unsat" "ipq") -marabou_add_input_query_test(1 deep_6_index_5525.ipq unsat "--prove-unsat" "ipq") -marabou_add_input_query_test(1 deep_6_index_7779.ipq unsat "--prove-unsat" "ipq") \ No newline at end of file +marabou_add_input_query_test(1 deep_6_index_7779.ipq unsat "--prove-unsat" "ipq") diff --git a/regress/regress1/input_queries/deep_6_index_5525.ipq b/regress/regress1/input_queries/deep_6_index_5525.ipq deleted file mode 100644 index 43181e444c..0000000000 --- a/regress/regress1/input_queries/deep_6_index_5525.ipq +++ /dev/null @@ -1,4264 +0,0 @@ -2678 -1004 -1004 -1235 -220 -784 -0,0 -1,1 -2,2 -3,3 -4,4 -5,5 -6,6 -7,7 -8,8 -9,9 -10,10 -11,11 -12,12 -13,13 -14,14 -15,15 -16,16 -17,17 -18,18 -19,19 -20,20 -21,21 -22,22 -23,23 -24,24 -25,25 -26,26 -27,27 -28,28 -29,29 -30,30 -31,31 -32,32 -33,33 -34,34 -35,35 -36,36 -37,37 -38,38 -39,39 -40,40 -41,41 -42,42 -43,43 -44,44 -45,45 -46,46 -47,47 -48,48 -49,49 -50,50 -51,51 -52,52 -53,53 -54,54 -55,55 -56,56 -57,57 -58,58 -59,59 -60,60 -61,61 -62,62 -63,63 -64,64 -65,65 -66,66 -67,67 -68,68 -69,69 -70,70 -71,71 -72,72 -73,73 -74,74 -75,75 -76,76 -77,77 -78,78 -79,79 -80,80 -81,81 -82,82 -83,83 -84,84 -85,85 -86,86 -87,87 -88,88 -89,89 -90,90 -91,91 -92,92 -93,93 -94,94 -95,95 -96,96 -97,97 -98,98 -99,99 -100,100 -101,101 -102,102 -103,103 -104,104 -105,105 -106,106 -107,107 -108,108 -109,109 -110,110 -111,111 -112,112 -113,113 -114,114 -115,115 -116,116 -117,117 -118,118 -119,119 -120,120 -121,121 -122,122 -123,123 -124,124 -125,125 -126,126 -127,127 -128,128 -129,129 -130,130 -131,131 -132,132 -133,133 -134,134 -135,135 -136,136 -137,137 -138,138 -139,139 -140,140 -141,141 -142,142 -143,143 -144,144 -145,145 -146,146 -147,147 -148,148 -149,149 -150,150 -151,151 -152,152 -153,153 -154,154 -155,155 -156,156 -157,157 -158,158 -159,159 -160,160 -161,161 -162,162 -163,163 -164,164 -165,165 -166,166 -167,167 -168,168 -169,169 -170,170 -171,171 -172,172 -173,173 -174,174 -175,175 -176,176 -177,177 -178,178 -179,179 -180,180 -181,181 -182,182 -183,183 -184,184 -185,185 -186,186 -187,187 -188,188 -189,189 -190,190 -191,191 -192,192 -193,193 -194,194 -195,195 -196,196 -197,197 -198,198 -199,199 -200,200 -201,201 -202,202 -203,203 -204,204 -205,205 -206,206 -207,207 -208,208 -209,209 -210,210 -211,211 -212,212 -213,213 -214,214 -215,215 -216,216 -217,217 -218,218 -219,219 -220,220 -221,221 -222,222 -223,223 -224,224 -225,225 -226,226 -227,227 -228,228 -229,229 -230,230 -231,231 -232,232 -233,233 -234,234 -235,235 -236,236 -237,237 -238,238 -239,239 -240,240 -241,241 -242,242 -243,243 -244,244 -245,245 -246,246 -247,247 -248,248 -249,249 -250,250 -251,251 -252,252 -253,253 -254,254 -255,255 -256,256 -257,257 -258,258 -259,259 -260,260 -261,261 -262,262 -263,263 -264,264 -265,265 -266,266 -267,267 -268,268 -269,269 -270,270 -271,271 -272,272 -273,273 -274,274 -275,275 -276,276 -277,277 -278,278 -279,279 -280,280 -281,281 -282,282 -283,283 -284,284 -285,285 -286,286 -287,287 -288,288 -289,289 -290,290 -291,291 -292,292 -293,293 -294,294 -295,295 -296,296 -297,297 -298,298 -299,299 -300,300 -301,301 -302,302 -303,303 -304,304 -305,305 -306,306 -307,307 -308,308 -309,309 -310,310 -311,311 -312,312 -313,313 -314,314 -315,315 -316,316 -317,317 -318,318 -319,319 -320,320 -321,321 -322,322 -323,323 -324,324 -325,325 -326,326 -327,327 -328,328 -329,329 -330,330 -331,331 -332,332 -333,333 -334,334 -335,335 -336,336 -337,337 -338,338 -339,339 -340,340 -341,341 -342,342 -343,343 -344,344 -345,345 -346,346 -347,347 -348,348 -349,349 -350,350 -351,351 -352,352 -353,353 -354,354 -355,355 -356,356 -357,357 -358,358 -359,359 -360,360 -361,361 -362,362 -363,363 -364,364 -365,365 -366,366 -367,367 -368,368 -369,369 -370,370 -371,371 -372,372 -373,373 -374,374 -375,375 -376,376 -377,377 -378,378 -379,379 -380,380 -381,381 -382,382 -383,383 -384,384 -385,385 -386,386 -387,387 -388,388 -389,389 -390,390 -391,391 -392,392 -393,393 -394,394 -395,395 -396,396 -397,397 -398,398 -399,399 -400,400 -401,401 -402,402 -403,403 -404,404 -405,405 -406,406 -407,407 -408,408 -409,409 -410,410 -411,411 -412,412 -413,413 -414,414 -415,415 -416,416 -417,417 -418,418 -419,419 -420,420 -421,421 -422,422 -423,423 -424,424 -425,425 -426,426 -427,427 -428,428 -429,429 -430,430 -431,431 -432,432 -433,433 -434,434 -435,435 -436,436 -437,437 -438,438 -439,439 -440,440 -441,441 -442,442 -443,443 -444,444 -445,445 -446,446 -447,447 -448,448 -449,449 -450,450 -451,451 -452,452 -453,453 -454,454 -455,455 -456,456 -457,457 -458,458 -459,459 -460,460 -461,461 -462,462 -463,463 -464,464 -465,465 -466,466 -467,467 -468,468 -469,469 -470,470 -471,471 -472,472 -473,473 -474,474 -475,475 -476,476 -477,477 -478,478 -479,479 -480,480 -481,481 -482,482 -483,483 -484,484 -485,485 -486,486 -487,487 -488,488 -489,489 -490,490 -491,491 -492,492 -493,493 -494,494 -495,495 -496,496 -497,497 -498,498 -499,499 -500,500 -501,501 -502,502 -503,503 -504,504 -505,505 -506,506 -507,507 -508,508 -509,509 -510,510 -511,511 -512,512 -513,513 -514,514 -515,515 -516,516 -517,517 -518,518 -519,519 -520,520 -521,521 -522,522 -523,523 -524,524 -525,525 -526,526 -527,527 -528,528 -529,529 -530,530 -531,531 -532,532 -533,533 -534,534 -535,535 -536,536 -537,537 -538,538 -539,539 -540,540 -541,541 -542,542 -543,543 -544,544 -545,545 -546,546 -547,547 -548,548 -549,549 -550,550 -551,551 -552,552 -553,553 -554,554 -555,555 -556,556 -557,557 -558,558 -559,559 -560,560 -561,561 -562,562 -563,563 -564,564 -565,565 -566,566 -567,567 -568,568 -569,569 -570,570 -571,571 -572,572 -573,573 -574,574 -575,575 -576,576 -577,577 -578,578 -579,579 -580,580 -581,581 -582,582 -583,583 -584,584 -585,585 -586,586 -587,587 -588,588 -589,589 -590,590 -591,591 -592,592 -593,593 -594,594 -595,595 -596,596 -597,597 -598,598 -599,599 -600,600 -601,601 -602,602 -603,603 -604,604 -605,605 -606,606 -607,607 -608,608 -609,609 -610,610 -611,611 -612,612 -613,613 -614,614 -615,615 -616,616 -617,617 -618,618 -619,619 -620,620 -621,621 -622,622 -623,623 -624,624 -625,625 -626,626 -627,627 -628,628 -629,629 -630,630 -631,631 -632,632 -633,633 -634,634 -635,635 -636,636 -637,637 -638,638 -639,639 -640,640 -641,641 -642,642 -643,643 -644,644 -645,645 -646,646 -647,647 -648,648 -649,649 -650,650 -651,651 -652,652 -653,653 -654,654 -655,655 -656,656 -657,657 -658,658 -659,659 -660,660 -661,661 -662,662 -663,663 -664,664 -665,665 -666,666 -667,667 -668,668 -669,669 -670,670 -671,671 -672,672 -673,673 -674,674 -675,675 -676,676 -677,677 -678,678 -679,679 -680,680 -681,681 -682,682 -683,683 -684,684 -685,685 -686,686 -687,687 -688,688 -689,689 -690,690 -691,691 -692,692 -693,693 -694,694 -695,695 -696,696 -697,697 -698,698 -699,699 -700,700 -701,701 -702,702 -703,703 -704,704 -705,705 -706,706 -707,707 -708,708 -709,709 -710,710 -711,711 -712,712 -713,713 -714,714 -715,715 -716,716 -717,717 -718,718 -719,719 -720,720 -721,721 -722,722 -723,723 -724,724 -725,725 -726,726 -727,727 -728,728 -729,729 -730,730 -731,731 -732,732 -733,733 -734,734 -735,735 -736,736 -737,737 -738,738 -739,739 -740,740 -741,741 -742,742 -743,743 -744,744 -745,745 -746,746 -747,747 -748,748 -749,749 -750,750 -751,751 -752,752 -753,753 -754,754 -755,755 -756,756 -757,757 -758,758 -759,759 -760,760 -761,761 -762,762 -763,763 -764,764 -765,765 -766,766 -767,767 -768,768 -769,769 -770,770 -771,771 -772,772 -773,773 -774,774 -775,775 -776,776 -777,777 -778,778 -779,779 -780,780 -781,781 -782,782 -783,783 -10 -0,784 -1,785 -2,786 -3,787 -4,788 -5,789 -6,790 -7,791 -8,792 -9,793 -0,0 -1,0 -2,0 -3,0 -4,0 -5,0 -6,0 -7,0 -8,0 -9,0 -10,0 -11,0 -12,0 -13,0 -14,0 -15,0 -16,0 -17,0 -18,0 -19,0 -20,0 -21,0 -22,0 -23,0 -24,0 -25,0 -26,0 -27,0 -28,0 -29,0 -30,0 -31,0 -32,0 -33,0 -34,0 -35,0 -36,0 -37,0 -38,0 -39,0 -40,0 -41,0 -42,0 -43,0 -44,0 -45,0 -46,0 -47,0 -48,0 -49,0 -50,0 -51,0 -52,0 -53,0 -54,0 -55,0 -56,0 -57,0 -58,0 -59,0 -60,0 -61,0 -62,0 -63,0 -64,0 -65,0 -66,0 -67,0 -68,0 -69,0 -70,0 -71,0 -72,0 -73,0 -74,0 -75,0 -76,0 -77,0 -78,0 -79,0 -80,0 -81,0 -82,0 -83,0 -84,0 -85,0 -86,0 -87,0 -88,0 -89,0 -90,0 -91,0 -92,0 -93,0 -94,0 -95,0 -96,0 -97,0 -98,0 -99,0 -100,0 -101,0 -102,0 -103,0 -104,0 -105,0 -106,0 -107,0 -108,0 -109,0 -110,0 -111,0 -112,0 -113,0 -114,0 -115,0 -116,0 -117,0 -118,0 -119,0 -120,0 -121,0 -122,0 -123,0 -124,0 -125,0 -126,0 -127,0 -128,0 -129,0 -130,0 -131,0 -132,0 -133,0 -134,0 -135,0 -136,0 -137,0 -138,0 -139,0 -140,0 -141,0 -142,0 -143,0 -144,0 -145,0 -146,0 -147,0 -148,0 -149,0 -150,0 -151,0 -152,0 -153,0.02666973039215686 -154,0.807061887254902 -155,0.803140318627451 -156,0.08157169117647059 -157,0 -158,0 -159,0 -160,0 -161,0 -162,0 -163,0 -164,0 -165,0 -166,0 -167,0 -168,0 -169,0 -170,0 -171,0 -172,0 -173,0 -174,0 -175,0 -176,0 -177,0 -178,0 -179,0 -180,0 -181,0.6815716911764707 -182,0.9952971813725491 -183,0.9913756127450981 -184,0.6894148284313726 -185,0 -186,0 -187,0 -188,0 -189,0 -190,0 -191,0 -192,0 -193,0 -194,0 -195,0 -196,0 -197,0 -198,0 -199,0 -200,0 -201,0 -202,0 -203,0 -204,0 -205,0 -206,0 -207,0 -208,0.4345128676470588 -209,0.9796109068627451 -210,0.9952971813725491 -211,0.9913756127450981 -212,0.7600030637254902 -213,0 -214,0 -215,0 -216,0 -217,0 -218,0 -219,0 -220,0 -221,0 -222,0 -223,0 -224,0 -225,0 -226,0 -227,0 -228,0 -229,0 -230,0 -231,0 -232,0 -233,0 -234,0 -235,0.09725796568627451 -236,0.9325520833333334 -237,0.9913756127450981 -238,0.9952971813725491 -239,0.9913756127450981 -240,0.9011795343137255 -241,0.04627757352941177 -242,0 -243,0 -244,0 -245,0 -246,0 -247,0 -248,0 -249,0 -250,0 -251,0 -252,0 -253,0 -254,0 -255,0 -256,0 -257,0 -258,0 -259,0 -260,0 -261,0 -262,0 -263,0.5756893382352941 -264,0.9952971813725491 -265,0.9952971813725491 -266,0.4815716911764706 -267,0.9952971813725491 -268,0.9051011029411765 -269,0.04627757352941177 -270,0 -271,0 -272,0 -273,0 -274,0 -275,0 -276,0 -277,0 -278,0 -279,0 -280,0 -281,0 -282,0 -283,0 -284,0 -285,0 -286,0 -287,0 -288,0 -289,0 -290,0.3207873774509804 -291,0.8698069852941177 -292,0.9913756127450981 -293,0.5639246323529412 -294,0.24235600490196077 -295,0.9913756127450981 -296,0.7600030637254902 -297,0 -298,0 -299,0 -300,0 -301,0 -302,0 -303,0 -304,0 -305,0 -306,0 -307,0 -308,0 -309,0 -310,0 -311,0 -312,0 -313,0 -314,0 -315,0 -316,0 -317,0 -318,0.5913756127450981 -319,0.9913756127450981 -320,0.9364736519607844 -321,0.05804227941176471 -322,0.07765012254901961 -323,0.9913756127450981 -324,0.8854932598039216 -325,0.042356004901960786 -326,0 -327,0 -328,0 -329,0 -330,0 -331,0 -332,0 -333,0 -334,0 -335,0 -336,0 -337,0 -338,0 -339,0 -340,0 -341,0 -342,0 -343,0 -344,0 -345,0 -346,0.8776501225490196 -347,0.9913756127450981 -348,0.5717677696078431 -349,0 -350,0.07765012254901961 -351,0.9913756127450981 -352,0.7796109068627451 -353,0.007061887254901961 -354,0 -355,0 -356,0 -357,0 -358,0 -359,0 -360,0 -361,0 -362,0 -363,0 -364,0 -365,0 -366,0 -367,0 -368,0 -369,0 -370,0 -371,0 -372,0 -373,0.3325520833333333 -374,0.99921875 -375,0.9364736519607844 -376,0.09333639705882353 -377,0 -378,0.07765012254901961 -379,0.9952971813725491 -380,0.7639246323529412 -381,0 -382,0 -383,0.038434436274509806 -384,0.07765012254901961 -385,0.3600030637254902 -386,0.4580422794117647 -387,0.0188265931372549 -388,0 -389,0 -390,0 -391,0 -392,0 -393,0 -394,0 -395,0 -396,0 -397,0 -398,0 -399,0 -400,0 -401,0.6580422794117647 -402,0.9952971813725491 -403,0.8384344362745099 -404,0 -405,0 -406,0.07765012254901961 -407,0.9913756127450981 -408,0.795297181372549 -409,0.1560814950980392 -410,0.36784620098039217 -411,0.7992187500000001 -412,0.9913756127450981 -413,0.9913756127450981 -414,0.9952971813725491 -415,0.22666973039215685 -416,0 -417,0 -418,0 -419,0 -420,0 -421,0 -422,0 -423,0 -424,0 -425,0 -426,0 -427,0 -428,0 -429,0.9168658088235294 -430,0.9952971813725491 -431,0.5756893382352941 -432,0 -433,0 -434,0.38745404411764706 -435,0.9913756127450981 -436,0.9913756127450981 -437,0.9913756127450981 -438,0.9952971813725491 -439,0.9913756127450981 -440,0.9913756127450981 -441,0.9207873774509804 -442,0.6227481617647059 -443,0.034512867647058826 -444,0 -445,0 -446,0 -447,0 -448,0 -449,0 -450,0 -451,0 -452,0 -453,0 -454,0 -455,0 -456,0.07372855392156863 -457,0.9403952205882353 -458,0.9952971813725491 -459,0.9560814950980393 -460,0.9168658088235294 -461,0.9168658088235294 -462,0.9952971813725491 -463,0.9913756127450981 -464,0.9913756127450981 -465,0.9913756127450981 -466,0.9952971813725491 -467,0.8501991421568628 -468,0.2619638480392157 -469,0.05019914215686275 -470,0 -471,0 -472,0 -473,0 -474,0 -475,0 -476,0 -477,0 -478,0 -479,0 -480,0 -481,0 -482,0 -483,0 -484,0 -485,0.8972579656862746 -486,0.99921875 -487,0.9952971813725491 -488,0.9952971813725491 -489,0.9952971813725491 -490,0.99921875 -491,0.9952971813725491 -492,0.9952971813725491 -493,0.6384344362745098 -494,0.19137561274509804 -495,0 -496,0 -497,0 -498,0 -499,0 -500,0 -501,0 -502,0 -503,0 -504,0 -505,0 -506,0 -507,0 -508,0 -509,0 -510,0 -511,0 -512,0 -513,0.14039522058823528 -514,0.5325520833333334 -515,0.5325520833333334 -516,0.27372855392156864 -517,0.22666973039215685 -518,0.4776501225490196 -519,0.9913756127450981 -520,0.9913756127450981 -521,0.07372855392156863 -522,0 -523,0 -524,0 -525,0 -526,0 -527,0 -528,0 -529,0 -530,0 -531,0 -532,0 -533,0 -534,0 -535,0 -536,0 -537,0 -538,0 -539,0 -540,0 -541,0 -542,0 -543,0 -544,0 -545,0 -546,0.07765012254901961 -547,0.9913756127450981 -548,0.9913756127450981 -549,0.07372855392156863 -550,0 -551,0 -552,0 -553,0 -554,0 -555,0 -556,0 -557,0 -558,0 -559,0 -560,0 -561,0 -562,0 -563,0 -564,0 -565,0 -566,0 -567,0 -568,0 -569,0 -570,0 -571,0 -572,0 -573,0 -574,0.07765012254901961 -575,0.9913756127450981 -576,0.9913756127450981 -577,0.07372855392156863 -578,0 -579,0 -580,0 -581,0 -582,0 -583,0 -584,0 -585,0 -586,0 -587,0 -588,0 -589,0 -590,0 -591,0 -592,0 -593,0 -594,0 -595,0 -596,0 -597,0 -598,0 -599,0 -600,0 -601,0 -602,0.07765012254901961 -603,0.9952971813725491 -604,0.9952971813725491 -605,0.07372855392156863 -606,0 -607,0 -608,0 -609,0 -610,0 -611,0 -612,0 -613,0 -614,0 -615,0 -616,0 -617,0 -618,0 -619,0 -620,0 -621,0 -622,0 -623,0 -624,0 -625,0 -626,0 -627,0 -628,0 -629,0 -630,0.07765012254901961 -631,0.9913756127450981 -632,0.9560814950980393 -633,0.06196384803921569 -634,0 -635,0 -636,0 -637,0 -638,0 -639,0 -640,0 -641,0 -642,0 -643,0 -644,0 -645,0 -646,0 -647,0 -648,0 -649,0 -650,0 -651,0 -652,0 -653,0 -654,0 -655,0 -656,0 -657,0 -658,0.07765012254901961 -659,0.9913756127450981 -660,0.7600030637254902 -661,0 -662,0 -663,0 -664,0 -665,0 -666,0 -667,0 -668,0 -669,0 -670,0 -671,0 -672,0 -673,0 -674,0 -675,0 -676,0 -677,0 -678,0 -679,0 -680,0 -681,0 -682,0 -683,0 -684,0 -685,0 -686,0.07765012254901961 -687,0.9913756127450981 -688,0.4815716911764706 -689,0 -690,0 -691,0 -692,0 -693,0 -694,0.19137561274509804 -695,0 -696,0 -697,0 -698,0 -699,0 -700,0 -701,0 -702,0 -703,0 -704,0 -705,0 -706,0 -707,0 -708,0 -709,0 -710,0 -711,0 -712,0 -713,0 -714,0 -715,0 -716,0 -717,0 -718,0 -719,0 -720,0 -721,0 -722,0 -723,0 -724,0 -725,0 -726,0 -727,0 -728,0 -729,0 -730,0 -731,0 -732,0 -733,0 -734,0 -735,0 -736,0 -737,0 -738,0 -739,0 -740,0 -741,0 -742,0 -743,0 -744,0 -745,0 -746,0 -747,0 -748,0 -749,0 -750,0 -751,0 -752,0 -753,0 -754,0 -755,0 -756,0 -757,0 -758,0 -759,0 -760,0 -761,0 -762,0 -763,0 -764,0 -765,0 -766,0 -767,0 -768,0 -769,0 -770,0 -771,0 -772,0 -773,0 -774,0 -775,0 -776,0 -777,0 -778,0 -779,0 -780,0 -781,0 -782,0 -783,0 -1678,-1.0000000000 -1679,-1.0000000000 -1680,-1.0000000000 -1681,-1.0000000000 -1682,-1.0000000000 -1683,-1.0000000000 -1684,-1.0000000000 -1685,-1.0000000000 -1686,-1.0000000000 -1687,-1.0000000000 -1688,-1.0000000000 -1689,-1.0000000000 -1690,-1.0000000000 -1691,-1.0000000000 -1692,-1.0000000000 -1693,-1.0000000000 -1694,-1.0000000000 -1695,-1.0000000000 -1696,-1.0000000000 -1697,-1.0000000000 -1698,-1.0000000000 -1699,-1.0000000000 -1700,-1.0000000000 -1701,-1.0000000000 -1702,-1.0000000000 -1703,-1.0000000000 -1704,-1.0000000000 -1705,-1.0000000000 -1706,-1.0000000000 -1707,-1.0000000000 -1708,-1.0000000000 -1709,-1.0000000000 -1710,-1.0000000000 -1711,-1.0000000000 -1712,-1.0000000000 -1713,-1.0000000000 -1714,-1.0000000000 -1715,-1.0000000000 -1716,-1.0000000000 -1717,-1.0000000000 -1718,-1.0000000000 -1719,-1.0000000000 -1720,-1.0000000000 -1721,-1.0000000000 -1722,-1.0000000000 -1723,-1.0000000000 -1724,-1.0000000000 -1725,-1.0000000000 -1726,-1.0000000000 -1727,-1.0000000000 -1928,-1.0000000000 -1929,-1.0000000000 -1930,-1.0000000000 -1931,-1.0000000000 -1932,-1.0000000000 -1933,-1.0000000000 -1934,-1.0000000000 -1935,-1.0000000000 -1936,-1.0000000000 -1937,-1.0000000000 -1938,-1.0000000000 -1939,-1.0000000000 -1940,-1.0000000000 -1941,-1.0000000000 -1942,-1.0000000000 -1943,-1.0000000000 -1944,-1.0000000000 -1945,-1.0000000000 -1946,-1.0000000000 -1947,-1.0000000000 -1948,-1.0000000000 -1949,-1.0000000000 -1950,-1.0000000000 -1951,-1.0000000000 -1952,-1.0000000000 -1953,-1.0000000000 -1954,-1.0000000000 -1955,-1.0000000000 -1956,-1.0000000000 -1957,-1.0000000000 -1958,-1.0000000000 -1959,-1.0000000000 -1960,-1.0000000000 -1961,-1.0000000000 -1962,-1.0000000000 -1963,-1.0000000000 -1964,-1.0000000000 -1965,-1.0000000000 -1966,-1.0000000000 -1967,-1.0000000000 -1968,-1.0000000000 -1969,-1.0000000000 -1970,-1.0000000000 -1971,-1.0000000000 -1972,-1.0000000000 -1973,-1.0000000000 -1974,-1.0000000000 -1975,-1.0000000000 -1976,-1.0000000000 -1977,-1.0000000000 -2178,-1.0000000000 -2179,-1.0000000000 -2180,-1.0000000000 -2181,-1.0000000000 -2182,-1.0000000000 -2183,-1.0000000000 -2184,-1.0000000000 -2185,-1.0000000000 -2186,-1.0000000000 -2187,-1.0000000000 -2188,-1.0000000000 -2189,-1.0000000000 -2190,-1.0000000000 -2191,-1.0000000000 -2192,-1.0000000000 -2193,-1.0000000000 -2194,-1.0000000000 -2195,-1.0000000000 -2196,-1.0000000000 -2197,-1.0000000000 -2198,-1.0000000000 -2199,-1.0000000000 -2200,-1.0000000000 -2201,-1.0000000000 -2202,-1.0000000000 -2203,-1.0000000000 -2204,-1.0000000000 -2205,-1.0000000000 -2206,-1.0000000000 -2207,-1.0000000000 -2208,-1.0000000000 -2209,-1.0000000000 -2210,-1.0000000000 -2211,-1.0000000000 -2212,-1.0000000000 -2213,-1.0000000000 -2214,-1.0000000000 -2215,-1.0000000000 -2216,-1.0000000000 -2217,-1.0000000000 -2218,-1.0000000000 -2219,-1.0000000000 -2220,-1.0000000000 -2221,-1.0000000000 -2222,-1.0000000000 -2223,-1.0000000000 -2224,-1.0000000000 -2225,-1.0000000000 -2226,-1.0000000000 -2227,-1.0000000000 -2428,-1.0000000000 -2429,-1.0000000000 -2430,-1.0000000000 -2431,-1.0000000000 -2432,-1.0000000000 -2433,-1.0000000000 -2434,-1.0000000000 -2435,-1.0000000000 -2436,-1.0000000000 -2437,-1.0000000000 -2438,-1.0000000000 -2439,-1.0000000000 -2440,-1.0000000000 -2441,-1.0000000000 -2442,-1.0000000000 -2443,-1.0000000000 -2444,-1.0000000000 -2445,-1.0000000000 -2446,-1.0000000000 -2447,-1.0000000000 -2448,-1.0000000000 -2449,-1.0000000000 -2450,-1.0000000000 -2451,-1.0000000000 -2452,-1.0000000000 -2453,-1.0000000000 -2454,-1.0000000000 -2455,-1.0000000000 -2456,-1.0000000000 -2457,-1.0000000000 -2458,-1.0000000000 -2459,-1.0000000000 -2460,-1.0000000000 -2461,-1.0000000000 -2462,-1.0000000000 -2463,-1.0000000000 -2464,-1.0000000000 -2465,-1.0000000000 -2466,-1.0000000000 -2467,-1.0000000000 -2468,-1.0000000000 -2469,-1.0000000000 -2470,-1.0000000000 -2471,-1.0000000000 -2472,-1.0000000000 -2473,-1.0000000000 -2474,-1.0000000000 -2475,-1.0000000000 -2476,-1.0000000000 -2477,-1.0000000000 -2598,-1.0000000000 -2599,-1.0000000000 -2600,-1.0000000000 -2601,-1.0000000000 -2602,-1.0000000000 -2603,-1.0000000000 -2604,-1.0000000000 -2605,-1.0000000000 -2606,-1.0000000000 -2607,-1.0000000000 -2648,-1.0000000000 -2649,-1.0000000000 -2650,-1.0000000000 -2651,-1.0000000000 -2652,-1.0000000000 -2653,-1.0000000000 -2654,-1.0000000000 -2655,-1.0000000000 -2656,-1.0000000000 -2657,-1.0000000000 -0,0.00078125 -1,0.00078125 -2,0.00078125 -3,0.00078125 -4,0.00078125 -5,0.00078125 -6,0.00078125 -7,0.00078125 -8,0.00078125 -9,0.00078125 -10,0.00078125 -11,0.00078125 -12,0.00078125 -13,0.00078125 -14,0.00078125 -15,0.00078125 -16,0.00078125 -17,0.00078125 -18,0.00078125 -19,0.00078125 -20,0.00078125 -21,0.00078125 -22,0.00078125 -23,0.00078125 -24,0.00078125 -25,0.00078125 -26,0.00078125 -27,0.00078125 -28,0.00078125 -29,0.00078125 -30,0.00078125 -31,0.00078125 -32,0.00078125 -33,0.00078125 -34,0.00078125 -35,0.00078125 -36,0.00078125 -37,0.00078125 -38,0.00078125 -39,0.00078125 -40,0.00078125 -41,0.00078125 -42,0.00078125 -43,0.00078125 -44,0.00078125 -45,0.00078125 -46,0.00078125 -47,0.00078125 -48,0.00078125 -49,0.00078125 -50,0.00078125 -51,0.00078125 -52,0.00078125 -53,0.00078125 -54,0.00078125 -55,0.00078125 -56,0.00078125 -57,0.00078125 -58,0.00078125 -59,0.00078125 -60,0.00078125 -61,0.00078125 -62,0.00078125 -63,0.00078125 -64,0.00078125 -65,0.00078125 -66,0.00078125 -67,0.00078125 -68,0.00078125 -69,0.00078125 -70,0.00078125 -71,0.00078125 -72,0.00078125 -73,0.00078125 -74,0.00078125 -75,0.00078125 -76,0.00078125 -77,0.00078125 -78,0.00078125 -79,0.00078125 -80,0.00078125 -81,0.00078125 -82,0.00078125 -83,0.00078125 -84,0.00078125 -85,0.00078125 -86,0.00078125 -87,0.00078125 -88,0.00078125 -89,0.00078125 -90,0.00078125 -91,0.00078125 -92,0.00078125 -93,0.00078125 -94,0.00078125 -95,0.00078125 -96,0.00078125 -97,0.00078125 -98,0.00078125 -99,0.00078125 -100,0.00078125 -101,0.00078125 -102,0.00078125 -103,0.00078125 -104,0.00078125 -105,0.00078125 -106,0.00078125 -107,0.00078125 -108,0.00078125 -109,0.00078125 -110,0.00078125 -111,0.00078125 -112,0.00078125 -113,0.00078125 -114,0.00078125 -115,0.00078125 -116,0.00078125 -117,0.00078125 -118,0.00078125 -119,0.00078125 -120,0.00078125 -121,0.00078125 -122,0.00078125 -123,0.00078125 -124,0.00078125 -125,0.00078125 -126,0.00078125 -127,0.00078125 -128,0.00078125 -129,0.00078125 -130,0.00078125 -131,0.00078125 -132,0.00078125 -133,0.00078125 -134,0.00078125 -135,0.00078125 -136,0.00078125 -137,0.00078125 -138,0.00078125 -139,0.00078125 -140,0.00078125 -141,0.00078125 -142,0.00078125 -143,0.00078125 -144,0.00078125 -145,0.00078125 -146,0.00078125 -147,0.00078125 -148,0.00078125 -149,0.00078125 -150,0.00078125 -151,0.00078125 -152,0.00078125 -153,0.028232230392156863 -154,0.8086243872549019 -155,0.804702818627451 -156,0.08313419117647058 -157,0.00078125 -158,0.00078125 -159,0.00078125 -160,0.00078125 -161,0.00078125 -162,0.00078125 -163,0.00078125 -164,0.00078125 -165,0.00078125 -166,0.00078125 -167,0.00078125 -168,0.00078125 -169,0.00078125 -170,0.00078125 -171,0.00078125 -172,0.00078125 -173,0.00078125 -174,0.00078125 -175,0.00078125 -176,0.00078125 -177,0.00078125 -178,0.00078125 -179,0.00078125 -180,0.00078125 -181,0.6831341911764706 -182,0.996859681372549 -183,0.992938112745098 -184,0.6909773284313725 -185,0.00078125 -186,0.00078125 -187,0.00078125 -188,0.00078125 -189,0.00078125 -190,0.00078125 -191,0.00078125 -192,0.00078125 -193,0.00078125 -194,0.00078125 -195,0.00078125 -196,0.00078125 -197,0.00078125 -198,0.00078125 -199,0.00078125 -200,0.00078125 -201,0.00078125 -202,0.00078125 -203,0.00078125 -204,0.00078125 -205,0.00078125 -206,0.00078125 -207,0.00078125 -208,0.43607536764705884 -209,0.981173406862745 -210,0.996859681372549 -211,0.992938112745098 -212,0.7615655637254901 -213,0.00078125 -214,0.00078125 -215,0.00078125 -216,0.00078125 -217,0.00078125 -218,0.00078125 -219,0.00078125 -220,0.00078125 -221,0.00078125 -222,0.00078125 -223,0.00078125 -224,0.00078125 -225,0.00078125 -226,0.00078125 -227,0.00078125 -228,0.00078125 -229,0.00078125 -230,0.00078125 -231,0.00078125 -232,0.00078125 -233,0.00078125 -234,0.00078125 -235,0.0988204656862745 -236,0.9341145833333333 -237,0.992938112745098 -238,0.996859681372549 -239,0.992938112745098 -240,0.9027420343137255 -241,0.04784007352941176 -242,0.00078125 -243,0.00078125 -244,0.00078125 -245,0.00078125 -246,0.00078125 -247,0.00078125 -248,0.00078125 -249,0.00078125 -250,0.00078125 -251,0.00078125 -252,0.00078125 -253,0.00078125 -254,0.00078125 -255,0.00078125 -256,0.00078125 -257,0.00078125 -258,0.00078125 -259,0.00078125 -260,0.00078125 -261,0.00078125 -262,0.00078125 -263,0.577251838235294 -264,0.996859681372549 -265,0.996859681372549 -266,0.4831341911764706 -267,0.996859681372549 -268,0.9066636029411764 -269,0.04784007352941176 -270,0.00078125 -271,0.00078125 -272,0.00078125 -273,0.00078125 -274,0.00078125 -275,0.00078125 -276,0.00078125 -277,0.00078125 -278,0.00078125 -279,0.00078125 -280,0.00078125 -281,0.00078125 -282,0.00078125 -283,0.00078125 -284,0.00078125 -285,0.00078125 -286,0.00078125 -287,0.00078125 -288,0.00078125 -289,0.00078125 -290,0.3223498774509804 -291,0.8713694852941176 -292,0.992938112745098 -293,0.5654871323529411 -294,0.2439185049019608 -295,0.992938112745098 -296,0.7615655637254901 -297,0.00078125 -298,0.00078125 -299,0.00078125 -300,0.00078125 -301,0.00078125 -302,0.00078125 -303,0.00078125 -304,0.00078125 -305,0.00078125 -306,0.00078125 -307,0.00078125 -308,0.00078125 -309,0.00078125 -310,0.00078125 -311,0.00078125 -312,0.00078125 -313,0.00078125 -314,0.00078125 -315,0.00078125 -316,0.00078125 -317,0.00078125 -318,0.592938112745098 -319,0.992938112745098 -320,0.9380361519607843 -321,0.0596047794117647 -322,0.0792126225490196 -323,0.992938112745098 -324,0.8870557598039215 -325,0.04391850490196078 -326,0.00078125 -327,0.00078125 -328,0.00078125 -329,0.00078125 -330,0.00078125 -331,0.00078125 -332,0.00078125 -333,0.00078125 -334,0.00078125 -335,0.00078125 -336,0.00078125 -337,0.00078125 -338,0.00078125 -339,0.00078125 -340,0.00078125 -341,0.00078125 -342,0.00078125 -343,0.00078125 -344,0.00078125 -345,0.00078125 -346,0.8792126225490196 -347,0.992938112745098 -348,0.5733302696078431 -349,0.00078125 -350,0.0792126225490196 -351,0.992938112745098 -352,0.7811734068627451 -353,0.008624387254901961 -354,0.00078125 -355,0.00078125 -356,0.00078125 -357,0.00078125 -358,0.00078125 -359,0.00078125 -360,0.00078125 -361,0.00078125 -362,0.00078125 -363,0.00078125 -364,0.00078125 -365,0.00078125 -366,0.00078125 -367,0.00078125 -368,0.00078125 -369,0.00078125 -370,0.00078125 -371,0.00078125 -372,0.00078125 -373,0.3341145833333333 -374,1 -375,0.9380361519607843 -376,0.09489889705882353 -377,0.00078125 -378,0.0792126225490196 -379,0.996859681372549 -380,0.7654871323529411 -381,0.00078125 -382,0.00078125 -383,0.0399969362745098 -384,0.0792126225490196 -385,0.3615655637254902 -386,0.4596047794117647 -387,0.020389093137254902 -388,0.00078125 -389,0.00078125 -390,0.00078125 -391,0.00078125 -392,0.00078125 -393,0.00078125 -394,0.00078125 -395,0.00078125 -396,0.00078125 -397,0.00078125 -398,0.00078125 -399,0.00078125 -400,0.00078125 -401,0.6596047794117647 -402,0.996859681372549 -403,0.8399969362745098 -404,0.00078125 -405,0.00078125 -406,0.0792126225490196 -407,0.992938112745098 -408,0.7968596813725489 -409,0.15764399509803922 -410,0.3694087009803922 -411,0.80078125 -412,0.992938112745098 -413,0.992938112745098 -414,0.996859681372549 -415,0.22823223039215687 -416,0.00078125 -417,0.00078125 -418,0.00078125 -419,0.00078125 -420,0.00078125 -421,0.00078125 -422,0.00078125 -423,0.00078125 -424,0.00078125 -425,0.00078125 -426,0.00078125 -427,0.00078125 -428,0.00078125 -429,0.9184283088235293 -430,0.996859681372549 -431,0.577251838235294 -432,0.00078125 -433,0.00078125 -434,0.3890165441176471 -435,0.992938112745098 -436,0.992938112745098 -437,0.992938112745098 -438,0.996859681372549 -439,0.992938112745098 -440,0.992938112745098 -441,0.9223498774509803 -442,0.6243106617647058 -443,0.03607536764705882 -444,0.00078125 -445,0.00078125 -446,0.00078125 -447,0.00078125 -448,0.00078125 -449,0.00078125 -450,0.00078125 -451,0.00078125 -452,0.00078125 -453,0.00078125 -454,0.00078125 -455,0.00078125 -456,0.07529105392156862 -457,0.9419577205882352 -458,0.996859681372549 -459,0.9576439950980392 -460,0.9184283088235293 -461,0.9184283088235293 -462,0.996859681372549 -463,0.992938112745098 -464,0.992938112745098 -465,0.992938112745098 -466,0.996859681372549 -467,0.8517616421568627 -468,0.2635263480392157 -469,0.05176164215686274 -470,0.00078125 -471,0.00078125 -472,0.00078125 -473,0.00078125 -474,0.00078125 -475,0.00078125 -476,0.00078125 -477,0.00078125 -478,0.00078125 -479,0.00078125 -480,0.00078125 -481,0.00078125 -482,0.00078125 -483,0.00078125 -484,0.00078125 -485,0.8988204656862745 -486,1 -487,0.996859681372549 -488,0.996859681372549 -489,0.996859681372549 -490,1 -491,0.996859681372549 -492,0.996859681372549 -493,0.6399969362745097 -494,0.19293811274509806 -495,0.00078125 -496,0.00078125 -497,0.00078125 -498,0.00078125 -499,0.00078125 -500,0.00078125 -501,0.00078125 -502,0.00078125 -503,0.00078125 -504,0.00078125 -505,0.00078125 -506,0.00078125 -507,0.00078125 -508,0.00078125 -509,0.00078125 -510,0.00078125 -511,0.00078125 -512,0.00078125 -513,0.1419577205882353 -514,0.5341145833333333 -515,0.5341145833333333 -516,0.27529105392156866 -517,0.22823223039215687 -518,0.47921262254901964 -519,0.992938112745098 -520,0.992938112745098 -521,0.07529105392156862 -522,0.00078125 -523,0.00078125 -524,0.00078125 -525,0.00078125 -526,0.00078125 -527,0.00078125 -528,0.00078125 -529,0.00078125 -530,0.00078125 -531,0.00078125 -532,0.00078125 -533,0.00078125 -534,0.00078125 -535,0.00078125 -536,0.00078125 -537,0.00078125 -538,0.00078125 -539,0.00078125 -540,0.00078125 -541,0.00078125 -542,0.00078125 -543,0.00078125 -544,0.00078125 -545,0.00078125 -546,0.0792126225490196 -547,0.992938112745098 -548,0.992938112745098 -549,0.07529105392156862 -550,0.00078125 -551,0.00078125 -552,0.00078125 -553,0.00078125 -554,0.00078125 -555,0.00078125 -556,0.00078125 -557,0.00078125 -558,0.00078125 -559,0.00078125 -560,0.00078125 -561,0.00078125 -562,0.00078125 -563,0.00078125 -564,0.00078125 -565,0.00078125 -566,0.00078125 -567,0.00078125 -568,0.00078125 -569,0.00078125 -570,0.00078125 -571,0.00078125 -572,0.00078125 -573,0.00078125 -574,0.0792126225490196 -575,0.992938112745098 -576,0.992938112745098 -577,0.07529105392156862 -578,0.00078125 -579,0.00078125 -580,0.00078125 -581,0.00078125 -582,0.00078125 -583,0.00078125 -584,0.00078125 -585,0.00078125 -586,0.00078125 -587,0.00078125 -588,0.00078125 -589,0.00078125 -590,0.00078125 -591,0.00078125 -592,0.00078125 -593,0.00078125 -594,0.00078125 -595,0.00078125 -596,0.00078125 -597,0.00078125 -598,0.00078125 -599,0.00078125 -600,0.00078125 -601,0.00078125 -602,0.0792126225490196 -603,0.996859681372549 -604,0.996859681372549 -605,0.07529105392156862 -606,0.00078125 -607,0.00078125 -608,0.00078125 -609,0.00078125 -610,0.00078125 -611,0.00078125 -612,0.00078125 -613,0.00078125 -614,0.00078125 -615,0.00078125 -616,0.00078125 -617,0.00078125 -618,0.00078125 -619,0.00078125 -620,0.00078125 -621,0.00078125 -622,0.00078125 -623,0.00078125 -624,0.00078125 -625,0.00078125 -626,0.00078125 -627,0.00078125 -628,0.00078125 -629,0.00078125 -630,0.0792126225490196 -631,0.992938112745098 -632,0.9576439950980392 -633,0.06352634803921568 -634,0.00078125 -635,0.00078125 -636,0.00078125 -637,0.00078125 -638,0.00078125 -639,0.00078125 -640,0.00078125 -641,0.00078125 -642,0.00078125 -643,0.00078125 -644,0.00078125 -645,0.00078125 -646,0.00078125 -647,0.00078125 -648,0.00078125 -649,0.00078125 -650,0.00078125 -651,0.00078125 -652,0.00078125 -653,0.00078125 -654,0.00078125 -655,0.00078125 -656,0.00078125 -657,0.00078125 -658,0.0792126225490196 -659,0.992938112745098 -660,0.7615655637254901 -661,0.00078125 -662,0.00078125 -663,0.00078125 -664,0.00078125 -665,0.00078125 -666,0.00078125 -667,0.00078125 -668,0.00078125 -669,0.00078125 -670,0.00078125 -671,0.00078125 -672,0.00078125 -673,0.00078125 -674,0.00078125 -675,0.00078125 -676,0.00078125 -677,0.00078125 -678,0.00078125 -679,0.00078125 -680,0.00078125 -681,0.00078125 -682,0.00078125 -683,0.00078125 -684,0.00078125 -685,0.00078125 -686,0.0792126225490196 -687,0.992938112745098 -688,0.4831341911764706 -689,0.00078125 -690,0.00078125 -691,0.00078125 -692,0.00078125 -693,0.00078125 -694,0.19293811274509806 -695,0.00078125 -696,0.00078125 -697,0.00078125 -698,0.00078125 -699,0.00078125 -700,0.00078125 -701,0.00078125 -702,0.00078125 -703,0.00078125 -704,0.00078125 -705,0.00078125 -706,0.00078125 -707,0.00078125 -708,0.00078125 -709,0.00078125 -710,0.00078125 -711,0.00078125 -712,0.00078125 -713,0.00078125 -714,0.00078125 -715,0.00078125 -716,0.00078125 -717,0.00078125 -718,0.00078125 -719,0.00078125 -720,0.00078125 -721,0.00078125 -722,0.00078125 -723,0.00078125 -724,0.00078125 -725,0.00078125 -726,0.00078125 -727,0.00078125 -728,0.00078125 -729,0.00078125 -730,0.00078125 -731,0.00078125 -732,0.00078125 -733,0.00078125 -734,0.00078125 -735,0.00078125 -736,0.00078125 -737,0.00078125 -738,0.00078125 -739,0.00078125 -740,0.00078125 -741,0.00078125 -742,0.00078125 -743,0.00078125 -744,0.00078125 -745,0.00078125 -746,0.00078125 -747,0.00078125 -748,0.00078125 -749,0.00078125 -750,0.00078125 -751,0.00078125 -752,0.00078125 -753,0.00078125 -754,0.00078125 -755,0.00078125 -756,0.00078125 -757,0.00078125 -758,0.00078125 -759,0.00078125 -760,0.00078125 -761,0.00078125 -762,0.00078125 -763,0.00078125 -764,0.00078125 -765,0.00078125 -766,0.00078125 -767,0.00078125 -768,0.00078125 -769,0.00078125 -770,0.00078125 -771,0.00078125 -772,0.00078125 -773,0.00078125 -774,0.00078125 -775,0.00078125 -776,0.00078125 -777,0.00078125 -778,0.00078125 -779,0.00078125 -780,0.00078125 -781,0.00078125 -782,0.00078125 -783,0.00078125 -1678,1.0000000000 -1679,1.0000000000 -1680,1.0000000000 -1681,1.0000000000 -1682,1.0000000000 -1683,1.0000000000 -1684,1.0000000000 -1685,1.0000000000 -1686,1.0000000000 -1687,1.0000000000 -1688,1.0000000000 -1689,1.0000000000 -1690,1.0000000000 -1691,1.0000000000 -1692,1.0000000000 -1693,1.0000000000 -1694,1.0000000000 -1695,1.0000000000 -1696,1.0000000000 -1697,1.0000000000 -1698,1.0000000000 -1699,1.0000000000 -1700,1.0000000000 -1701,1.0000000000 -1702,1.0000000000 -1703,1.0000000000 -1704,1.0000000000 -1705,1.0000000000 -1706,1.0000000000 -1707,1.0000000000 -1708,1.0000000000 -1709,1.0000000000 -1710,1.0000000000 -1711,1.0000000000 -1712,1.0000000000 -1713,1.0000000000 -1714,1.0000000000 -1715,1.0000000000 -1716,1.0000000000 -1717,1.0000000000 -1718,1.0000000000 -1719,1.0000000000 -1720,1.0000000000 -1721,1.0000000000 -1722,1.0000000000 -1723,1.0000000000 -1724,1.0000000000 -1725,1.0000000000 -1726,1.0000000000 -1727,1.0000000000 -1928,1.0000000000 -1929,1.0000000000 -1930,1.0000000000 -1931,1.0000000000 -1932,1.0000000000 -1933,1.0000000000 -1934,1.0000000000 -1935,1.0000000000 -1936,1.0000000000 -1937,1.0000000000 -1938,1.0000000000 -1939,1.0000000000 -1940,1.0000000000 -1941,1.0000000000 -1942,1.0000000000 -1943,1.0000000000 -1944,1.0000000000 -1945,1.0000000000 -1946,1.0000000000 -1947,1.0000000000 -1948,1.0000000000 -1949,1.0000000000 -1950,1.0000000000 -1951,1.0000000000 -1952,1.0000000000 -1953,1.0000000000 -1954,1.0000000000 -1955,1.0000000000 -1956,1.0000000000 -1957,1.0000000000 -1958,1.0000000000 -1959,1.0000000000 -1960,1.0000000000 -1961,1.0000000000 -1962,1.0000000000 -1963,1.0000000000 -1964,1.0000000000 -1965,1.0000000000 -1966,1.0000000000 -1967,1.0000000000 -1968,1.0000000000 -1969,1.0000000000 -1970,1.0000000000 -1971,1.0000000000 -1972,1.0000000000 -1973,1.0000000000 -1974,1.0000000000 -1975,1.0000000000 -1976,1.0000000000 -1977,1.0000000000 -2178,1.0000000000 -2179,1.0000000000 -2180,1.0000000000 -2181,1.0000000000 -2182,1.0000000000 -2183,1.0000000000 -2184,1.0000000000 -2185,1.0000000000 -2186,1.0000000000 -2187,1.0000000000 -2188,1.0000000000 -2189,1.0000000000 -2190,1.0000000000 -2191,1.0000000000 -2192,1.0000000000 -2193,1.0000000000 -2194,1.0000000000 -2195,1.0000000000 -2196,1.0000000000 -2197,1.0000000000 -2198,1.0000000000 -2199,1.0000000000 -2200,1.0000000000 -2201,1.0000000000 -2202,1.0000000000 -2203,1.0000000000 -2204,1.0000000000 -2205,1.0000000000 -2206,1.0000000000 -2207,1.0000000000 -2208,1.0000000000 -2209,1.0000000000 -2210,1.0000000000 -2211,1.0000000000 -2212,1.0000000000 -2213,1.0000000000 -2214,1.0000000000 -2215,1.0000000000 -2216,1.0000000000 -2217,1.0000000000 -2218,1.0000000000 -2219,1.0000000000 -2220,1.0000000000 -2221,1.0000000000 -2222,1.0000000000 -2223,1.0000000000 -2224,1.0000000000 -2225,1.0000000000 -2226,1.0000000000 -2227,1.0000000000 -2428,1.0000000000 -2429,1.0000000000 -2430,1.0000000000 -2431,1.0000000000 -2432,1.0000000000 -2433,1.0000000000 -2434,1.0000000000 -2435,1.0000000000 -2436,1.0000000000 -2437,1.0000000000 -2438,1.0000000000 -2439,1.0000000000 -2440,1.0000000000 -2441,1.0000000000 -2442,1.0000000000 -2443,1.0000000000 -2444,1.0000000000 -2445,1.0000000000 -2446,1.0000000000 -2447,1.0000000000 -2448,1.0000000000 -2449,1.0000000000 -2450,1.0000000000 -2451,1.0000000000 -2452,1.0000000000 -2453,1.0000000000 -2454,1.0000000000 -2455,1.0000000000 -2456,1.0000000000 -2457,1.0000000000 -2458,1.0000000000 -2459,1.0000000000 -2460,1.0000000000 -2461,1.0000000000 -2462,1.0000000000 -2463,1.0000000000 -2464,1.0000000000 -2465,1.0000000000 -2466,1.0000000000 -2467,1.0000000000 -2468,1.0000000000 -2469,1.0000000000 -2470,1.0000000000 -2471,1.0000000000 -2472,1.0000000000 -2473,1.0000000000 -2474,1.0000000000 -2475,1.0000000000 -2476,1.0000000000 -2477,1.0000000000 -2598,1.0000000000 -2599,1.0000000000 -2600,1.0000000000 -2601,1.0000000000 -2602,1.0000000000 -2603,1.0000000000 -2604,1.0000000000 -2605,1.0000000000 -2606,1.0000000000 -2607,1.0000000000 -2648,1.0000000000 -2649,1.0000000000 -2650,1.0000000000 -2651,1.0000000000 -2652,1.0000000000 -2653,1.0000000000 -2654,1.0000000000 -2655,1.0000000000 -2656,1.0000000000 -2657,1.0000000000 -0,0,0.0002079358,0,31.6227760315,794,-1.0000000000 -1,0,-0.0002583992,1,31.6227760315,795,-1.0000000000 -2,0,-0.0003494073,2,31.6227760315,796,-1.0000000000 -3,0,0.0003390284,3,31.6227760315,797,-1.0000000000 -4,0,-0.0003349786,4,31.6227760315,798,-1.0000000000 -5,0,0.0001279500,5,31.6227760315,799,-1.0000000000 -6,0,0.0001763496,6,31.6227760315,800,-1.0000000000 -7,0,-0.0001354526,7,31.6227760315,801,-1.0000000000 -8,0,0.0003771311,8,31.6227760315,802,-1.0000000000 -9,0,0.0003647278,9,31.6227760315,803,-1.0000000000 -10,0,-0.0002333800,10,31.6227760315,804,-1.0000000000 -11,0,-0.0000413705,11,31.6227760315,805,-1.0000000000 -12,0,0.0000488727,12,31.6227760315,806,-1.0000000000 -13,0,-0.0002826663,13,31.6227760315,807,-1.0000000000 -14,0,0.0006292058,14,31.6227760315,808,-1.0000000000 -15,0,-0.0001313380,15,31.6227760315,809,-1.0000000000 -16,0,0.0000416177,16,31.6227760315,810,-1.0000000000 -17,0,0.0003893470,17,31.6227760315,811,-1.0000000000 -18,0,-0.0002245790,18,31.6227760315,812,-1.0000000000 -19,0,0.0003470236,19,31.6227760315,813,-1.0000000000 -20,0,0.0003778675,20,31.6227760315,814,-1.0000000000 -21,0,0.0003159090,21,31.6227760315,815,-1.0000000000 -22,0,-0.0004873525,22,31.6227760315,816,-1.0000000000 -23,0,0.0005008946,23,31.6227760315,817,-1.0000000000 -24,0,0.0000937252,24,31.6227760315,818,-1.0000000000 -25,0,0.0003262460,25,31.6227760315,819,-1.0000000000 -26,0,0.0002706744,26,31.6227760315,820,-1.0000000000 -27,0,0.0000455972,27,31.6227760315,821,-1.0000000000 -28,0,0.0002516698,28,31.6227760315,822,-1.0000000000 -29,0,-0.0003327862,29,31.6227760315,823,-1.0000000000 -30,0,-0.0002052352,30,31.6227760315,824,-1.0000000000 -31,0,-0.0001236253,31,31.6227760315,825,-1.0000000000 -32,0,0.0000176382,32,31.6227760315,826,-1.0000000000 -33,0,0.0003008715,33,31.6227760315,827,-1.0000000000 -34,0,0.0006836313,34,31.6220626831,828,-1.0000000000 -35,0,-0.0001673320,35,31.6206951141,829,-1.0000000000 -36,0,0.0000483380,36,31.6100864410,830,-1.0000000000 -37,0,0.0004174529,37,31.5675048828,831,-1.0000000000 -38,0,0.0002150589,38,31.6203975677,832,-1.0000000000 -39,0,0.0002132856,39,31.6220436096,833,-1.0000000000 -40,0,-0.0000718096,40,31.6225090027,834,-1.0000000000 -41,0,0.0172859076,41,28.4602222443,835,-1.0000000000 -42,0,0.0323503427,42,19.9615135193,836,-1.0000000000 -43,0,0.0184166469,43,28.4836978912,837,-1.0000000000 -44,0,0.0017066360,44,30.7574901581,838,-1.0000000000 -45,0,0.0020751858,45,31.0119667053,839,-1.0000000000 -46,0,0.0014388275,46,31.2325229645,840,-1.0000000000 -47,0,0.0054573664,47,29.7056388855,841,-1.0000000000 -48,0,0.0080556581,48,28.2757072449,842,-1.0000000000 -49,0,0.0014539692,49,31.2102050781,843,-1.0000000000 -50,0,0.0007705564,50,31.6227760315,844,-1.0000000000 -51,0,0.0005107099,51,31.6227760315,845,-1.0000000000 -52,0,0.0002250048,52,31.6227760315,846,-1.0000000000 -53,0,-0.0005018546,53,31.6227760315,847,-1.0000000000 -54,0,0.0004192109,54,31.6227760315,848,-1.0000000000 -55,0,0.0000303526,55,31.6227760315,849,-1.0000000000 -56,0,0.0002229478,56,31.6227760315,850,-1.0000000000 -57,0,0.0004961172,57,31.6227760315,851,-1.0000000000 -58,0,0.0006572621,58,31.6227760315,852,-1.0000000000 -59,0,-0.0001420256,59,31.6227760315,853,-1.0000000000 -60,0,0.0006846254,60,31.6227760315,854,-1.0000000000 -61,0,-0.0001651450,61,31.6227741241,855,-1.0000000000 -62,0,0.0004542769,62,31.5634021759,856,-1.0000000000 -63,0,0.0031030406,63,31.1031246185,857,-1.0000000000 -64,0,0.0280330572,64,25.3654117584,858,-1.0000000000 -65,0,0.0385130979,65,19.3904418945,859,-1.0000000000 -66,0,0.0384126604,66,21.4482326508,860,-1.0000000000 -67,0,0.0882032439,67,15.1026964188,861,-1.0000000000 -68,0,0.1183664203,68,9.6312952042,862,-1.0000000000 -69,0,0.1238476709,69,8.9555406570,863,-1.0000000000 -70,0,0.1293599755,70,8.7221813202,864,-1.0000000000 -71,0,0.1229867041,71,10.2591333389,865,-1.0000000000 -72,0,0.1245075017,72,9.6111621857,866,-1.0000000000 -73,0,0.1211254299,73,9.3289775848,867,-1.0000000000 -74,0,0.1249790415,74,11.7950582504,868,-1.0000000000 -75,0,0.1247130036,75,9.8608808517,869,-1.0000000000 -76,0,0.1161369383,76,9.3387050629,870,-1.0000000000 -77,0,0.0982553512,77,11.3408269882,871,-1.0000000000 -78,0,0.0534446128,78,22.4022750854,872,-1.0000000000 -79,0,0.0021463588,79,30.7039184570,873,-1.0000000000 -80,0,0.0000134101,80,31.5947437286,874,-1.0000000000 -81,0,0.0001864402,81,31.6227760315,875,-1.0000000000 -82,0,-0.0004649443,82,31.6227760315,876,-1.0000000000 -83,0,-0.0001222452,83,31.6227760315,877,-1.0000000000 -84,0,-0.0001723979,84,31.6227760315,878,-1.0000000000 -85,0,0.0000698144,85,31.6227760315,879,-1.0000000000 -86,0,-0.0002891293,86,31.6227760315,880,-1.0000000000 -87,0,-0.0000747551,87,31.6227760315,881,-1.0000000000 -88,0,-0.0003064532,88,31.6227760315,882,-1.0000000000 -89,0,-0.0003921269,89,31.6218929291,883,-1.0000000000 -90,0,0.0089464234,90,30.5839347839,884,-1.0000000000 -91,0,0.0684941635,91,15.9870204926,885,-1.0000000000 -92,0,0.0888411775,92,12.1635036469,886,-1.0000000000 -93,0,0.0983949155,93,10.6395206451,887,-1.0000000000 -94,0,0.1431194246,94,8.6441278458,888,-1.0000000000 -95,0,0.1838538200,95,7.2239866257,889,-1.0000000000 -96,0,0.2103057802,96,6.1776309013,890,-1.0000000000 -97,0,0.2509822547,97,5.7684159279,891,-1.0000000000 -98,0,0.2644919157,98,5.0066733360,892,-1.0000000000 -99,0,0.2750744522,99,4.9207816124,893,-1.0000000000 -100,0,0.2888795733,100,4.8772101402,894,-1.0000000000 -101,0,0.2598167956,101,5.0838270187,895,-1.0000000000 -102,0,0.2218356729,102,6.0849299431,896,-1.0000000000 -103,0,0.1860902607,103,6.2116336823,897,-1.0000000000 -104,0,0.1604204327,104,7.4374589920,898,-1.0000000000 -105,0,0.1235561371,105,8.7856378555,899,-1.0000000000 -106,0,0.0918275937,106,17.3154182434,900,-1.0000000000 -107,0,0.0287123173,107,21.9835720062,901,-1.0000000000 -108,0,0.0145352446,108,27.4179573059,902,-1.0000000000 -109,0,0.0012948827,109,31.5514335632,903,-1.0000000000 -110,0,0.0000999159,110,31.6227760315,904,-1.0000000000 -111,0,0.0002175442,111,31.6227760315,905,-1.0000000000 -112,0,0.0002331373,112,31.6227760315,906,-1.0000000000 -113,0,0.0001173035,113,31.6223812103,907,-1.0000000000 -114,0,-0.0003774550,114,31.6227760315,908,-1.0000000000 -115,0,0.0000420564,115,31.6210212708,909,-1.0000000000 -116,0,-0.0008032957,116,31.6226425171,910,-1.0000000000 -117,0,0.0138732493,117,29.9801807404,911,-1.0000000000 -118,0,0.0654990301,118,16.7729282379,912,-1.0000000000 -119,0,0.1190289780,119,9.7614259720,913,-1.0000000000 -120,0,0.1674656868,120,8.2633466721,914,-1.0000000000 -121,0,0.2256945670,121,6.8788871765,915,-1.0000000000 -122,0,0.3065535724,122,4.5844759941,916,-1.0000000000 -123,0,0.3674325645,123,3.8042459488,917,-1.0000000000 -124,0,0.4210087359,124,3.4374401569,918,-1.0000000000 -125,0,0.4700816572,125,3.2917919159,919,-1.0000000000 -126,0,0.5004815459,126,3.0672521591,920,-1.0000000000 -127,0,0.5274384022,127,2.9202229977,921,-1.0000000000 -128,0,0.5072142482,128,2.9477114677,922,-1.0000000000 -129,0,0.4729066789,129,3.1703896523,923,-1.0000000000 -130,0,0.4116190672,130,3.6987824440,924,-1.0000000000 -131,0,0.3370232880,131,4.3520565033,925,-1.0000000000 -132,0,0.2831015885,132,5.0502543449,926,-1.0000000000 -133,0,0.2085866928,133,6.4650530815,927,-1.0000000000 -134,0,0.1565031260,134,8.8168840408,928,-1.0000000000 -135,0,0.1231054738,135,11.4613828659,929,-1.0000000000 -136,0,0.0485384166,136,19.9370212555,930,-1.0000000000 -137,0,0.0126857972,137,29.6892795563,931,-1.0000000000 -138,0,0.0004422957,138,31.6210861206,932,-1.0000000000 -139,0,0.0000184700,139,31.6227760315,933,-1.0000000000 -140,0,0.0001403502,140,31.6227760315,934,-1.0000000000 -141,0,0.0000654595,141,31.6227760315,935,-1.0000000000 -142,0,0.0000607840,142,31.6227760315,936,-1.0000000000 -143,0,-0.0005186090,143,31.6206760406,937,-1.0000000000 -144,0,0.0214564912,144,26.3024940491,938,-1.0000000000 -145,0,0.0900339484,145,14.6895189285,939,-1.0000000000 -146,0,0.1642016321,146,9.0687723160,940,-1.0000000000 -147,0,0.2214516252,147,6.4044857025,941,-1.0000000000 -148,0,0.2872681916,148,4.8680295944,942,-1.0000000000 -149,0,0.3685337305,149,3.8092288971,943,-1.0000000000 -150,0,0.4711169004,150,3.1616506577,944,-1.0000000000 -151,0,0.5671803355,151,2.7714066505,945,-1.0000000000 -152,0,0.6571742296,152,2.5546631813,946,-1.0000000000 -153,0,0.7373042703,153,2.4611840248,947,-1.0000000000 -154,0,0.8158724904,154,2.4277541637,948,-1.0000000000 -155,0,0.8480603099,155,2.3826928139,949,-1.0000000000 -156,0,0.8326759934,156,2.4234437943,950,-1.0000000000 -157,0,0.7751068473,157,2.4501872063,951,-1.0000000000 -158,0,0.6702090502,158,2.6260018349,952,-1.0000000000 -159,0,0.5534479022,159,2.8712155819,953,-1.0000000000 -160,0,0.4441415370,160,3.4023094177,954,-1.0000000000 -161,0,0.3377563059,161,4.1463561058,955,-1.0000000000 -162,0,0.2536413372,162,5.1094250679,956,-1.0000000000 -163,0,0.2015810758,163,6.4431381226,957,-1.0000000000 -164,0,0.1061781123,164,11.9039440155,958,-1.0000000000 -165,0,0.0474606641,165,19.9438781738,959,-1.0000000000 -166,0,0.0081077237,166,30.3990650177,960,-1.0000000000 -167,0,-0.0000006077,167,31.6227760315,961,-1.0000000000 -168,0,0.0000963342,168,31.6227760315,962,-1.0000000000 -169,0,0.0002636870,169,31.6205902100,963,-1.0000000000 -170,0,-0.0003005093,170,31.6178646088,964,-1.0000000000 -171,0,0.0115523944,171,29.6655826569,965,-1.0000000000 -172,0,0.0760080963,172,16.1452503204,966,-1.0000000000 -173,0,0.1558186561,173,8.4764928818,967,-1.0000000000 -174,0,0.2341038138,174,5.7819528580,968,-1.0000000000 -175,0,0.3126183152,175,4.5563411713,969,-1.0000000000 -176,0,0.4008408189,176,3.6441061497,970,-1.0000000000 -177,0,0.5085703731,177,3.0180699825,971,-1.0000000000 -178,0,0.6294556856,178,2.6308863163,972,-1.0000000000 -179,0,0.7481387258,179,2.4874277115,973,-1.0000000000 -180,0,0.8824155331,180,2.3697898388,974,-1.0000000000 -181,0,0.9917500019,181,2.3214147091,975,-1.0000000000 -182,0,1.0729775429,182,2.3268144131,976,-1.0000000000 -183,0,1.1049280167,183,2.3041279316,977,-1.0000000000 -184,0,1.0722656250,184,2.2890098095,978,-1.0000000000 -185,0,0.9774256349,185,2.2437229156,979,-1.0000000000 -186,0,0.8916051388,186,2.3827562332,980,-1.0000000000 -187,0,0.7057592273,187,2.4946858883,981,-1.0000000000 -188,0,0.5681874156,188,2.8479213715,982,-1.0000000000 -189,0,0.4187501967,189,3.4652247429,983,-1.0000000000 -190,0,0.3286397457,190,4.2516651154,984,-1.0000000000 -191,0,0.2453264892,191,5.6235122681,985,-1.0000000000 -192,0,0.1493728757,192,9.1089239120,986,-1.0000000000 -193,0,0.1055997238,193,12.5630216599,987,-1.0000000000 -194,0,0.0577709414,194,17.1816596985,988,-1.0000000000 -195,0,0.0001650765,195,31.6227550507,989,-1.0000000000 -196,0,0.0001360730,196,31.6227760315,990,-1.0000000000 -197,0,0.0286665205,197,25.7242279053,991,-1.0000000000 -198,0,0.0185648240,198,29.1938343048,992,-1.0000000000 -199,0,0.0463312007,199,17.7456054688,993,-1.0000000000 -200,0,0.1100403145,200,11.7338247299,994,-1.0000000000 -201,0,0.1908266991,201,6.9581613541,995,-1.0000000000 -202,0,0.3026175797,202,4.6381225586,996,-1.0000000000 -203,0,0.3958640099,203,3.6027181149,997,-1.0000000000 -204,0,0.4933891296,204,3.0626730919,998,-1.0000000000 -205,0,0.6277903318,205,2.6963646412,999,-1.0000000000 -206,0,0.7647606730,206,2.4716770649,1000,-1.0000000000 -207,0,0.8989660740,207,2.4109206200,1001,-1.0000000000 -208,0,1.0284951925,208,2.3586513996,1002,-1.0000000000 -209,0,1.0996196270,209,2.3010489941,1003,-1.0000000000 -210,0,1.1790245771,210,2.3166940212,1004,-1.0000000000 -211,0,1.2310339212,211,2.3528943062,1005,-1.0000000000 -212,0,1.2175028324,212,2.3542003632,1006,-1.0000000000 -213,0,1.1302845478,213,2.3178131580,1007,-1.0000000000 -214,0,1.0352075100,214,2.3592703342,1008,-1.0000000000 -215,0,0.8394643068,215,2.3962028027,1009,-1.0000000000 -216,0,0.6509366035,216,2.7720828056,1010,-1.0000000000 -217,0,0.4646136165,217,3.1780204773,1011,-1.0000000000 -218,0,0.3690448403,218,3.7357251644,1012,-1.0000000000 -219,0,0.2772509754,219,4.9801034927,1013,-1.0000000000 -220,0,0.1976015866,220,6.7223825455,1014,-1.0000000000 -221,0,0.1370779425,221,9.2390718460,1015,-1.0000000000 -222,0,0.0497566685,222,18.3531360626,1016,-1.0000000000 -223,0,-0.0003765492,223,31.6227493286,1017,-1.0000000000 -224,0,-0.0000978563,224,31.6227760315,1018,-1.0000000000 -225,0,0.0055302819,225,29.4070453644,1019,-1.0000000000 -226,0,0.0239453297,226,26.8379230499,1020,-1.0000000000 -227,0,0.0624308847,227,17.4192199707,1021,-1.0000000000 -228,0,0.1402922124,228,9.4714317322,1022,-1.0000000000 -229,0,0.2283508927,229,6.0654091835,1023,-1.0000000000 -230,0,0.3311395645,230,4.1958436966,1024,-1.0000000000 -231,0,0.4342799783,231,3.2883524895,1025,-1.0000000000 -232,0,0.5590006709,232,2.8224635124,1026,-1.0000000000 -233,0,0.7316516638,233,2.5400061607,1027,-1.0000000000 -234,0,0.8548274636,234,2.4144558907,1028,-1.0000000000 -235,0,0.9891402721,235,2.3530962467,1029,-1.0000000000 -236,0,1.0502716303,236,2.3016290665,1030,-1.0000000000 -237,0,1.0607392788,237,2.2903811932,1031,-1.0000000000 -238,0,1.1183186769,238,2.3235101700,1032,-1.0000000000 -239,0,1.1194092035,239,2.3126912117,1033,-1.0000000000 -240,0,1.1294481754,240,2.3333547115,1034,-1.0000000000 -241,0,1.1141145229,241,2.3193163872,1035,-1.0000000000 -242,0,1.0437884331,242,2.2823159695,1036,-1.0000000000 -243,0,0.8947256804,243,2.3181655407,1037,-1.0000000000 -244,0,0.7067958117,244,2.5579893589,1038,-1.0000000000 -245,0,0.5081296563,245,3.0765430927,1039,-1.0000000000 -246,0,0.3798761666,246,3.6714072227,1040,-1.0000000000 -247,0,0.2857289016,247,4.7601342201,1041,-1.0000000000 -248,0,0.2004447579,248,6.0894117355,1042,-1.0000000000 -249,0,0.1385634840,249,9.3406229019,1043,-1.0000000000 -250,0,0.0403848663,250,19.1417312622,1044,-1.0000000000 -251,0,0.0001982165,251,31.6227760315,1045,-1.0000000000 -252,0,0.0001750147,252,31.6227760315,1046,-1.0000000000 -253,0,0.0042383769,253,30.0029430389,1047,-1.0000000000 -254,0,0.0337815769,254,21.3715801239,1048,-1.0000000000 -255,0,0.0844024718,255,14.8542079926,1049,-1.0000000000 -256,0,0.1610622257,256,7.5341968536,1050,-1.0000000000 -257,0,0.2227348387,257,5.6300301552,1051,-1.0000000000 -258,0,0.3526701033,258,3.9894003868,1052,-1.0000000000 -259,0,0.4723548591,259,3.1466460228,1053,-1.0000000000 -260,0,0.6160907149,260,2.7099738121,1054,-1.0000000000 -261,0,0.7912367582,261,2.4634957314,1055,-1.0000000000 -262,0,0.9398992062,262,2.3564286232,1056,-1.0000000000 -263,0,1.0118169785,263,2.2864329815,1057,-1.0000000000 -264,0,0.9678423405,264,2.3070170879,1058,-1.0000000000 -265,0,0.9376413226,265,2.3450162411,1059,-1.0000000000 -266,0,0.9355269670,266,2.3803303242,1060,-1.0000000000 -267,0,0.9543191195,267,2.3556554317,1061,-1.0000000000 -268,0,1.0108853579,268,2.3408815861,1062,-1.0000000000 -269,0,1.0471606255,269,2.3146529198,1063,-1.0000000000 -270,0,0.9970059395,270,2.2666883469,1064,-1.0000000000 -271,0,0.8818715811,271,2.3353953362,1065,-1.0000000000 -272,0,0.6957759261,272,2.5611574650,1066,-1.0000000000 -273,0,0.5319196582,273,3.0077891350,1067,-1.0000000000 -274,0,0.3815186620,274,3.6669015884,1068,-1.0000000000 -275,0,0.2636581063,275,5.1261324883,1069,-1.0000000000 -276,0,0.1597977132,276,8.1884031296,1070,-1.0000000000 -277,0,0.0801797807,277,14.1901311874,1071,-1.0000000000 -278,0,0.0370516144,278,20.5537090302,1072,-1.0000000000 -279,0,-0.0004002613,279,31.6050453186,1073,-1.0000000000 -280,0,-0.0003776760,280,31.6227111816,1074,-1.0000000000 -281,0,0.0021100610,281,31.5973281860,1075,-1.0000000000 -282,0,0.0257851910,282,26.2151908875,1076,-1.0000000000 -283,0,0.0611026809,283,17.1719360352,1077,-1.0000000000 -284,0,0.1393538266,284,8.7866668701,1078,-1.0000000000 -285,0,0.2184684724,285,6.0777459145,1079,-1.0000000000 -286,0,0.3355731368,286,4.2265377045,1080,-1.0000000000 -287,0,0.4826321006,287,3.1534481049,1081,-1.0000000000 -288,0,0.6489428878,288,2.6726737022,1082,-1.0000000000 -289,0,0.8263921738,289,2.3904621601,1083,-1.0000000000 -290,0,0.9376775622,290,2.3048274517,1084,-1.0000000000 -291,0,0.9587321281,291,2.3109583855,1085,-1.0000000000 -292,0,0.8675266504,292,2.3774199486,1086,-1.0000000000 -293,0,0.8094529510,293,2.5560112000,1087,-1.0000000000 -294,0,0.7863086462,294,2.5117721558,1088,-1.0000000000 -295,0,0.8640347719,295,2.3969352245,1089,-1.0000000000 -296,0,0.9173959494,296,2.3281571865,1090,-1.0000000000 -297,0,0.9688491821,297,2.3375737667,1091,-1.0000000000 -298,0,0.9456661344,298,2.3412094116,1092,-1.0000000000 -299,0,0.8205282092,299,2.3724005222,1093,-1.0000000000 -300,0,0.6771087646,300,2.5506916046,1094,-1.0000000000 -301,0,0.5108327866,301,2.9238371849,1095,-1.0000000000 -302,0,0.3787623048,302,3.7161893845,1096,-1.0000000000 -303,0,0.2699432671,303,5.4588193893,1097,-1.0000000000 -304,0,0.1464111656,304,10.0295314789,1098,-1.0000000000 -305,0,0.0792720169,305,16.0952014923,1099,-1.0000000000 -306,0,0.0059705833,306,31.2058010101,1100,-1.0000000000 -307,0,0.0004632693,307,31.5308609009,1101,-1.0000000000 -308,0,0.0043669338,308,30.6051616669,1102,-1.0000000000 -309,0,0.0063748998,309,29.8326950073,1103,-1.0000000000 -310,0,0.0159165747,310,28.5636730194,1104,-1.0000000000 -311,0,0.0448154770,311,20.4961643219,1105,-1.0000000000 -312,0,0.1235546991,312,10.9966354370,1106,-1.0000000000 -313,0,0.2231135815,313,6.1386961937,1107,-1.0000000000 -314,0,0.3377698064,314,4.2937984467,1108,-1.0000000000 -315,0,0.4951098561,315,3.1601424217,1109,-1.0000000000 -316,0,0.6553843021,316,2.6288735867,1110,-1.0000000000 -317,0,0.8079286218,317,2.3804090023,1111,-1.0000000000 -318,0,0.9239451885,318,2.3580360413,1112,-1.0000000000 -319,0,0.8803372979,319,2.3451416492,1113,-1.0000000000 -320,0,0.7921043038,320,2.4804413319,1114,-1.0000000000 -321,0,0.7499290109,321,2.5833342075,1115,-1.0000000000 -322,0,0.7702397704,322,2.4749538898,1116,-1.0000000000 -323,0,0.8655048609,323,2.3455898762,1117,-1.0000000000 -324,0,0.9550458789,324,2.3513987064,1118,-1.0000000000 -325,0,0.9986506104,325,2.3708248138,1119,-1.0000000000 -326,0,0.9347382188,326,2.3565754890,1120,-1.0000000000 -327,0,0.8275583982,327,2.4049818516,1121,-1.0000000000 -328,0,0.6480501294,328,2.6506526470,1122,-1.0000000000 -329,0,0.4856687486,329,3.0139541626,1123,-1.0000000000 -330,0,0.3583132625,330,3.9707667828,1124,-1.0000000000 -331,0,0.2453819662,331,5.6648898125,1125,-1.0000000000 -332,0,0.1315680295,332,9.5050153732,1126,-1.0000000000 -333,0,0.0543179512,333,19.6717777252,1127,-1.0000000000 -334,0,0.0002487019,334,31.5746517181,1128,-1.0000000000 -335,0,-0.0004916147,335,31.6226940155,1129,-1.0000000000 -336,0,0.0001359140,336,31.6227760315,1130,-1.0000000000 -337,0,0.0007245721,337,31.6227684021,1131,-1.0000000000 -338,0,-0.0002426033,338,31.5914230347,1132,-1.0000000000 -339,0,0.0228728075,339,26.4781723022,1133,-1.0000000000 -340,0,0.1194402054,340,12.1590147018,1134,-1.0000000000 -341,0,0.2250171900,341,6.1180801392,1135,-1.0000000000 -342,0,0.3482197821,342,4.1998472214,1136,-1.0000000000 -343,0,0.5096925497,343,3.1183922291,1137,-1.0000000000 -344,0,0.6711575985,344,2.5549144745,1138,-1.0000000000 -345,0,0.8273203373,345,2.3965148926,1139,-1.0000000000 -346,0,0.8989909887,346,2.3424625397,1140,-1.0000000000 -347,0,0.8338220119,347,2.3802590370,1141,-1.0000000000 -348,0,0.7712999582,348,2.4435381889,1142,-1.0000000000 -349,0,0.7810522914,349,2.4618661404,1143,-1.0000000000 -350,0,0.8488454223,350,2.3637220860,1144,-1.0000000000 -351,0,0.9808951616,351,2.2952208519,1145,-1.0000000000 -352,0,1.0584679842,352,2.3287153244,1146,-1.0000000000 -353,0,1.0484929085,353,2.3668515682,1147,-1.0000000000 -354,0,0.9439478517,354,2.3677756786,1148,-1.0000000000 -355,0,0.8024018407,355,2.4240152836,1149,-1.0000000000 -356,0,0.6145404577,356,2.7419781685,1150,-1.0000000000 -357,0,0.4524665475,357,3.2188079357,1151,-1.0000000000 -358,0,0.3541513085,358,4.3514347076,1152,-1.0000000000 -359,0,0.2111083865,359,6.3587808609,1153,-1.0000000000 -360,0,0.1307028979,360,10.0998725891,1154,-1.0000000000 -361,0,0.0321570523,361,21.4319057465,1155,-1.0000000000 -362,0,0.0006438673,362,31.6147212982,1156,-1.0000000000 -363,0,0.0009358423,363,31.6227760315,1157,-1.0000000000 -364,0,0.0002634405,364,31.6227760315,1158,-1.0000000000 -365,0,0.0010150694,365,31.6227722168,1159,-1.0000000000 -366,0,0.0004529505,366,31.6223411560,1160,-1.0000000000 -367,0,0.0137116825,367,27.4318256378,1161,-1.0000000000 -368,0,0.1160466224,368,10.0018968582,1162,-1.0000000000 -369,0,0.2345420271,369,5.8403391838,1163,-1.0000000000 -370,0,0.3708416522,370,3.8688480854,1164,-1.0000000000 -371,0,0.5300990939,371,2.9528651237,1165,-1.0000000000 -372,0,0.6892153025,372,2.5064487457,1166,-1.0000000000 -373,0,0.8098425865,373,2.3663296700,1167,-1.0000000000 -374,0,0.8341104388,374,2.3519144058,1168,-1.0000000000 -375,0,0.8101239204,375,2.4575023651,1169,-1.0000000000 -376,0,0.7889069915,376,2.4505796432,1170,-1.0000000000 -377,0,0.8793845773,377,2.4021737576,1171,-1.0000000000 -378,0,1.0059598684,378,2.3136579990,1172,-1.0000000000 -379,0,1.1230267286,379,2.2888503075,1173,-1.0000000000 -380,0,1.1797831059,380,2.3769843578,1174,-1.0000000000 -381,0,1.1613332033,381,2.4126398563,1175,-1.0000000000 -382,0,0.9623417258,382,2.2927162647,1176,-1.0000000000 -383,0,0.7934286594,383,2.4647991657,1177,-1.0000000000 -384,0,0.5926273465,384,2.7928922176,1178,-1.0000000000 -385,0,0.4492661655,385,3.2474975586,1179,-1.0000000000 -386,0,0.3443657458,386,4.2985219955,1180,-1.0000000000 -387,0,0.2314104587,387,5.9285354614,1181,-1.0000000000 -388,0,0.1472378820,388,9.3181419373,1182,-1.0000000000 -389,0,0.0351320319,389,20.6197624207,1183,-1.0000000000 -390,0,0.0014228243,390,31.5211696625,1184,-1.0000000000 -391,0,0.0008443597,391,31.6227760315,1185,-1.0000000000 -392,0,0.0099181151,392,29.6695613861,1186,-1.0000000000 -393,0,0.0006278105,393,31.6227760315,1187,-1.0000000000 -394,0,0.0003538693,394,31.6227512360,1188,-1.0000000000 -395,0,0.0145763783,395,27.5814151764,1189,-1.0000000000 -396,0,0.1199709773,396,10.8346366882,1190,-1.0000000000 -397,0,0.2440324277,397,5.7197704315,1191,-1.0000000000 -398,0,0.3900867701,398,3.5687365532,1192,-1.0000000000 -399,0,0.5461060405,399,2.8410024643,1193,-1.0000000000 -400,0,0.6898619533,400,2.5129566193,1194,-1.0000000000 -401,0,0.7780957818,401,2.4161820412,1195,-1.0000000000 -402,0,0.8212936521,402,2.4362788200,1196,-1.0000000000 -403,0,0.8196046352,403,2.4716432095,1197,-1.0000000000 -404,0,0.8615708947,404,2.4565105438,1198,-1.0000000000 -405,0,1.0007439852,405,2.3347504139,1199,-1.0000000000 -406,0,1.1029356718,406,2.2086555958,1200,-1.0000000000 -407,0,1.2631444931,407,2.3114092350,1201,-1.0000000000 -408,0,1.2674189806,408,2.3837871552,1202,-1.0000000000 -409,0,1.1696907282,409,2.3068034649,1203,-1.0000000000 -410,0,1.0013144016,410,2.2855141163,1204,-1.0000000000 -411,0,0.7892069817,411,2.4214391708,1205,-1.0000000000 -412,0,0.6106898189,412,2.7888779640,1206,-1.0000000000 -413,0,0.4649244547,413,3.2812552452,1207,-1.0000000000 -414,0,0.3470404446,414,4.0626425743,1208,-1.0000000000 -415,0,0.2548494935,415,5.3905172348,1209,-1.0000000000 -416,0,0.1753427535,416,7.4863877296,1210,-1.0000000000 -417,0,0.0696761087,417,15.3962125778,1211,-1.0000000000 -418,0,0.0011654531,418,31.4477596283,1212,-1.0000000000 -419,0,0.0005153015,419,31.6227760315,1213,-1.0000000000 -420,0,0.0022581830,420,31.3947219849,1214,-1.0000000000 -421,0,-0.0005039608,421,31.6227760315,1215,-1.0000000000 -422,0,0.0006990994,422,31.6138477325,1216,-1.0000000000 -423,0,0.0477251969,423,22.0904197693,1217,-1.0000000000 -424,0,0.1369994134,424,9.3862142563,1218,-1.0000000000 -425,0,0.2709477246,425,5.0977196693,1219,-1.0000000000 -426,0,0.4073841870,426,3.4829053879,1220,-1.0000000000 -427,0,0.5448542237,427,2.8721144199,1221,-1.0000000000 -428,0,0.6622777581,428,2.5826773643,1222,-1.0000000000 -429,0,0.7555070519,429,2.4061858654,1223,-1.0000000000 -430,0,0.8002126217,430,2.4329354763,1224,-1.0000000000 -431,0,0.8153559566,431,2.3994085789,1225,-1.0000000000 -432,0,0.8970652223,432,2.3870296478,1226,-1.0000000000 -433,0,1.0205209255,433,2.2956838608,1227,-1.0000000000 -434,0,1.1738963127,434,2.2933826447,1228,-1.0000000000 -435,0,1.2575677633,435,2.3463256359,1229,-1.0000000000 -436,0,1.2230237722,436,2.3524501324,1230,-1.0000000000 -437,0,1.1259639263,437,2.2667458057,1231,-1.0000000000 -438,0,0.9997518659,438,2.2932496071,1232,-1.0000000000 -439,0,0.7922306657,439,2.4435393810,1233,-1.0000000000 -440,0,0.6165519357,440,2.7788236141,1234,-1.0000000000 -441,0,0.4822996259,441,3.1403548717,1235,-1.0000000000 -442,0,0.3766285479,442,3.7291548252,1236,-1.0000000000 -443,0,0.2857866883,443,4.6315340996,1237,-1.0000000000 -444,0,0.1797532737,444,6.7200350761,1238,-1.0000000000 -445,0,0.0752173588,445,14.3447551727,1239,-1.0000000000 -446,0,0.0005639646,446,31.2004222870,1240,-1.0000000000 -447,0,-0.0001979070,447,31.6074485779,1241,-1.0000000000 -448,0,-0.0003395307,448,31.6227760315,1242,-1.0000000000 -449,0,-0.0001639747,449,31.6227760315,1243,-1.0000000000 -450,0,0.0036350526,450,30.9096469879,1244,-1.0000000000 -451,0,0.0473100618,451,20.2599525452,1245,-1.0000000000 -452,0,0.1546910107,452,8.4040956497,1246,-1.0000000000 -453,0,0.2969757318,453,4.8829870224,1247,-1.0000000000 -454,0,0.4089812934,454,3.4783515930,1248,-1.0000000000 -455,0,0.5411127210,455,2.9201178551,1249,-1.0000000000 -456,0,0.6237353086,456,2.6100988388,1250,-1.0000000000 -457,0,0.7418503165,457,2.4577949047,1251,-1.0000000000 -458,0,0.7519995570,458,2.4328489304,1252,-1.0000000000 -459,0,0.8003866076,459,2.4379255772,1253,-1.0000000000 -460,0,0.8349192142,460,2.3691625595,1254,-1.0000000000 -461,0,0.9357497692,461,2.3182308674,1255,-1.0000000000 -462,0,1.0823613405,462,2.3047502041,1256,-1.0000000000 -463,0,1.1418485641,463,2.3236503601,1257,-1.0000000000 -464,0,1.1479303837,464,2.3056936264,1258,-1.0000000000 -465,0,1.0592665672,465,2.3006165028,1259,-1.0000000000 -466,0,0.9168865085,466,2.3271152973,1260,-1.0000000000 -467,0,0.7404270768,467,2.4720604420,1261,-1.0000000000 -468,0,0.6123292446,468,2.7189273834,1262,-1.0000000000 -469,0,0.4894371331,469,3.0747077465,1263,-1.0000000000 -470,0,0.3859493136,470,3.6469478607,1264,-1.0000000000 -471,0,0.2822641730,471,4.7010302544,1265,-1.0000000000 -472,0,0.1787402332,472,7.5456037521,1266,-1.0000000000 -473,0,0.0621588230,473,16.5414638519,1267,-1.0000000000 -474,0,0.0011913897,474,31.1215934753,1268,-1.0000000000 -475,0,-0.0002103663,475,31.4152126312,1269,-1.0000000000 -476,0,0.0003792991,476,31.6227760315,1270,-1.0000000000 -477,0,0.0001732394,477,31.4972496033,1271,-1.0000000000 -478,0,0.0046014036,478,30.8621158600,1272,-1.0000000000 -479,0,0.0576600619,479,19.4848232269,1273,-1.0000000000 -480,0,0.1628940701,480,7.7923212051,1274,-1.0000000000 -481,0,0.2965573668,481,4.9645648003,1275,-1.0000000000 -482,0,0.4250472188,482,3.4230914116,1276,-1.0000000000 -483,0,0.5318685770,483,2.9077155590,1277,-1.0000000000 -484,0,0.6013643146,484,2.6383554935,1278,-1.0000000000 -485,0,0.6761335135,485,2.5247249603,1279,-1.0000000000 -486,0,0.7152107358,486,2.5478014946,1280,-1.0000000000 -487,0,0.7259470820,487,2.4765470028,1281,-1.0000000000 -488,0,0.7759909034,488,2.4189951420,1282,-1.0000000000 -489,0,0.8643364310,489,2.3606874943,1283,-1.0000000000 -490,0,0.9827626348,490,2.2951855659,1284,-1.0000000000 -491,0,1.0664774179,491,2.2927172184,1285,-1.0000000000 -492,0,1.0456911325,492,2.2863845825,1286,-1.0000000000 -493,0,0.9820244312,493,2.3256044388,1287,-1.0000000000 -494,0,0.8542780876,494,2.3467662334,1288,-1.0000000000 -495,0,0.7340826988,495,2.5039217472,1289,-1.0000000000 -496,0,0.5968572497,496,2.7374470234,1290,-1.0000000000 -497,0,0.4873765409,497,3.0340442657,1291,-1.0000000000 -498,0,0.3672321439,498,3.8976264000,1292,-1.0000000000 -499,0,0.2460707277,499,5.2589669228,1293,-1.0000000000 -500,0,0.1587331593,500,8.3845701218,1294,-1.0000000000 -501,0,0.0695172399,501,15.4914751053,1295,-1.0000000000 -502,0,0.0014563977,502,31.0409355164,1296,-1.0000000000 -503,0,-0.0004635351,503,31.6086044312,1297,-1.0000000000 -504,0,0.0006251551,504,31.6227684021,1298,-1.0000000000 -505,0,0.0001793502,505,31.3493156433,1299,-1.0000000000 -506,0,0.0272259805,506,26.2832393646,1300,-1.0000000000 -507,0,0.0631093308,507,16.6588172913,1301,-1.0000000000 -508,0,0.1657525301,508,7.3287153244,1302,-1.0000000000 -509,0,0.2855381370,509,5.0466980934,1303,-1.0000000000 -510,0,0.4234611988,510,3.3581931591,1304,-1.0000000000 -511,0,0.5355196595,511,2.9099872112,1305,-1.0000000000 -512,0,0.5872064233,512,2.7330672741,1306,-1.0000000000 -513,0,0.6371801496,513,2.5911569595,1307,-1.0000000000 -514,0,0.7026461959,514,2.5588054657,1308,-1.0000000000 -515,0,0.7171602249,515,2.4488122463,1309,-1.0000000000 -516,0,0.7390315533,516,2.4854843616,1310,-1.0000000000 -517,0,0.8491621017,517,2.3858935833,1311,-1.0000000000 -518,0,0.9590334296,518,2.3105680943,1312,-1.0000000000 -519,0,1.0337742567,519,2.3163540363,1313,-1.0000000000 -520,0,1.0172015429,520,2.3164091110,1314,-1.0000000000 -521,0,0.9606239796,521,2.3229632378,1315,-1.0000000000 -522,0,0.8654842377,522,2.3833553791,1316,-1.0000000000 -523,0,0.7076365352,523,2.4972376823,1317,-1.0000000000 -524,0,0.5839534402,524,2.7767996788,1318,-1.0000000000 -525,0,0.4629037380,525,3.2973482609,1319,-1.0000000000 -526,0,0.3223178983,526,4.1649656296,1320,-1.0000000000 -527,0,0.2451560944,527,5.5368881226,1321,-1.0000000000 -528,0,0.1502188295,528,8.9174118042,1322,-1.0000000000 -529,0,0.0671202466,529,16.8515014648,1323,-1.0000000000 -530,0,0.0168995671,530,27.8533496857,1324,-1.0000000000 -531,0,0.0027108516,531,30.7577781677,1325,-1.0000000000 -532,0,-0.0004748474,532,31.6227760315,1326,-1.0000000000 -533,0,0.0000889081,533,31.4278774261,1327,-1.0000000000 -534,0,0.0426550955,534,18.8880081177,1328,-1.0000000000 -535,0,0.0897340700,535,14.2352895737,1329,-1.0000000000 -536,0,0.1835324466,536,6.9632315636,1330,-1.0000000000 -537,0,0.2979731560,537,4.7712202072,1331,-1.0000000000 -538,0,0.4157102704,538,3.4161942005,1332,-1.0000000000 -539,0,0.5524196029,539,2.9093339443,1333,-1.0000000000 -540,0,0.6347330213,540,2.6985633373,1334,-1.0000000000 -541,0,0.6873387098,541,2.5735416412,1335,-1.0000000000 -542,0,0.7337716818,542,2.5132219791,1336,-1.0000000000 -543,0,0.7439809442,543,2.4510378838,1337,-1.0000000000 -544,0,0.8024758697,544,2.4043424129,1338,-1.0000000000 -545,0,0.9168453813,545,2.3399312496,1339,-1.0000000000 -546,0,1.0280338526,546,2.3012630939,1340,-1.0000000000 -547,0,1.0949355364,547,2.3466596603,1341,-1.0000000000 -548,0,1.0854176283,548,2.3466114998,1342,-1.0000000000 -549,0,0.9963572621,549,2.3077476025,1343,-1.0000000000 -550,0,0.8625664115,550,2.3717453480,1344,-1.0000000000 -551,0,0.6984025836,551,2.5627849102,1345,-1.0000000000 -552,0,0.5655143857,552,2.8067283630,1346,-1.0000000000 -553,0,0.4338583946,553,3.3975961208,1347,-1.0000000000 -554,0,0.3148156703,554,4.4280271530,1348,-1.0000000000 -555,0,0.2177419066,555,6.1449913979,1349,-1.0000000000 -556,0,0.1394918263,556,9.3737068176,1350,-1.0000000000 -557,0,0.0666871071,557,15.0768060684,1351,-1.0000000000 -558,0,0.0241600294,558,21.9253787994,1352,-1.0000000000 -559,0,0.0023356657,559,31.0733852386,1353,-1.0000000000 -560,0,0.0005278823,560,31.6227760315,1354,-1.0000000000 -561,0,0.0003284318,561,31.6154689789,1355,-1.0000000000 -562,0,0.0723905489,562,16.1907138824,1356,-1.0000000000 -563,0,0.1137683168,563,10.0528793335,1357,-1.0000000000 -564,0,0.1933699250,564,6.3731698990,1358,-1.0000000000 -565,0,0.2978318036,565,4.5994777679,1359,-1.0000000000 -566,0,0.4207669199,566,3.4823834896,1360,-1.0000000000 -567,0,0.5616418719,567,2.8318614960,1361,-1.0000000000 -568,0,0.6912870407,568,2.5435352325,1362,-1.0000000000 -569,0,0.7708287239,569,2.4794592857,1363,-1.0000000000 -570,0,0.8215371370,570,2.4028928280,1364,-1.0000000000 -571,0,0.8826347589,571,2.3621711731,1365,-1.0000000000 -572,0,0.9627836943,572,2.3196456432,1366,-1.0000000000 -573,0,1.1106199026,573,2.3130993843,1367,-1.0000000000 -574,0,1.2246385813,574,2.3607060909,1368,-1.0000000000 -575,0,1.2177535295,575,2.3455936909,1369,-1.0000000000 -576,0,1.1265897751,576,2.3350877762,1370,-1.0000000000 -577,0,1.0035156012,577,2.3239722252,1371,-1.0000000000 -578,0,0.8064009547,578,2.4052209854,1372,-1.0000000000 -579,0,0.6292597055,579,2.6512899399,1373,-1.0000000000 -580,0,0.4997098446,580,3.0128855705,1374,-1.0000000000 -581,0,0.3879833221,581,3.6579921246,1375,-1.0000000000 -582,0,0.2890135050,582,4.8065571785,1376,-1.0000000000 -583,0,0.1925205886,583,7.4596571922,1377,-1.0000000000 -584,0,0.1238536388,584,11.0189476013,1378,-1.0000000000 -585,0,0.0504309833,585,19.6995429993,1379,-1.0000000000 -586,0,0.0241918098,586,29.3324947357,1380,-1.0000000000 -587,0,0.0003931704,587,31.6227760315,1381,-1.0000000000 -588,0,0.0000209329,588,31.6227760315,1382,-1.0000000000 -589,0,-0.0001734847,589,31.6227760315,1383,-1.0000000000 -590,0,0.0607455708,590,14.3712387085,1384,-1.0000000000 -591,0,0.1017537937,591,11.4408884048,1385,-1.0000000000 -592,0,0.1845139414,592,7.3711776733,1386,-1.0000000000 -593,0,0.2864980102,593,4.6154351234,1387,-1.0000000000 -594,0,0.4105657041,594,3.3562819958,1388,-1.0000000000 -595,0,0.5539539456,595,2.8899328709,1389,-1.0000000000 -596,0,0.6790744066,596,2.5217244625,1390,-1.0000000000 -597,0,0.8194868565,597,2.3978948593,1391,-1.0000000000 -598,0,0.9098239541,598,2.3392369747,1392,-1.0000000000 -599,0,1.0223187208,599,2.2961740494,1393,-1.0000000000 -600,0,1.1595125198,600,2.3070757389,1394,-1.0000000000 -601,0,1.3060013056,601,2.3680303097,1395,-1.0000000000 -602,0,1.3420419693,602,2.3928475380,1396,-1.0000000000 -603,0,1.2148033381,603,2.3111648560,1397,-1.0000000000 -604,0,1.0699449778,604,2.3505551815,1398,-1.0000000000 -605,0,0.8734347224,605,2.3596315384,1399,-1.0000000000 -606,0,0.7014126182,606,2.5934374332,1400,-1.0000000000 -607,0,0.5386259556,607,3.0620768070,1401,-1.0000000000 -608,0,0.4120286405,608,3.6871492863,1402,-1.0000000000 -609,0,0.3218664825,609,4.3526191711,1403,-1.0000000000 -610,0,0.2504507601,610,5.4890518188,1404,-1.0000000000 -611,0,0.1661561131,611,7.5762300491,1405,-1.0000000000 -612,0,0.1281819940,612,9.1167297363,1406,-1.0000000000 -613,0,0.0845847353,613,12.5985088348,1407,-1.0000000000 -614,0,0.0390512794,614,22.3714408875,1408,-1.0000000000 -615,0,-0.0009076580,615,31.6227760315,1409,-1.0000000000 -616,0,0.0006949858,616,31.6227760315,1410,-1.0000000000 -617,0,-0.0002807755,617,31.6227760315,1411,-1.0000000000 -618,0,0.0402883030,618,21.7810173035,1412,-1.0000000000 -619,0,0.0869438499,619,13.5456027985,1413,-1.0000000000 -620,0,0.1526628584,620,8.6529712677,1414,-1.0000000000 -621,0,0.2470432669,621,5.2813711166,1415,-1.0000000000 -622,0,0.3586099148,622,3.9963319302,1416,-1.0000000000 -623,0,0.4875319004,623,3.1646375656,1417,-1.0000000000 -624,0,0.6175509095,624,2.6909687519,1418,-1.0000000000 -625,0,0.7506234050,625,2.4454865456,1419,-1.0000000000 -626,0,0.8995615244,626,2.3818230629,1420,-1.0000000000 -627,0,1.0349189043,627,2.3495621681,1421,-1.0000000000 -628,0,1.1513767242,628,2.3277025223,1422,-1.0000000000 -629,0,1.1925117970,629,2.3252859116,1423,-1.0000000000 -630,0,1.1708381176,630,2.3266208172,1424,-1.0000000000 -631,0,1.0055685043,631,2.2985715866,1425,-1.0000000000 -632,0,0.8375660777,632,2.3881287575,1426,-1.0000000000 -633,0,0.6791220307,633,2.5529067516,1427,-1.0000000000 -634,0,0.5486404896,634,3.0046038628,1428,-1.0000000000 -635,0,0.4031040370,635,3.6131353378,1429,-1.0000000000 -636,0,0.3038705885,636,4.2178559303,1430,-1.0000000000 -637,0,0.2524210811,637,5.2704262733,1431,-1.0000000000 -638,0,0.1901981086,638,7.2279939651,1432,-1.0000000000 -639,0,0.1363730580,639,9.2050275803,1433,-1.0000000000 -640,0,0.1073145792,640,11.0745315552,1434,-1.0000000000 -641,0,0.0684229210,641,17.0656967163,1435,-1.0000000000 -642,0,-0.0006744663,642,31.4324455261,1436,-1.0000000000 -643,0,0.0000577544,643,31.6227760315,1437,-1.0000000000 -644,0,0.0001570900,644,31.6227760315,1438,-1.0000000000 -645,0,0.0002731264,645,31.6227760315,1439,-1.0000000000 -646,0,0.0038284403,646,31.5273246765,1440,-1.0000000000 -647,0,0.0601321943,647,24.6100997925,1441,-1.0000000000 -648,0,0.1270000190,648,11.2679891586,1442,-1.0000000000 -649,0,0.1785868257,649,7.4269938469,1443,-1.0000000000 -650,0,0.2439755499,650,5.7582297325,1444,-1.0000000000 -651,0,0.3590478301,651,4.2548680305,1445,-1.0000000000 -652,0,0.4855530262,652,3.1840777397,1446,-1.0000000000 -653,0,0.6170494556,653,2.7186973095,1447,-1.0000000000 -654,0,0.7311881781,654,2.4960284233,1448,-1.0000000000 -655,0,0.8497233391,655,2.3866577148,1449,-1.0000000000 -656,0,0.8977967501,656,2.2938549519,1450,-1.0000000000 -657,0,0.9207286835,657,2.3358664513,1451,-1.0000000000 -658,0,0.8413833380,658,2.4213399887,1452,-1.0000000000 -659,0,0.7170580626,659,2.5448734760,1453,-1.0000000000 -660,0,0.5938371420,660,2.7929685116,1454,-1.0000000000 -661,0,0.5012392998,661,3.1163673401,1455,-1.0000000000 -662,0,0.3831444383,662,3.5627930164,1456,-1.0000000000 -663,0,0.2952043712,663,4.7107014656,1457,-1.0000000000 -664,0,0.2229586542,664,6.1396217346,1458,-1.0000000000 -665,0,0.1698745340,665,8.3822546005,1459,-1.0000000000 -666,0,0.1272457540,666,10.6636753082,1460,-1.0000000000 -667,0,0.0948237330,667,12.6990413666,1461,-1.0000000000 -668,0,0.0626095906,668,16.9660911560,1462,-1.0000000000 -669,0,0.0318746492,669,21.1093711853,1463,-1.0000000000 -670,0,-0.0004596915,670,31.6104564667,1464,-1.0000000000 -671,0,-0.0003297509,671,31.6227760315,1465,-1.0000000000 -672,0,0.0000154043,672,31.6227760315,1466,-1.0000000000 -673,0,-0.0001096721,673,31.6227760315,1467,-1.0000000000 -674,0,0.0178631432,674,29.5287456512,1468,-1.0000000000 -675,0,0.0546890534,675,16.1463527679,1469,-1.0000000000 -676,0,0.0868572965,676,12.2466621399,1470,-1.0000000000 -677,0,0.1117715240,677,10.5556993484,1471,-1.0000000000 -678,0,0.1618072391,678,8.4793176651,1472,-1.0000000000 -679,0,0.2181115299,679,6.4094319344,1473,-1.0000000000 -680,0,0.3212501407,680,4.3094873428,1474,-1.0000000000 -681,0,0.4112867415,681,3.4613811970,1475,-1.0000000000 -682,0,0.5046284795,682,3.0084741116,1476,-1.0000000000 -683,0,0.5720140934,683,2.7893841267,1477,-1.0000000000 -684,0,0.5922526121,684,2.7598524094,1478,-1.0000000000 -685,0,0.5841865540,685,2.8037195206,1479,-1.0000000000 -686,0,0.5365922451,686,3.0683386326,1480,-1.0000000000 -687,0,0.4612809718,687,3.3554875851,1481,-1.0000000000 -688,0,0.3670029640,688,3.9444963932,1482,-1.0000000000 -689,0,0.3295761645,689,4.3042774200,1483,-1.0000000000 -690,0,0.2607125342,690,5.3240251541,1484,-1.0000000000 -691,0,0.1775101870,691,7.7890319824,1485,-1.0000000000 -692,0,0.1102388427,692,12.0671710968,1486,-1.0000000000 -693,0,0.0604847036,693,18.2411289215,1487,-1.0000000000 -694,0,0.0366388559,694,21.5846443176,1488,-1.0000000000 -695,0,0.0300995968,695,25.3701477051,1489,-1.0000000000 -696,0,0.0216256510,696,27.5726089478,1490,-1.0000000000 -697,0,0.0095130559,697,30.6409358978,1491,-1.0000000000 -698,0,-0.0004731133,698,31.6227760315,1492,-1.0000000000 -699,0,0.0004173194,699,31.6227760315,1493,-1.0000000000 -700,0,0.0000373051,700,31.6227760315,1494,-1.0000000000 -701,0,0.0001317095,701,31.6227760315,1495,-1.0000000000 -702,0,0.0008505006,702,31.6226882935,1496,-1.0000000000 -703,0,-0.0003478700,703,31.6172637939,1497,-1.0000000000 -704,0,0.0189459547,704,23.7632350922,1498,-1.0000000000 -705,0,0.0240347050,705,25.5765171051,1499,-1.0000000000 -706,0,0.0671423450,706,20.8565483093,1500,-1.0000000000 -707,0,0.1300252825,707,10.1886911392,1501,-1.0000000000 -708,0,0.1885967255,708,6.9609127045,1502,-1.0000000000 -709,0,0.2572585344,709,5.1757941246,1503,-1.0000000000 -710,0,0.2850341201,710,4.6739964485,1504,-1.0000000000 -711,0,0.2925059199,711,4.6598939896,1505,-1.0000000000 -712,0,0.2976753414,712,4.3765192032,1506,-1.0000000000 -713,0,0.3117159903,713,4.3831186295,1507,-1.0000000000 -714,0,0.2751280963,714,4.9206175804,1508,-1.0000000000 -715,0,0.2536923289,715,5.5485920906,1509,-1.0000000000 -716,0,0.2220572233,716,5.7631196976,1510,-1.0000000000 -717,0,0.2168289870,717,5.8250527382,1511,-1.0000000000 -718,0,0.1724179536,718,7.2118659019,1512,-1.0000000000 -719,0,0.0910157040,719,12.4245290756,1513,-1.0000000000 -720,0,0.0563279390,720,17.5090179443,1514,-1.0000000000 -721,0,0.0309663750,721,21.6350479126,1515,-1.0000000000 -722,0,0.0123580080,722,26.7846317291,1516,-1.0000000000 -723,0,0.0015036017,723,31.4724483490,1517,-1.0000000000 -724,0,0.0008548850,724,31.6225376129,1518,-1.0000000000 -725,0,0.0006256067,725,31.6227760315,1519,-1.0000000000 -726,0,0.0002573585,726,31.6227760315,1520,-1.0000000000 -727,0,0.0000280884,727,31.6227760315,1521,-1.0000000000 -728,0,-0.0000565607,728,31.6227760315,1522,-1.0000000000 -729,0,0.0003511363,729,31.6227760315,1523,-1.0000000000 -730,0,-0.0001680269,730,31.6227760315,1524,-1.0000000000 -731,0,0.0000254372,731,31.6227760315,1525,-1.0000000000 -732,0,0.0008010912,732,31.6227760315,1526,-1.0000000000 -733,0,0.0012664478,733,31.4162387848,1527,-1.0000000000 -734,0,0.0087214625,734,28.7205638885,1528,-1.0000000000 -735,0,0.0626093596,735,19.5268421173,1529,-1.0000000000 -736,0,0.0923844799,736,11.2921705246,1530,-1.0000000000 -737,0,0.1464712471,737,9.9134054184,1531,-1.0000000000 -738,0,0.1504246145,738,8.1084785461,1532,-1.0000000000 -739,0,0.1739578098,739,7.7448530197,1533,-1.0000000000 -740,0,0.1997769475,740,6.6165623665,1534,-1.0000000000 -741,0,0.2006624788,741,6.4281668663,1535,-1.0000000000 -742,0,0.1754072160,742,6.9995551109,1536,-1.0000000000 -743,0,0.1449064016,743,9.2301797867,1537,-1.0000000000 -744,0,0.1363533288,744,9.0806503296,1538,-1.0000000000 -745,0,0.1309172958,745,8.9661102295,1539,-1.0000000000 -746,0,0.1192817390,746,10.3375415802,1540,-1.0000000000 -747,0,0.0636332557,747,14.1783494949,1541,-1.0000000000 -748,0,0.0384967402,748,22.9521389008,1542,-1.0000000000 -749,0,0.0151172429,749,28.6417751312,1543,-1.0000000000 -750,0,0.0002644823,750,31.6227531433,1544,-1.0000000000 -751,0,0.0001388959,751,31.6227760315,1545,-1.0000000000 -752,0,-0.0000449004,752,31.6227760315,1546,-1.0000000000 -753,0,-0.0001319500,753,31.6227760315,1547,-1.0000000000 -754,0,0.0001573211,754,31.6227760315,1548,-1.0000000000 -755,0,-0.0002211487,755,31.6227760315,1549,-1.0000000000 -756,0,0.0003631258,756,31.6227760315,1550,-1.0000000000 -757,0,-0.0004803424,757,31.6227760315,1551,-1.0000000000 -758,0,0.0002229759,758,31.6227760315,1552,-1.0000000000 -759,0,0.0001782212,759,31.6227760315,1553,-1.0000000000 -760,0,-0.0005359335,760,31.6227760315,1554,-1.0000000000 -761,0,0.0002537031,761,31.6227760315,1555,-1.0000000000 -762,0,0.0070610512,762,28.9331836700,1556,-1.0000000000 -763,0,0.0071148821,763,29.6497535706,1557,-1.0000000000 -764,0,0.0041782572,764,30.8653697968,1558,-1.0000000000 -765,0,0.0462772399,765,21.3133430481,1559,-1.0000000000 -766,0,0.0544400029,766,16.0949192047,1560,-1.0000000000 -767,0,0.0392944776,767,18.0789394379,1561,-1.0000000000 -768,0,0.0200691894,768,29.0664215088,1562,-1.0000000000 -769,0,0.0608186498,769,16.4322891235,1563,-1.0000000000 -770,0,0.0768310428,770,12.8409261703,1564,-1.0000000000 -771,0,0.0623596348,771,16.9758491516,1565,-1.0000000000 -772,0,0.0616865344,772,16.0248012543,1566,-1.0000000000 -773,0,0.0621746406,773,15.3318328857,1567,-1.0000000000 -774,0,0.0373334214,774,23.6103172302,1568,-1.0000000000 -775,0,0.0014662633,775,31.2061862946,1569,-1.0000000000 -776,0,0.0005060213,776,31.5637264252,1570,-1.0000000000 -777,0,-0.0001282875,777,31.6227760315,1571,-1.0000000000 -778,0,-0.0000724052,778,31.6227760315,1572,-1.0000000000 -779,0,-0.0003652821,779,31.6227760315,1573,-1.0000000000 -780,0,0.0004401279,780,31.6227760315,1574,-1.0000000000 -781,0,-0.0000989889,781,31.6227760315,1575,-1.0000000000 -782,0,-0.0000036841,782,31.6227760315,1576,-1.0000000000 -783,0,0.0003134308,783,31.6227760315,1577,-1.0000000000 -784,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,1.0000000000,835,-1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,1.0000000000,871,-1.0000000000,872,1.0000000000,873,1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,-1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,1.0000000000,973,-1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,-1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1578,-1.0000000000 -785,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,1.0000000000,835,-1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,-1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,-1.0000000000,978,1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1579,-1.0000000000 -786,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,-1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,1.0000000000,953,-1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1580,-1.0000000000 -787,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,-1.0000000000,843,1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,-1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,-1.0000000000,982,1.0000000000,983,-1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,-1.0000000000,1063,1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1581,-1.0000000000 -788,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,-1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,-1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,1.0000000000,868,-1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,1.0000000000,949,-1.0000000000,950,-1.0000000000,951,1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,-1.0000000000,981,-1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,-1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,-1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1582,-1.0000000000 -789,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1583,-1.0000000000 -790,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,-1.0000000000,862,1.0000000000,863,-1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1584,-1.0000000000 -791,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,-1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1585,-1.0000000000 -792,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,-1.0000000000,978,-1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,-1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,-1.0000000000,1567,1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1586,-1.0000000000 -793,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,-1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,-1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,-1.0000000000,972,1.0000000000,973,1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,-1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1587,-1.0000000000 -794,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,-1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1588,-1.0000000000 -795,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,1.0000000000,846,-1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,1.0000000000,859,-1.0000000000,860,1.0000000000,861,1.0000000000,862,-1.0000000000,863,1.0000000000,864,-1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,-1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,-1.0000000000,1589,-1.0000000000 -796,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,-1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,-1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1590,-1.0000000000 -797,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,1.0000000000,854,1.0000000000,855,1.0000000000,856,-1.0000000000,857,1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,-1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,-1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,-1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1591,-1.0000000000 -798,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,-1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,1.0000000000,888,-1.0000000000,889,1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,1.0000000000,896,-1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,-1.0000000000,907,-1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,-1.0000000000,933,1.0000000000,934,1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,1.0000000000,947,-1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,-1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,-1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1592,-1.0000000000 -799,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,-1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,-1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,1.0000000000,947,-1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1593,-1.0000000000 -800,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,-1.0000000000,1594,-1.0000000000 -801,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,1.0000000000,939,-1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,1.0000000000,981,-1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1595,-1.0000000000 -802,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1596,-1.0000000000 -803,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,-1.0000000000,972,1.0000000000,973,1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,1.0000000000,981,-1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,-1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,-1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,-1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1597,-1.0000000000 -804,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,-1.0000000000,862,-1.0000000000,863,1.0000000000,864,1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,-1.0000000000,888,1.0000000000,889,-1.0000000000,890,1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,-1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1598,-1.0000000000 -805,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,-1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,-1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,-1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,-1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1599,-1.0000000000 -806,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,-1.0000000000,913,-1.0000000000,914,1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1600,-1.0000000000 -807,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,-1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,-1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1601,-1.0000000000 -808,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,-1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1602,-1.0000000000 -809,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,1.0000000000,820,1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,-1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,1.0000000000,868,1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,-1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,1.0000000000,984,1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1603,-1.0000000000 -810,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,-1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1604,-1.0000000000 -811,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,-1.0000000000,940,1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,-1.0000000000,991,1.0000000000,992,-1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1605,-1.0000000000 -812,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,-1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,1.0000000000,979,-1.0000000000,980,1.0000000000,981,-1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,-1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,-1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,-1.0000000000,1606,-1.0000000000 -813,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,-1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1607,-1.0000000000 -814,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,-1.0000000000,840,1.0000000000,841,-1.0000000000,842,1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,-1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1608,-1.0000000000 -815,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,-1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,1.0000000000,868,1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,-1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1609,-1.0000000000 -816,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1610,-1.0000000000 -817,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,1.0000000000,939,1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,1.0000000000,971,-1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1611,-1.0000000000 -818,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1612,-1.0000000000 -819,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,-1.0000000000,867,1.0000000000,868,-1.0000000000,869,1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,1.0000000000,891,1.0000000000,892,-1.0000000000,893,-1.0000000000,894,1.0000000000,895,-1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,-1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1613,-1.0000000000 -820,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1614,-1.0000000000 -821,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,-1.0000000000,870,-1.0000000000,871,1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,-1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,-1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1615,-1.0000000000 -822,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,1.0000000000,864,1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,-1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1616,-1.0000000000 -823,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,-1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,-1.0000000000,862,1.0000000000,863,-1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,1.0000000000,895,-1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,1.0000000000,902,-1.0000000000,903,1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,-1.0000000000,928,-1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1617,-1.0000000000 -824,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,-1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,-1.0000000000,901,1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,1.0000000000,922,-1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,-1.0000000000,1618,-1.0000000000 -825,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,-1.0000000000,979,1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1619,-1.0000000000 -826,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,-1.0000000000,803,1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,-1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,-1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,-1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,1.0000000000,891,-1.0000000000,892,1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,-1.0000000000,970,1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,1.0000000000,987,-1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,-1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1620,-1.0000000000 -827,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,-1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,-1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1621,-1.0000000000 -828,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,-1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1622,-1.0000000000 -829,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,1.0000000000,844,1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,-1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,1.0000000000,891,-1.0000000000,892,1.0000000000,893,1.0000000000,894,-1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1623,-1.0000000000 -830,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,-1.0000000000,851,-1.0000000000,852,1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,1.0000000000,861,-1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,-1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,1.0000000000,968,1.0000000000,969,-1.0000000000,970,1.0000000000,971,1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,1.0000000000,992,-1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1624,-1.0000000000 -831,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,-1.0000000000,986,1.0000000000,987,-1.0000000000,988,1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,-1.0000000000,1093,1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1625,-1.0000000000 -832,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,-1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,1.0000000000,833,-1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,-1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,-1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1626,-1.0000000000 -833,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,-1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,-1.0000000000,852,1.0000000000,853,1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,-1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,1.0000000000,971,1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1627,-1.0000000000 -834,0,0.8421083689,1578,0.0235017370,1628,-1.0000000000 -835,0,-0.2846569419,1579,0.0261672977,1629,-1.0000000000 -836,0,-0.6479381323,1580,0.0223037712,1630,-1.0000000000 -837,0,0.3773280084,1581,0.0231465548,1631,-1.0000000000 -838,0,-1.0555180311,1582,0.0243742540,1632,-1.0000000000 -839,0,0.7876127958,1583,0.0225345884,1633,-1.0000000000 -840,0,-0.9667378664,1584,0.0249240641,1634,-1.0000000000 -841,0,-0.7313812971,1585,0.0240810122,1635,-1.0000000000 -842,0,0.7189067602,1586,0.0228495728,1636,-1.0000000000 -843,0,0.7211230993,1587,0.0222876444,1637,-1.0000000000 -844,0,-0.9235455990,1588,0.0243723150,1638,-1.0000000000 -845,0,-0.5571734905,1589,0.0194766801,1639,-1.0000000000 -846,0,0.8664592505,1590,0.0231784545,1640,-1.0000000000 -847,0,0.3598901629,1591,0.0223980900,1641,-1.0000000000 -848,0,0.8700128198,1592,0.0229846016,1642,-1.0000000000 -849,0,0.7697677016,1593,0.0229231622,1643,-1.0000000000 -850,0,0.2859251499,1594,0.0247299802,1644,-1.0000000000 -851,0,-0.7671884298,1595,0.0267935731,1645,-1.0000000000 -852,0,0.7625827193,1596,0.0292239934,1646,-1.0000000000 -853,0,-0.6408279538,1597,0.0266149249,1647,-1.0000000000 -854,0,0.4876926839,1598,0.0229843184,1648,-1.0000000000 -855,0,-0.7342277169,1599,0.0265182480,1649,-1.0000000000 -856,0,-0.0043167840,1600,0.0231549405,1650,-1.0000000000 -857,0,-0.9360870719,1601,0.0253012348,1651,-1.0000000000 -858,0,-0.2136942148,1602,0.0208041538,1652,-1.0000000000 -859,0,0.6678317189,1603,0.0230627339,1653,-1.0000000000 -860,0,-0.8490259647,1604,0.0283609889,1654,-1.0000000000 -861,0,-0.8502492905,1605,0.0245368518,1655,-1.0000000000 -862,0,0.3299311101,1606,0.0213238895,1656,-1.0000000000 -863,0,-0.6741704941,1607,0.0265815370,1657,-1.0000000000 -864,0,-0.7203316092,1608,0.0197502580,1658,-1.0000000000 -865,0,-0.5871137381,1609,0.0245222691,1659,-1.0000000000 -866,0,-0.1073979139,1610,0.0194286499,1660,-1.0000000000 -867,0,-0.6457850933,1611,0.0255288966,1661,-1.0000000000 -868,0,-0.7653211355,1612,0.0226976387,1662,-1.0000000000 -869,0,-0.7774050236,1613,0.0227414705,1663,-1.0000000000 -870,0,-0.7453527451,1614,0.0255117286,1664,-1.0000000000 -871,0,0.3966747224,1615,0.0273439139,1665,-1.0000000000 -872,0,0.6267040372,1616,0.0262405220,1666,-1.0000000000 -873,0,-0.7901589870,1617,0.0219206698,1667,-1.0000000000 -874,0,-0.6241480708,1618,0.0257767029,1668,-1.0000000000 -875,0,0.3426552415,1619,0.0209231097,1669,-1.0000000000 -876,0,1.0251504183,1620,0.0249391589,1670,-1.0000000000 -877,0,0.5753672123,1621,0.0281392988,1671,-1.0000000000 -878,0,0.0552809983,1622,0.0230191071,1672,-1.0000000000 -879,0,-0.7643856406,1623,0.0223054085,1673,-1.0000000000 -880,0,-0.9038895965,1624,0.0259901769,1674,-1.0000000000 -881,0,0.3115992844,1625,0.0212058239,1675,-1.0000000000 -882,0,0.8047288656,1626,0.0262604449,1676,-1.0000000000 -883,0,-0.1062955856,1627,0.0169141162,1677,-1.0000000000 -884,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1828,-1.0000000000 -885,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1829,-1.0000000000 -886,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1830,-1.0000000000 -887,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1831,-1.0000000000 -888,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1832,-1.0000000000 -889,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1833,-1.0000000000 -890,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1834,-1.0000000000 -891,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1835,-1.0000000000 -892,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1836,-1.0000000000 -893,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1837,-1.0000000000 -894,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1838,-1.0000000000 -895,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1839,-1.0000000000 -896,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1840,-1.0000000000 -897,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1841,-1.0000000000 -898,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1842,-1.0000000000 -899,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1843,-1.0000000000 -900,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1844,-1.0000000000 -901,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1845,-1.0000000000 -902,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1846,-1.0000000000 -903,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1847,-1.0000000000 -904,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1848,-1.0000000000 -905,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1849,-1.0000000000 -906,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1850,-1.0000000000 -907,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1851,-1.0000000000 -908,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1852,-1.0000000000 -909,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1853,-1.0000000000 -910,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,-1.0000000000,1854,-1.0000000000 -911,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1855,-1.0000000000 -912,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1856,-1.0000000000 -913,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1857,-1.0000000000 -914,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1858,-1.0000000000 -915,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1859,-1.0000000000 -916,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1860,-1.0000000000 -917,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1861,-1.0000000000 -918,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1862,-1.0000000000 -919,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1863,-1.0000000000 -920,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,-1.0000000000,1864,-1.0000000000 -921,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1865,-1.0000000000 -922,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1866,-1.0000000000 -923,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1867,-1.0000000000 -924,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1868,-1.0000000000 -925,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1869,-1.0000000000 -926,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1870,-1.0000000000 -927,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1871,-1.0000000000 -928,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1872,-1.0000000000 -929,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1873,-1.0000000000 -930,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1874,-1.0000000000 -931,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1875,-1.0000000000 -932,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1876,-1.0000000000 -933,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1877,-1.0000000000 -934,0,-0.4422365427,1828,0.1020488292,1878,-1.0000000000 -935,0,0.4480501115,1829,0.0991111100,1879,-1.0000000000 -936,0,-0.1003972590,1830,0.0965854451,1880,-1.0000000000 -937,0,-1.1484458447,1831,0.1059442237,1881,-1.0000000000 -938,0,1.0887894630,1832,0.0989778936,1882,-1.0000000000 -939,0,-1.0348954201,1833,0.1068197116,1883,-1.0000000000 -940,0,0.5534237027,1834,0.1160275713,1884,-1.0000000000 -941,0,0.9348842502,1835,0.1132629067,1885,-1.0000000000 -942,0,-0.4643164575,1836,0.1065536290,1886,-1.0000000000 -943,0,0.0835817456,1837,0.1003656834,1887,-1.0000000000 -944,0,0.3977578878,1838,0.1060394570,1888,-1.0000000000 -945,0,0.0678663701,1839,0.1013686582,1889,-1.0000000000 -946,0,-0.8597519398,1840,0.1015724093,1890,-1.0000000000 -947,0,1.2035224438,1841,0.1225976050,1891,-1.0000000000 -948,0,0.6223870516,1842,0.1063073128,1892,-1.0000000000 -949,0,-0.6301627755,1843,0.1010998860,1893,-1.0000000000 -950,0,-0.2829226255,1844,0.1127813533,1894,-1.0000000000 -951,0,-0.3967113197,1845,0.0949260890,1895,-1.0000000000 -952,0,-0.4686790705,1846,0.1089941412,1896,-1.0000000000 -953,0,0.1133320630,1847,0.1046472266,1897,-1.0000000000 -954,0,-0.8415259123,1848,0.1142742112,1898,-1.0000000000 -955,0,-0.9505460262,1849,0.1072790921,1899,-1.0000000000 -956,0,0.6531319022,1850,0.0998267680,1900,-1.0000000000 -957,0,-1.1331965923,1851,0.1025341526,1901,-1.0000000000 -958,0,1.3528954983,1852,0.0976141840,1902,-1.0000000000 -959,0,0.4627612829,1853,0.1206339747,1903,-1.0000000000 -960,0,0.8055898547,1854,0.1269099861,1904,-1.0000000000 -961,0,-0.9832527637,1855,0.1577575952,1905,-1.0000000000 -962,0,-0.1737223566,1856,0.1104114428,1906,-1.0000000000 -963,0,-0.0058632195,1857,0.1134437397,1907,-1.0000000000 -964,0,-0.9974204898,1858,0.1002218947,1908,-1.0000000000 -965,0,-1.0862815380,1859,0.1043362990,1909,-1.0000000000 -966,0,0.0564095974,1860,0.1188390180,1910,-1.0000000000 -967,0,1.0363285542,1861,0.1173062101,1911,-1.0000000000 -968,0,-0.7735077143,1862,0.1057077050,1912,-1.0000000000 -969,0,-0.4638699293,1863,0.1058885753,1913,-1.0000000000 -970,0,-0.6389272809,1864,0.1045930758,1914,-1.0000000000 -971,0,-0.0019936562,1865,0.1059108078,1915,-1.0000000000 -972,0,-0.4133639932,1866,0.1102507859,1916,-1.0000000000 -973,0,-0.2886965275,1867,0.1195091382,1917,-1.0000000000 -974,0,0.5997220874,1868,0.1224286780,1918,-1.0000000000 -975,0,1.2392590046,1869,0.1132306159,1919,-1.0000000000 -976,0,-1.6176872253,1870,0.1193554476,1920,-1.0000000000 -977,0,-0.0936360657,1871,0.1110986844,1921,-1.0000000000 -978,0,0.8811743259,1872,0.1029497087,1922,-1.0000000000 -979,0,0.3017511964,1873,0.0968364775,1923,-1.0000000000 -980,0,0.5134924650,1874,0.1179610640,1924,-1.0000000000 -981,0,-0.0661748648,1875,0.1095789969,1925,-1.0000000000 -982,0,-1.3897794485,1876,0.1369069517,1926,-1.0000000000 -983,0,-0.7762956619,1877,0.1096271724,1927,-1.0000000000 -984,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2078,-1.0000000000 -985,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2079,-1.0000000000 -986,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2080,-1.0000000000 -987,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2081,-1.0000000000 -988,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2082,-1.0000000000 -989,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2083,-1.0000000000 -990,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2084,-1.0000000000 -991,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2085,-1.0000000000 -992,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,-1.0000000000,1977,1.0000000000,2086,-1.0000000000 -993,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2087,-1.0000000000 -994,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2088,-1.0000000000 -995,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2089,-1.0000000000 -996,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2090,-1.0000000000 -997,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2091,-1.0000000000 -998,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2092,-1.0000000000 -999,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2093,-1.0000000000 -1000,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2094,-1.0000000000 -1001,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2095,-1.0000000000 -1002,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2096,-1.0000000000 -1003,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2097,-1.0000000000 -1004,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2098,-1.0000000000 -1005,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2099,-1.0000000000 -1006,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2100,-1.0000000000 -1007,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2101,-1.0000000000 -1008,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2102,-1.0000000000 -1009,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,1.0000000000,2103,-1.0000000000 -1010,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2104,-1.0000000000 -1011,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2105,-1.0000000000 -1012,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2106,-1.0000000000 -1013,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,1.0000000000,2107,-1.0000000000 -1014,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2108,-1.0000000000 -1015,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,-1.0000000000,1977,1.0000000000,2109,-1.0000000000 -1016,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2110,-1.0000000000 -1017,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2111,-1.0000000000 -1018,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2112,-1.0000000000 -1019,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2113,-1.0000000000 -1020,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2114,-1.0000000000 -1021,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2115,-1.0000000000 -1022,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2116,-1.0000000000 -1023,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2117,-1.0000000000 -1024,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2118,-1.0000000000 -1025,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2119,-1.0000000000 -1026,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2120,-1.0000000000 -1027,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,1.0000000000,2121,-1.0000000000 -1028,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2122,-1.0000000000 -1029,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2123,-1.0000000000 -1030,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2124,-1.0000000000 -1031,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2125,-1.0000000000 -1032,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2126,-1.0000000000 -1033,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2127,-1.0000000000 -1034,0,-1.5439108610,2078,0.0876089185,2128,-1.0000000000 -1035,0,-0.4739111364,2079,0.0961711332,2129,-1.0000000000 -1036,0,-1.0415468216,2080,0.0937085450,2130,-1.0000000000 -1037,0,0.6139742732,2081,0.0812947005,2131,-1.0000000000 -1038,0,0.5557186604,2082,0.0871866420,2132,-1.0000000000 -1039,0,-0.3893597722,2083,0.0804945678,2133,-1.0000000000 -1040,0,-0.8266534805,2084,0.0812162086,2134,-1.0000000000 -1041,0,0.2232298106,2085,0.0948337018,2135,-1.0000000000 -1042,0,-0.0620028004,2086,0.0776069760,2136,-1.0000000000 -1043,0,1.1303224564,2087,0.0934174880,2137,-1.0000000000 -1044,0,-0.2364211082,2088,0.0797051936,2138,-1.0000000000 -1045,0,-0.9706853628,2089,0.0967904106,2139,-1.0000000000 -1046,0,-0.2923468649,2090,0.0907429308,2140,-1.0000000000 -1047,0,-0.5784704685,2091,0.0755174533,2141,-1.0000000000 -1048,0,-0.0592839196,2092,0.0796242356,2142,-1.0000000000 -1049,0,0.3860493600,2093,0.0900726616,2143,-1.0000000000 -1050,0,1.4812798500,2094,0.0888576508,2144,-1.0000000000 -1051,0,-0.8718976378,2095,0.1031556055,2145,-1.0000000000 -1052,0,-0.1305737942,2096,0.0803080872,2146,-1.0000000000 -1053,0,-0.2846091986,2097,0.0820637047,2147,-1.0000000000 -1054,0,0.1756512523,2098,0.0995460078,2148,-1.0000000000 -1055,0,1.2454360723,2099,0.1092514172,2149,-1.0000000000 -1056,0,1.0246465206,2100,0.0863156915,2150,-1.0000000000 -1057,0,0.2504656911,2101,0.0761504471,2151,-1.0000000000 -1058,0,0.7058990002,2102,0.0841773748,2152,-1.0000000000 -1059,0,0.0360603780,2103,0.0885879919,2153,-1.0000000000 -1060,0,-0.5337175727,2104,0.0816795677,2154,-1.0000000000 -1061,0,1.3386275768,2105,0.0769669712,2155,-1.0000000000 -1062,0,-0.5070524216,2106,0.0816306695,2156,-1.0000000000 -1063,0,-0.7249984741,2107,0.0855440348,2157,-1.0000000000 -1064,0,1.4707089663,2108,0.0787225068,2158,-1.0000000000 -1065,0,0.2180018425,2109,0.0845124200,2159,-1.0000000000 -1066,0,0.6674256325,2110,0.0969409272,2160,-1.0000000000 -1067,0,0.0993419141,2111,0.0880582631,2161,-1.0000000000 -1068,0,0.0910886228,2112,0.0868164375,2162,-1.0000000000 -1069,0,-0.5364635587,2113,0.1057630703,2163,-1.0000000000 -1070,0,1.2253115177,2114,0.0867191926,2164,-1.0000000000 -1071,0,0.8443910480,2115,0.0999500081,2165,-1.0000000000 -1072,0,1.0910279751,2116,0.0895362720,2166,-1.0000000000 -1073,0,0.1953761876,2117,0.0960677862,2167,-1.0000000000 -1074,0,0.4993414283,2118,0.0850909576,2168,-1.0000000000 -1075,0,0.2611379027,2119,0.0794575140,2169,-1.0000000000 -1076,0,-1.7781825066,2120,0.0924188271,2170,-1.0000000000 -1077,0,-0.6430346966,2121,0.0960254595,2171,-1.0000000000 -1078,0,0.7111772299,2122,0.0932400376,2172,-1.0000000000 -1079,0,0.5366181135,2123,0.0883551985,2173,-1.0000000000 -1080,0,1.2333692312,2124,0.0930536613,2174,-1.0000000000 -1081,0,0.7760955095,2125,0.0919722095,2175,-1.0000000000 -1082,0,-0.0114938617,2126,0.0945464075,2176,-1.0000000000 -1083,0,0.8896213770,2127,0.1000391170,2177,-1.0000000000 -1084,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,1.0000000000,2328,-1.0000000000 -1085,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2329,-1.0000000000 -1086,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2330,-1.0000000000 -1087,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2331,-1.0000000000 -1088,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2332,-1.0000000000 -1089,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,1.0000000000,2333,-1.0000000000 -1090,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2334,-1.0000000000 -1091,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2335,-1.0000000000 -1092,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2336,-1.0000000000 -1093,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2337,-1.0000000000 -1094,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2338,-1.0000000000 -1095,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2339,-1.0000000000 -1096,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,-1.0000000000,2340,-1.0000000000 -1097,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2341,-1.0000000000 -1098,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2342,-1.0000000000 -1099,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2343,-1.0000000000 -1100,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2344,-1.0000000000 -1101,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2345,-1.0000000000 -1102,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2346,-1.0000000000 -1103,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2347,-1.0000000000 -1104,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2348,-1.0000000000 -1105,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2349,-1.0000000000 -1106,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2350,-1.0000000000 -1107,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2351,-1.0000000000 -1108,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,-1.0000000000,2352,-1.0000000000 -1109,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2353,-1.0000000000 -1110,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2354,-1.0000000000 -1111,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,1.0000000000,2355,-1.0000000000 -1112,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2356,-1.0000000000 -1113,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2357,-1.0000000000 -1114,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2358,-1.0000000000 -1115,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2359,-1.0000000000 -1116,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2360,-1.0000000000 -1117,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2361,-1.0000000000 -1118,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,1.0000000000,2362,-1.0000000000 -1119,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,1.0000000000,2363,-1.0000000000 -1120,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,1.0000000000,2364,-1.0000000000 -1121,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2365,-1.0000000000 -1122,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,-1.0000000000,2366,-1.0000000000 -1123,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2367,-1.0000000000 -1124,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2368,-1.0000000000 -1125,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2369,-1.0000000000 -1126,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2370,-1.0000000000 -1127,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2371,-1.0000000000 -1128,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2372,-1.0000000000 -1129,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2373,-1.0000000000 -1130,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2374,-1.0000000000 -1131,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2375,-1.0000000000 -1132,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2376,-1.0000000000 -1133,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2377,-1.0000000000 -1134,0,0.0831787437,2328,0.0764585137,2378,-1.0000000000 -1135,0,-0.1364517659,2329,0.0798864216,2379,-1.0000000000 -1136,0,1.8092790842,2330,0.0792033300,2380,-1.0000000000 -1137,0,0.2641986907,2331,0.0732443780,2381,-1.0000000000 -1138,0,1.2061002254,2332,0.0782436728,2382,-1.0000000000 -1139,0,-1.8642137051,2333,0.0861918181,2383,-1.0000000000 -1140,0,-0.1733025759,2334,0.0763822570,2384,-1.0000000000 -1141,0,1.4934809208,2335,0.0766226798,2385,-1.0000000000 -1142,0,-0.1346085519,2336,0.0771160796,2386,-1.0000000000 -1143,0,0.1427569836,2337,0.0810657293,2387,-1.0000000000 -1144,0,-0.0470439941,2338,0.0790032297,2388,-1.0000000000 -1145,0,0.3314089775,2339,0.0826260373,2389,-1.0000000000 -1146,0,0.5605881810,2340,0.0821316242,2390,-1.0000000000 -1147,0,-0.0279953144,2341,0.0758167356,2391,-1.0000000000 -1148,0,0.1289070398,2342,0.0772503018,2392,-1.0000000000 -1149,0,-0.2735776901,2343,0.0737596825,2393,-1.0000000000 -1150,0,0.0808036923,2344,0.0803246498,2394,-1.0000000000 -1151,0,0.3288836777,2345,0.0781317875,2395,-1.0000000000 -1152,0,-0.0946673453,2346,0.0748800337,2396,-1.0000000000 -1153,0,0.1801957637,2347,0.0833257213,2397,-1.0000000000 -1154,0,-0.3167375326,2348,0.0825496614,2398,-1.0000000000 -1155,0,-1.6758612394,2349,0.0833077803,2399,-1.0000000000 -1156,0,0.4785592556,2350,0.0786740705,2400,-1.0000000000 -1157,0,-0.0440198034,2351,0.0839604437,2401,-1.0000000000 -1158,0,-0.4510684013,2352,0.0727607608,2402,-1.0000000000 -1159,0,0.4796656966,2353,0.0754371658,2403,-1.0000000000 -1160,0,-0.1467658728,2354,0.0801599845,2404,-1.0000000000 -1161,0,-1.6980912685,2355,0.0824286491,2405,-1.0000000000 -1162,0,-0.5121878386,2356,0.0887714252,2406,-1.0000000000 -1163,0,-0.1283654422,2357,0.0806707665,2407,-1.0000000000 -1164,0,-0.5782864094,2358,0.0757020339,2408,-1.0000000000 -1165,0,-1.3219553232,2359,0.0830138251,2409,-1.0000000000 -1166,0,1.3010077477,2360,0.0867237747,2410,-1.0000000000 -1167,0,1.8038090467,2361,0.0811277553,2411,-1.0000000000 -1168,0,1.0391250849,2362,0.0832474679,2412,-1.0000000000 -1169,0,-0.8869209290,2363,0.0883564204,2413,-1.0000000000 -1170,0,0.4410263300,2364,0.0816484168,2414,-1.0000000000 -1171,0,0.5588466525,2365,0.0827038214,2415,-1.0000000000 -1172,0,-0.4485054016,2366,0.0719914138,2416,-1.0000000000 -1173,0,0.2402071357,2367,0.0743149817,2417,-1.0000000000 -1174,0,-1.7117775679,2368,0.0778249726,2418,-1.0000000000 -1175,0,-0.2367737740,2369,0.0717907771,2419,-1.0000000000 -1176,0,0.0982874855,2370,0.0753626451,2420,-1.0000000000 -1177,0,-0.0940445662,2371,0.0761000440,2421,-1.0000000000 -1178,0,-0.0428520180,2372,0.0847094953,2422,-1.0000000000 -1179,0,0.5425710678,2373,0.0811219513,2423,-1.0000000000 -1180,0,0.4396020770,2374,0.0789181367,2424,-1.0000000000 -1181,0,0.3062215745,2375,0.0784865990,2425,-1.0000000000 -1182,0,-0.2372326851,2376,0.0754072890,2426,-1.0000000000 -1183,0,0.4145061076,2377,0.0873605311,2427,-1.0000000000 -1184,0,-0.0000000000,2428,1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,-1.0000000000,2433,-1.0000000000,2434,-1.0000000000,2435,1.0000000000,2436,1.0000000000,2437,-1.0000000000,2438,1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,-1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,-1.0000000000,2445,-1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,-1.0000000000,2449,1.0000000000,2450,1.0000000000,2451,-1.0000000000,2452,-1.0000000000,2453,1.0000000000,2454,1.0000000000,2455,1.0000000000,2456,-1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,-1.0000000000,2469,1.0000000000,2470,1.0000000000,2471,-1.0000000000,2472,1.0000000000,2473,1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,1.0000000000,2578,-1.0000000000 -1185,0,-0.0000000000,2428,1.0000000000,2429,-1.0000000000,2430,-1.0000000000,2431,1.0000000000,2432,1.0000000000,2433,-1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,1.0000000000,2441,1.0000000000,2442,-1.0000000000,2443,1.0000000000,2444,1.0000000000,2445,-1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,-1.0000000000,2449,1.0000000000,2450,-1.0000000000,2451,-1.0000000000,2452,1.0000000000,2453,-1.0000000000,2454,-1.0000000000,2455,-1.0000000000,2456,-1.0000000000,2457,-1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,1.0000000000,2462,-1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,1.0000000000,2466,-1.0000000000,2467,-1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,1.0000000000,2473,1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,1.0000000000,2579,-1.0000000000 -1186,0,-0.0000000000,2428,-1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,-1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,-1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,1.0000000000,2440,-1.0000000000,2441,1.0000000000,2442,1.0000000000,2443,-1.0000000000,2444,-1.0000000000,2445,1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,-1.0000000000,2449,-1.0000000000,2450,-1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,-1.0000000000,2454,-1.0000000000,2455,1.0000000000,2456,1.0000000000,2457,1.0000000000,2458,-1.0000000000,2459,-1.0000000000,2460,-1.0000000000,2461,1.0000000000,2462,-1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,-1.0000000000,2473,-1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,-1.0000000000,2580,-1.0000000000 -1187,0,-0.0000000000,2428,-1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,-1.0000000000,2437,-1.0000000000,2438,1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,-1.0000000000,2442,1.0000000000,2443,-1.0000000000,2444,-1.0000000000,2445,1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,-1.0000000000,2449,-1.0000000000,2450,1.0000000000,2451,-1.0000000000,2452,-1.0000000000,2453,1.0000000000,2454,-1.0000000000,2455,1.0000000000,2456,-1.0000000000,2457,1.0000000000,2458,-1.0000000000,2459,-1.0000000000,2460,1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,1.0000000000,2464,-1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,-1.0000000000,2469,-1.0000000000,2470,1.0000000000,2471,-1.0000000000,2472,-1.0000000000,2473,1.0000000000,2474,1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,1.0000000000,2581,-1.0000000000 -1188,0,-0.0000000000,2428,-1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,-1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,1.0000000000,2436,1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,-1.0000000000,2445,1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,-1.0000000000,2449,-1.0000000000,2450,-1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,-1.0000000000,2454,-1.0000000000,2455,1.0000000000,2456,-1.0000000000,2457,-1.0000000000,2458,-1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,-1.0000000000,2464,1.0000000000,2465,1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,1.0000000000,2469,-1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,1.0000000000,2473,-1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,-1.0000000000,2582,-1.0000000000 -1189,0,-0.0000000000,2428,1.0000000000,2429,1.0000000000,2430,-1.0000000000,2431,-1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,1.0000000000,2435,1.0000000000,2436,1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,-1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,-1.0000000000,2445,-1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,1.0000000000,2449,-1.0000000000,2450,1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,1.0000000000,2454,-1.0000000000,2455,-1.0000000000,2456,1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,1.0000000000,2469,-1.0000000000,2470,-1.0000000000,2471,-1.0000000000,2472,1.0000000000,2473,-1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,-1.0000000000,2583,-1.0000000000 -1190,0,-0.0000000000,2428,1.0000000000,2429,-1.0000000000,2430,-1.0000000000,2431,1.0000000000,2432,1.0000000000,2433,-1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,1.0000000000,2437,-1.0000000000,2438,1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,-1.0000000000,2445,-1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,-1.0000000000,2449,-1.0000000000,2450,-1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,-1.0000000000,2454,1.0000000000,2455,-1.0000000000,2456,1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,-1.0000000000,2460,-1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,1.0000000000,2464,-1.0000000000,2465,-1.0000000000,2466,1.0000000000,2467,1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,1.0000000000,2471,1.0000000000,2472,-1.0000000000,2473,-1.0000000000,2474,1.0000000000,2475,-1.0000000000,2476,-1.0000000000,2477,-1.0000000000,2584,-1.0000000000 -1191,0,-0.0000000000,2428,1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,-1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,1.0000000000,2441,1.0000000000,2442,-1.0000000000,2443,1.0000000000,2444,1.0000000000,2445,-1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,-1.0000000000,2449,1.0000000000,2450,-1.0000000000,2451,-1.0000000000,2452,1.0000000000,2453,-1.0000000000,2454,1.0000000000,2455,-1.0000000000,2456,-1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,1.0000000000,2461,1.0000000000,2462,-1.0000000000,2463,1.0000000000,2464,-1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,-1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,-1.0000000000,2473,1.0000000000,2474,1.0000000000,2475,-1.0000000000,2476,-1.0000000000,2477,1.0000000000,2585,-1.0000000000 -1192,0,-0.0000000000,2428,1.0000000000,2429,1.0000000000,2430,1.0000000000,2431,-1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,1.0000000000,2435,1.0000000000,2436,-1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,1.0000000000,2440,-1.0000000000,2441,1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,1.0000000000,2445,-1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,1.0000000000,2449,1.0000000000,2450,-1.0000000000,2451,1.0000000000,2452,1.0000000000,2453,-1.0000000000,2454,1.0000000000,2455,-1.0000000000,2456,1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,1.0000000000,2462,1.0000000000,2463,-1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,-1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,-1.0000000000,2473,-1.0000000000,2474,1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,-1.0000000000,2586,-1.0000000000 -1193,0,-0.0000000000,2428,1.0000000000,2429,1.0000000000,2430,1.0000000000,2431,-1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,-1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,-1.0000000000,2442,-1.0000000000,2443,1.0000000000,2444,1.0000000000,2445,1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,1.0000000000,2449,1.0000000000,2450,1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,1.0000000000,2454,-1.0000000000,2455,1.0000000000,2456,-1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,1.0000000000,2462,-1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,-1.0000000000,2468,1.0000000000,2469,-1.0000000000,2470,-1.0000000000,2471,-1.0000000000,2472,-1.0000000000,2473,1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,1.0000000000,2587,-1.0000000000 -1194,0,-0.2191663980,2578,0.0748265833,2588,-1.0000000000 -1195,0,0.1379462183,2579,0.0680898950,2589,-1.0000000000 -1196,0,0.3651287258,2580,0.0697829127,2590,-1.0000000000 -1197,0,-0.3790612817,2581,0.0699527264,2591,-1.0000000000 -1198,0,0.0887304395,2582,0.0746282265,2592,-1.0000000000 -1199,0,0.1295915544,2583,0.0643937513,2593,-1.0000000000 -1200,0,0.3341619074,2584,0.0683351308,2594,-1.0000000000 -1201,0,-0.0701742172,2585,0.0764223784,2595,-1.0000000000 -1202,0,0.2174075395,2586,0.0778548196,2596,-1.0000000000 -1203,0,0.3690969944,2587,0.0806291550,2597,-1.0000000000 -1204,0,-0.0000000000,2598,1.0000000000,2599,1.0000000000,2600,1.0000000000,2601,-1.0000000000,2602,1.0000000000,2603,1.0000000000,2604,-1.0000000000,2605,-1.0000000000,2606,1.0000000000,2607,1.0000000000,2628,-1.0000000000 -1205,0,-0.0000000000,2598,1.0000000000,2599,-1.0000000000,2600,-1.0000000000,2601,1.0000000000,2602,-1.0000000000,2603,1.0000000000,2604,-1.0000000000,2605,-1.0000000000,2606,-1.0000000000,2607,1.0000000000,2629,-1.0000000000 -1206,0,-0.0000000000,2598,1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,1.0000000000,2602,1.0000000000,2603,-1.0000000000,2604,-1.0000000000,2605,1.0000000000,2606,-1.0000000000,2607,1.0000000000,2630,-1.0000000000 -1207,0,-0.0000000000,2598,1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,1.0000000000,2603,1.0000000000,2604,1.0000000000,2605,-1.0000000000,2606,-1.0000000000,2607,-1.0000000000,2631,-1.0000000000 -1208,0,-0.0000000000,2598,-1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,-1.0000000000,2603,-1.0000000000,2604,-1.0000000000,2605,1.0000000000,2606,-1.0000000000,2607,1.0000000000,2632,-1.0000000000 -1209,0,-0.0000000000,2598,-1.0000000000,2599,1.0000000000,2600,1.0000000000,2601,-1.0000000000,2602,1.0000000000,2603,1.0000000000,2604,-1.0000000000,2605,1.0000000000,2606,1.0000000000,2607,1.0000000000,2633,-1.0000000000 -1210,0,-0.0000000000,2598,-1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,-1.0000000000,2603,-1.0000000000,2604,-1.0000000000,2605,1.0000000000,2606,1.0000000000,2607,-1.0000000000,2634,-1.0000000000 -1211,0,-0.0000000000,2598,1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,-1.0000000000,2603,1.0000000000,2604,1.0000000000,2605,1.0000000000,2606,-1.0000000000,2607,1.0000000000,2635,-1.0000000000 -1212,0,-0.0000000000,2598,-1.0000000000,2599,-1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,-1.0000000000,2603,1.0000000000,2604,-1.0000000000,2605,-1.0000000000,2606,1.0000000000,2607,-1.0000000000,2636,-1.0000000000 -1213,0,-0.0000000000,2598,-1.0000000000,2599,1.0000000000,2600,1.0000000000,2601,1.0000000000,2602,1.0000000000,2603,-1.0000000000,2604,-1.0000000000,2605,-1.0000000000,2606,-1.0000000000,2607,-1.0000000000,2637,-1.0000000000 -1214,0,0.0786820799,2628,0.2380353510,2638,-1.0000000000 -1215,0,0.2452328354,2629,0.2767313421,2639,-1.0000000000 -1216,0,0.4382847250,2630,0.2744768858,2640,-1.0000000000 -1217,0,0.1370536983,2631,0.2933354974,2641,-1.0000000000 -1218,0,-0.0251469873,2632,0.2791853845,2642,-1.0000000000 -1219,0,-0.2257008702,2633,0.2494552583,2643,-1.0000000000 -1220,0,-0.0018014926,2634,0.3040358126,2644,-1.0000000000 -1221,0,-0.0473403111,2635,0.2666788399,2645,-1.0000000000 -1222,0,-0.3460843861,2636,0.2826097310,2646,-1.0000000000 -1223,0,0.0315086767,2637,0.2692045569,2647,-1.0000000000 -1224,0,-0.0000000000,2648,-1.0000000000,2649,-1.0000000000,2650,-1.0000000000,2651,-1.0000000000,2652,1.0000000000,2653,1.0000000000,2654,1.0000000000,2655,1.0000000000,2656,1.0000000000,2657,-1.0000000000,784,-1.0000000000 -1225,0,-0.0000000000,2648,-1.0000000000,2649,-1.0000000000,2650,-1.0000000000,2651,-1.0000000000,2652,-1.0000000000,2653,-1.0000000000,2654,-1.0000000000,2655,-1.0000000000,2656,-1.0000000000,2657,1.0000000000,785,-1.0000000000 -1226,0,-0.0000000000,2648,1.0000000000,2649,-1.0000000000,2650,-1.0000000000,2651,1.0000000000,2652,-1.0000000000,2653,1.0000000000,2654,1.0000000000,2655,-1.0000000000,2656,1.0000000000,2657,1.0000000000,786,-1.0000000000 -1227,0,-0.0000000000,2648,1.0000000000,2649,-1.0000000000,2650,1.0000000000,2651,-1.0000000000,2652,1.0000000000,2653,1.0000000000,2654,-1.0000000000,2655,-1.0000000000,2656,-1.0000000000,2657,1.0000000000,787,-1.0000000000 -1228,0,-0.0000000000,2648,-1.0000000000,2649,1.0000000000,2650,-1.0000000000,2651,1.0000000000,2652,-1.0000000000,2653,-1.0000000000,2654,-1.0000000000,2655,1.0000000000,2656,1.0000000000,2657,1.0000000000,788,-1.0000000000 -1229,0,-0.0000000000,2648,1.0000000000,2649,1.0000000000,2650,1.0000000000,2651,1.0000000000,2652,1.0000000000,2653,1.0000000000,2654,-1.0000000000,2655,1.0000000000,2656,1.0000000000,2657,-1.0000000000,789,-1.0000000000 -1230,0,-0.0000000000,2648,-1.0000000000,2649,-1.0000000000,2650,1.0000000000,2651,1.0000000000,2652,1.0000000000,2653,-1.0000000000,2654,1.0000000000,2655,1.0000000000,2656,-1.0000000000,2657,1.0000000000,790,-1.0000000000 -1231,0,-0.0000000000,2648,-1.0000000000,2649,1.0000000000,2650,1.0000000000,2651,-1.0000000000,2652,1.0000000000,2653,-1.0000000000,2654,1.0000000000,2655,-1.0000000000,2656,1.0000000000,2657,1.0000000000,791,-1.0000000000 -1232,0,-0.0000000000,2648,1.0000000000,2649,-1.0000000000,2650,-1.0000000000,2651,1.0000000000,2652,-1.0000000000,2653,1.0000000000,2654,-1.0000000000,2655,1.0000000000,2656,-1.0000000000,2657,-1.0000000000,792,-1.0000000000 -1233,0,-0.0000000000,2648,1.0000000000,2649,1.0000000000,2650,-1.0000000000,2651,-1.0000000000,2652,-1.0000000000,2653,1.0000000000,2654,-1.0000000000,2655,-1.0000000000,2656,1.0000000000,2657,-1.0000000000,793,-1.0000000000 -1234,2,0,789,-1.0000000000,788,1.0000000000 -0,sign,1678,1628 -1,sign,1679,1629 -2,sign,1680,1630 -3,sign,1681,1631 -4,sign,1682,1632 -5,sign,1683,1633 -6,sign,1684,1634 -7,sign,1685,1635 -8,sign,1686,1636 -9,sign,1687,1637 -10,sign,1688,1638 -11,sign,1689,1639 -12,sign,1690,1640 -13,sign,1691,1641 -14,sign,1692,1642 -15,sign,1693,1643 -16,sign,1694,1644 -17,sign,1695,1645 -18,sign,1696,1646 -19,sign,1697,1647 -20,sign,1698,1648 -21,sign,1699,1649 -22,sign,1700,1650 -23,sign,1701,1651 -24,sign,1702,1652 -25,sign,1703,1653 -26,sign,1704,1654 -27,sign,1705,1655 -28,sign,1706,1656 -29,sign,1707,1657 -30,sign,1708,1658 -31,sign,1709,1659 -32,sign,1710,1660 -33,sign,1711,1661 -34,sign,1712,1662 -35,sign,1713,1663 -36,sign,1714,1664 -37,sign,1715,1665 -38,sign,1716,1666 -39,sign,1717,1667 -40,sign,1718,1668 -41,sign,1719,1669 -42,sign,1720,1670 -43,sign,1721,1671 -44,sign,1722,1672 -45,sign,1723,1673 -46,sign,1724,1674 -47,sign,1725,1675 -48,sign,1726,1676 -49,sign,1727,1677 -50,sign,1928,1878 -51,sign,1929,1879 -52,sign,1930,1880 -53,sign,1931,1881 -54,sign,1932,1882 -55,sign,1933,1883 -56,sign,1934,1884 -57,sign,1935,1885 -58,sign,1936,1886 -59,sign,1937,1887 -60,sign,1938,1888 -61,sign,1939,1889 -62,sign,1940,1890 -63,sign,1941,1891 -64,sign,1942,1892 -65,sign,1943,1893 -66,sign,1944,1894 -67,sign,1945,1895 -68,sign,1946,1896 -69,sign,1947,1897 -70,sign,1948,1898 -71,sign,1949,1899 -72,sign,1950,1900 -73,sign,1951,1901 -74,sign,1952,1902 -75,sign,1953,1903 -76,sign,1954,1904 -77,sign,1955,1905 -78,sign,1956,1906 -79,sign,1957,1907 -80,sign,1958,1908 -81,sign,1959,1909 -82,sign,1960,1910 -83,sign,1961,1911 -84,sign,1962,1912 -85,sign,1963,1913 -86,sign,1964,1914 -87,sign,1965,1915 -88,sign,1966,1916 -89,sign,1967,1917 -90,sign,1968,1918 -91,sign,1969,1919 -92,sign,1970,1920 -93,sign,1971,1921 -94,sign,1972,1922 -95,sign,1973,1923 -96,sign,1974,1924 -97,sign,1975,1925 -98,sign,1976,1926 -99,sign,1977,1927 -100,sign,2178,2128 -101,sign,2179,2129 -102,sign,2180,2130 -103,sign,2181,2131 -104,sign,2182,2132 -105,sign,2183,2133 -106,sign,2184,2134 -107,sign,2185,2135 -108,sign,2186,2136 -109,sign,2187,2137 -110,sign,2188,2138 -111,sign,2189,2139 -112,sign,2190,2140 -113,sign,2191,2141 -114,sign,2192,2142 -115,sign,2193,2143 -116,sign,2194,2144 -117,sign,2195,2145 -118,sign,2196,2146 -119,sign,2197,2147 -120,sign,2198,2148 -121,sign,2199,2149 -122,sign,2200,2150 -123,sign,2201,2151 -124,sign,2202,2152 -125,sign,2203,2153 -126,sign,2204,2154 -127,sign,2205,2155 -128,sign,2206,2156 -129,sign,2207,2157 -130,sign,2208,2158 -131,sign,2209,2159 -132,sign,2210,2160 -133,sign,2211,2161 -134,sign,2212,2162 -135,sign,2213,2163 -136,sign,2214,2164 -137,sign,2215,2165 -138,sign,2216,2166 -139,sign,2217,2167 -140,sign,2218,2168 -141,sign,2219,2169 -142,sign,2220,2170 -143,sign,2221,2171 -144,sign,2222,2172 -145,sign,2223,2173 -146,sign,2224,2174 -147,sign,2225,2175 -148,sign,2226,2176 -149,sign,2227,2177 -150,sign,2428,2378 -151,sign,2429,2379 -152,sign,2430,2380 -153,sign,2431,2381 -154,sign,2432,2382 -155,sign,2433,2383 -156,sign,2434,2384 -157,sign,2435,2385 -158,sign,2436,2386 -159,sign,2437,2387 -160,sign,2438,2388 -161,sign,2439,2389 -162,sign,2440,2390 -163,sign,2441,2391 -164,sign,2442,2392 -165,sign,2443,2393 -166,sign,2444,2394 -167,sign,2445,2395 -168,sign,2446,2396 -169,sign,2447,2397 -170,sign,2448,2398 -171,sign,2449,2399 -172,sign,2450,2400 -173,sign,2451,2401 -174,sign,2452,2402 -175,sign,2453,2403 -176,sign,2454,2404 -177,sign,2455,2405 -178,sign,2456,2406 -179,sign,2457,2407 -180,sign,2458,2408 -181,sign,2459,2409 -182,sign,2460,2410 -183,sign,2461,2411 -184,sign,2462,2412 -185,sign,2463,2413 -186,sign,2464,2414 -187,sign,2465,2415 -188,sign,2466,2416 -189,sign,2467,2417 -190,sign,2468,2418 -191,sign,2469,2419 -192,sign,2470,2420 -193,sign,2471,2421 -194,sign,2472,2422 -195,sign,2473,2423 -196,sign,2474,2424 -197,sign,2475,2425 -198,sign,2476,2426 -199,sign,2477,2427 -200,sign,2598,2588 -201,sign,2599,2589 -202,sign,2600,2590 -203,sign,2601,2591 -204,sign,2602,2592 -205,sign,2603,2593 -206,sign,2604,2594 -207,sign,2605,2595 -208,sign,2606,2596 -209,sign,2607,2597 -210,sign,2648,2638 -211,sign,2649,2639 -212,sign,2650,2640 -213,sign,2651,2641 -214,sign,2652,2642 -215,sign,2653,2643 -216,sign,2654,2644 -217,sign,2655,2645 -218,sign,2656,2646 -219,sign,2657,2647 From 6837b42d6d258057e7429df1e7aec8cf8f580725 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Thu, 7 Dec 2023 14:58:07 +0200 Subject: [PATCH 119/165] Revert "Remove problematic rtest" This reverts commit f3c7a7365e1e192e2129c035116065f59cd228c1. --- regress/regress1/CMakeLists.txt | 3 +- .../input_queries/deep_6_index_5525.ipq | 4264 +++++++++++++++++ 2 files changed, 4266 insertions(+), 1 deletion(-) create mode 100644 regress/regress1/input_queries/deep_6_index_5525.ipq diff --git a/regress/regress1/CMakeLists.txt b/regress/regress1/CMakeLists.txt index 012233f8d2..0470a2f53f 100644 --- a/regress/regress1/CMakeLists.txt +++ b/regress/regress1/CMakeLists.txt @@ -164,4 +164,5 @@ marabou_add_input_query_test(1 ACASXU_maxtest2.ipq unsat "--prove-unsat" "ipq") # Sign marabou_add_input_query_test(1 deep_6_index_5566.ipq unsat "--prove-unsat" "ipq") marabou_add_input_query_test(1 deep_6_index_5567.ipq unsat "--prove-unsat" "ipq") -marabou_add_input_query_test(1 deep_6_index_7779.ipq unsat "--prove-unsat" "ipq") +marabou_add_input_query_test(1 deep_6_index_5525.ipq unsat "--prove-unsat" "ipq") +marabou_add_input_query_test(1 deep_6_index_7779.ipq unsat "--prove-unsat" "ipq") \ No newline at end of file diff --git a/regress/regress1/input_queries/deep_6_index_5525.ipq b/regress/regress1/input_queries/deep_6_index_5525.ipq new file mode 100644 index 0000000000..43181e444c --- /dev/null +++ b/regress/regress1/input_queries/deep_6_index_5525.ipq @@ -0,0 +1,4264 @@ +2678 +1004 +1004 +1235 +220 +784 +0,0 +1,1 +2,2 +3,3 +4,4 +5,5 +6,6 +7,7 +8,8 +9,9 +10,10 +11,11 +12,12 +13,13 +14,14 +15,15 +16,16 +17,17 +18,18 +19,19 +20,20 +21,21 +22,22 +23,23 +24,24 +25,25 +26,26 +27,27 +28,28 +29,29 +30,30 +31,31 +32,32 +33,33 +34,34 +35,35 +36,36 +37,37 +38,38 +39,39 +40,40 +41,41 +42,42 +43,43 +44,44 +45,45 +46,46 +47,47 +48,48 +49,49 +50,50 +51,51 +52,52 +53,53 +54,54 +55,55 +56,56 +57,57 +58,58 +59,59 +60,60 +61,61 +62,62 +63,63 +64,64 +65,65 +66,66 +67,67 +68,68 +69,69 +70,70 +71,71 +72,72 +73,73 +74,74 +75,75 +76,76 +77,77 +78,78 +79,79 +80,80 +81,81 +82,82 +83,83 +84,84 +85,85 +86,86 +87,87 +88,88 +89,89 +90,90 +91,91 +92,92 +93,93 +94,94 +95,95 +96,96 +97,97 +98,98 +99,99 +100,100 +101,101 +102,102 +103,103 +104,104 +105,105 +106,106 +107,107 +108,108 +109,109 +110,110 +111,111 +112,112 +113,113 +114,114 +115,115 +116,116 +117,117 +118,118 +119,119 +120,120 +121,121 +122,122 +123,123 +124,124 +125,125 +126,126 +127,127 +128,128 +129,129 +130,130 +131,131 +132,132 +133,133 +134,134 +135,135 +136,136 +137,137 +138,138 +139,139 +140,140 +141,141 +142,142 +143,143 +144,144 +145,145 +146,146 +147,147 +148,148 +149,149 +150,150 +151,151 +152,152 +153,153 +154,154 +155,155 +156,156 +157,157 +158,158 +159,159 +160,160 +161,161 +162,162 +163,163 +164,164 +165,165 +166,166 +167,167 +168,168 +169,169 +170,170 +171,171 +172,172 +173,173 +174,174 +175,175 +176,176 +177,177 +178,178 +179,179 +180,180 +181,181 +182,182 +183,183 +184,184 +185,185 +186,186 +187,187 +188,188 +189,189 +190,190 +191,191 +192,192 +193,193 +194,194 +195,195 +196,196 +197,197 +198,198 +199,199 +200,200 +201,201 +202,202 +203,203 +204,204 +205,205 +206,206 +207,207 +208,208 +209,209 +210,210 +211,211 +212,212 +213,213 +214,214 +215,215 +216,216 +217,217 +218,218 +219,219 +220,220 +221,221 +222,222 +223,223 +224,224 +225,225 +226,226 +227,227 +228,228 +229,229 +230,230 +231,231 +232,232 +233,233 +234,234 +235,235 +236,236 +237,237 +238,238 +239,239 +240,240 +241,241 +242,242 +243,243 +244,244 +245,245 +246,246 +247,247 +248,248 +249,249 +250,250 +251,251 +252,252 +253,253 +254,254 +255,255 +256,256 +257,257 +258,258 +259,259 +260,260 +261,261 +262,262 +263,263 +264,264 +265,265 +266,266 +267,267 +268,268 +269,269 +270,270 +271,271 +272,272 +273,273 +274,274 +275,275 +276,276 +277,277 +278,278 +279,279 +280,280 +281,281 +282,282 +283,283 +284,284 +285,285 +286,286 +287,287 +288,288 +289,289 +290,290 +291,291 +292,292 +293,293 +294,294 +295,295 +296,296 +297,297 +298,298 +299,299 +300,300 +301,301 +302,302 +303,303 +304,304 +305,305 +306,306 +307,307 +308,308 +309,309 +310,310 +311,311 +312,312 +313,313 +314,314 +315,315 +316,316 +317,317 +318,318 +319,319 +320,320 +321,321 +322,322 +323,323 +324,324 +325,325 +326,326 +327,327 +328,328 +329,329 +330,330 +331,331 +332,332 +333,333 +334,334 +335,335 +336,336 +337,337 +338,338 +339,339 +340,340 +341,341 +342,342 +343,343 +344,344 +345,345 +346,346 +347,347 +348,348 +349,349 +350,350 +351,351 +352,352 +353,353 +354,354 +355,355 +356,356 +357,357 +358,358 +359,359 +360,360 +361,361 +362,362 +363,363 +364,364 +365,365 +366,366 +367,367 +368,368 +369,369 +370,370 +371,371 +372,372 +373,373 +374,374 +375,375 +376,376 +377,377 +378,378 +379,379 +380,380 +381,381 +382,382 +383,383 +384,384 +385,385 +386,386 +387,387 +388,388 +389,389 +390,390 +391,391 +392,392 +393,393 +394,394 +395,395 +396,396 +397,397 +398,398 +399,399 +400,400 +401,401 +402,402 +403,403 +404,404 +405,405 +406,406 +407,407 +408,408 +409,409 +410,410 +411,411 +412,412 +413,413 +414,414 +415,415 +416,416 +417,417 +418,418 +419,419 +420,420 +421,421 +422,422 +423,423 +424,424 +425,425 +426,426 +427,427 +428,428 +429,429 +430,430 +431,431 +432,432 +433,433 +434,434 +435,435 +436,436 +437,437 +438,438 +439,439 +440,440 +441,441 +442,442 +443,443 +444,444 +445,445 +446,446 +447,447 +448,448 +449,449 +450,450 +451,451 +452,452 +453,453 +454,454 +455,455 +456,456 +457,457 +458,458 +459,459 +460,460 +461,461 +462,462 +463,463 +464,464 +465,465 +466,466 +467,467 +468,468 +469,469 +470,470 +471,471 +472,472 +473,473 +474,474 +475,475 +476,476 +477,477 +478,478 +479,479 +480,480 +481,481 +482,482 +483,483 +484,484 +485,485 +486,486 +487,487 +488,488 +489,489 +490,490 +491,491 +492,492 +493,493 +494,494 +495,495 +496,496 +497,497 +498,498 +499,499 +500,500 +501,501 +502,502 +503,503 +504,504 +505,505 +506,506 +507,507 +508,508 +509,509 +510,510 +511,511 +512,512 +513,513 +514,514 +515,515 +516,516 +517,517 +518,518 +519,519 +520,520 +521,521 +522,522 +523,523 +524,524 +525,525 +526,526 +527,527 +528,528 +529,529 +530,530 +531,531 +532,532 +533,533 +534,534 +535,535 +536,536 +537,537 +538,538 +539,539 +540,540 +541,541 +542,542 +543,543 +544,544 +545,545 +546,546 +547,547 +548,548 +549,549 +550,550 +551,551 +552,552 +553,553 +554,554 +555,555 +556,556 +557,557 +558,558 +559,559 +560,560 +561,561 +562,562 +563,563 +564,564 +565,565 +566,566 +567,567 +568,568 +569,569 +570,570 +571,571 +572,572 +573,573 +574,574 +575,575 +576,576 +577,577 +578,578 +579,579 +580,580 +581,581 +582,582 +583,583 +584,584 +585,585 +586,586 +587,587 +588,588 +589,589 +590,590 +591,591 +592,592 +593,593 +594,594 +595,595 +596,596 +597,597 +598,598 +599,599 +600,600 +601,601 +602,602 +603,603 +604,604 +605,605 +606,606 +607,607 +608,608 +609,609 +610,610 +611,611 +612,612 +613,613 +614,614 +615,615 +616,616 +617,617 +618,618 +619,619 +620,620 +621,621 +622,622 +623,623 +624,624 +625,625 +626,626 +627,627 +628,628 +629,629 +630,630 +631,631 +632,632 +633,633 +634,634 +635,635 +636,636 +637,637 +638,638 +639,639 +640,640 +641,641 +642,642 +643,643 +644,644 +645,645 +646,646 +647,647 +648,648 +649,649 +650,650 +651,651 +652,652 +653,653 +654,654 +655,655 +656,656 +657,657 +658,658 +659,659 +660,660 +661,661 +662,662 +663,663 +664,664 +665,665 +666,666 +667,667 +668,668 +669,669 +670,670 +671,671 +672,672 +673,673 +674,674 +675,675 +676,676 +677,677 +678,678 +679,679 +680,680 +681,681 +682,682 +683,683 +684,684 +685,685 +686,686 +687,687 +688,688 +689,689 +690,690 +691,691 +692,692 +693,693 +694,694 +695,695 +696,696 +697,697 +698,698 +699,699 +700,700 +701,701 +702,702 +703,703 +704,704 +705,705 +706,706 +707,707 +708,708 +709,709 +710,710 +711,711 +712,712 +713,713 +714,714 +715,715 +716,716 +717,717 +718,718 +719,719 +720,720 +721,721 +722,722 +723,723 +724,724 +725,725 +726,726 +727,727 +728,728 +729,729 +730,730 +731,731 +732,732 +733,733 +734,734 +735,735 +736,736 +737,737 +738,738 +739,739 +740,740 +741,741 +742,742 +743,743 +744,744 +745,745 +746,746 +747,747 +748,748 +749,749 +750,750 +751,751 +752,752 +753,753 +754,754 +755,755 +756,756 +757,757 +758,758 +759,759 +760,760 +761,761 +762,762 +763,763 +764,764 +765,765 +766,766 +767,767 +768,768 +769,769 +770,770 +771,771 +772,772 +773,773 +774,774 +775,775 +776,776 +777,777 +778,778 +779,779 +780,780 +781,781 +782,782 +783,783 +10 +0,784 +1,785 +2,786 +3,787 +4,788 +5,789 +6,790 +7,791 +8,792 +9,793 +0,0 +1,0 +2,0 +3,0 +4,0 +5,0 +6,0 +7,0 +8,0 +9,0 +10,0 +11,0 +12,0 +13,0 +14,0 +15,0 +16,0 +17,0 +18,0 +19,0 +20,0 +21,0 +22,0 +23,0 +24,0 +25,0 +26,0 +27,0 +28,0 +29,0 +30,0 +31,0 +32,0 +33,0 +34,0 +35,0 +36,0 +37,0 +38,0 +39,0 +40,0 +41,0 +42,0 +43,0 +44,0 +45,0 +46,0 +47,0 +48,0 +49,0 +50,0 +51,0 +52,0 +53,0 +54,0 +55,0 +56,0 +57,0 +58,0 +59,0 +60,0 +61,0 +62,0 +63,0 +64,0 +65,0 +66,0 +67,0 +68,0 +69,0 +70,0 +71,0 +72,0 +73,0 +74,0 +75,0 +76,0 +77,0 +78,0 +79,0 +80,0 +81,0 +82,0 +83,0 +84,0 +85,0 +86,0 +87,0 +88,0 +89,0 +90,0 +91,0 +92,0 +93,0 +94,0 +95,0 +96,0 +97,0 +98,0 +99,0 +100,0 +101,0 +102,0 +103,0 +104,0 +105,0 +106,0 +107,0 +108,0 +109,0 +110,0 +111,0 +112,0 +113,0 +114,0 +115,0 +116,0 +117,0 +118,0 +119,0 +120,0 +121,0 +122,0 +123,0 +124,0 +125,0 +126,0 +127,0 +128,0 +129,0 +130,0 +131,0 +132,0 +133,0 +134,0 +135,0 +136,0 +137,0 +138,0 +139,0 +140,0 +141,0 +142,0 +143,0 +144,0 +145,0 +146,0 +147,0 +148,0 +149,0 +150,0 +151,0 +152,0 +153,0.02666973039215686 +154,0.807061887254902 +155,0.803140318627451 +156,0.08157169117647059 +157,0 +158,0 +159,0 +160,0 +161,0 +162,0 +163,0 +164,0 +165,0 +166,0 +167,0 +168,0 +169,0 +170,0 +171,0 +172,0 +173,0 +174,0 +175,0 +176,0 +177,0 +178,0 +179,0 +180,0 +181,0.6815716911764707 +182,0.9952971813725491 +183,0.9913756127450981 +184,0.6894148284313726 +185,0 +186,0 +187,0 +188,0 +189,0 +190,0 +191,0 +192,0 +193,0 +194,0 +195,0 +196,0 +197,0 +198,0 +199,0 +200,0 +201,0 +202,0 +203,0 +204,0 +205,0 +206,0 +207,0 +208,0.4345128676470588 +209,0.9796109068627451 +210,0.9952971813725491 +211,0.9913756127450981 +212,0.7600030637254902 +213,0 +214,0 +215,0 +216,0 +217,0 +218,0 +219,0 +220,0 +221,0 +222,0 +223,0 +224,0 +225,0 +226,0 +227,0 +228,0 +229,0 +230,0 +231,0 +232,0 +233,0 +234,0 +235,0.09725796568627451 +236,0.9325520833333334 +237,0.9913756127450981 +238,0.9952971813725491 +239,0.9913756127450981 +240,0.9011795343137255 +241,0.04627757352941177 +242,0 +243,0 +244,0 +245,0 +246,0 +247,0 +248,0 +249,0 +250,0 +251,0 +252,0 +253,0 +254,0 +255,0 +256,0 +257,0 +258,0 +259,0 +260,0 +261,0 +262,0 +263,0.5756893382352941 +264,0.9952971813725491 +265,0.9952971813725491 +266,0.4815716911764706 +267,0.9952971813725491 +268,0.9051011029411765 +269,0.04627757352941177 +270,0 +271,0 +272,0 +273,0 +274,0 +275,0 +276,0 +277,0 +278,0 +279,0 +280,0 +281,0 +282,0 +283,0 +284,0 +285,0 +286,0 +287,0 +288,0 +289,0 +290,0.3207873774509804 +291,0.8698069852941177 +292,0.9913756127450981 +293,0.5639246323529412 +294,0.24235600490196077 +295,0.9913756127450981 +296,0.7600030637254902 +297,0 +298,0 +299,0 +300,0 +301,0 +302,0 +303,0 +304,0 +305,0 +306,0 +307,0 +308,0 +309,0 +310,0 +311,0 +312,0 +313,0 +314,0 +315,0 +316,0 +317,0 +318,0.5913756127450981 +319,0.9913756127450981 +320,0.9364736519607844 +321,0.05804227941176471 +322,0.07765012254901961 +323,0.9913756127450981 +324,0.8854932598039216 +325,0.042356004901960786 +326,0 +327,0 +328,0 +329,0 +330,0 +331,0 +332,0 +333,0 +334,0 +335,0 +336,0 +337,0 +338,0 +339,0 +340,0 +341,0 +342,0 +343,0 +344,0 +345,0 +346,0.8776501225490196 +347,0.9913756127450981 +348,0.5717677696078431 +349,0 +350,0.07765012254901961 +351,0.9913756127450981 +352,0.7796109068627451 +353,0.007061887254901961 +354,0 +355,0 +356,0 +357,0 +358,0 +359,0 +360,0 +361,0 +362,0 +363,0 +364,0 +365,0 +366,0 +367,0 +368,0 +369,0 +370,0 +371,0 +372,0 +373,0.3325520833333333 +374,0.99921875 +375,0.9364736519607844 +376,0.09333639705882353 +377,0 +378,0.07765012254901961 +379,0.9952971813725491 +380,0.7639246323529412 +381,0 +382,0 +383,0.038434436274509806 +384,0.07765012254901961 +385,0.3600030637254902 +386,0.4580422794117647 +387,0.0188265931372549 +388,0 +389,0 +390,0 +391,0 +392,0 +393,0 +394,0 +395,0 +396,0 +397,0 +398,0 +399,0 +400,0 +401,0.6580422794117647 +402,0.9952971813725491 +403,0.8384344362745099 +404,0 +405,0 +406,0.07765012254901961 +407,0.9913756127450981 +408,0.795297181372549 +409,0.1560814950980392 +410,0.36784620098039217 +411,0.7992187500000001 +412,0.9913756127450981 +413,0.9913756127450981 +414,0.9952971813725491 +415,0.22666973039215685 +416,0 +417,0 +418,0 +419,0 +420,0 +421,0 +422,0 +423,0 +424,0 +425,0 +426,0 +427,0 +428,0 +429,0.9168658088235294 +430,0.9952971813725491 +431,0.5756893382352941 +432,0 +433,0 +434,0.38745404411764706 +435,0.9913756127450981 +436,0.9913756127450981 +437,0.9913756127450981 +438,0.9952971813725491 +439,0.9913756127450981 +440,0.9913756127450981 +441,0.9207873774509804 +442,0.6227481617647059 +443,0.034512867647058826 +444,0 +445,0 +446,0 +447,0 +448,0 +449,0 +450,0 +451,0 +452,0 +453,0 +454,0 +455,0 +456,0.07372855392156863 +457,0.9403952205882353 +458,0.9952971813725491 +459,0.9560814950980393 +460,0.9168658088235294 +461,0.9168658088235294 +462,0.9952971813725491 +463,0.9913756127450981 +464,0.9913756127450981 +465,0.9913756127450981 +466,0.9952971813725491 +467,0.8501991421568628 +468,0.2619638480392157 +469,0.05019914215686275 +470,0 +471,0 +472,0 +473,0 +474,0 +475,0 +476,0 +477,0 +478,0 +479,0 +480,0 +481,0 +482,0 +483,0 +484,0 +485,0.8972579656862746 +486,0.99921875 +487,0.9952971813725491 +488,0.9952971813725491 +489,0.9952971813725491 +490,0.99921875 +491,0.9952971813725491 +492,0.9952971813725491 +493,0.6384344362745098 +494,0.19137561274509804 +495,0 +496,0 +497,0 +498,0 +499,0 +500,0 +501,0 +502,0 +503,0 +504,0 +505,0 +506,0 +507,0 +508,0 +509,0 +510,0 +511,0 +512,0 +513,0.14039522058823528 +514,0.5325520833333334 +515,0.5325520833333334 +516,0.27372855392156864 +517,0.22666973039215685 +518,0.4776501225490196 +519,0.9913756127450981 +520,0.9913756127450981 +521,0.07372855392156863 +522,0 +523,0 +524,0 +525,0 +526,0 +527,0 +528,0 +529,0 +530,0 +531,0 +532,0 +533,0 +534,0 +535,0 +536,0 +537,0 +538,0 +539,0 +540,0 +541,0 +542,0 +543,0 +544,0 +545,0 +546,0.07765012254901961 +547,0.9913756127450981 +548,0.9913756127450981 +549,0.07372855392156863 +550,0 +551,0 +552,0 +553,0 +554,0 +555,0 +556,0 +557,0 +558,0 +559,0 +560,0 +561,0 +562,0 +563,0 +564,0 +565,0 +566,0 +567,0 +568,0 +569,0 +570,0 +571,0 +572,0 +573,0 +574,0.07765012254901961 +575,0.9913756127450981 +576,0.9913756127450981 +577,0.07372855392156863 +578,0 +579,0 +580,0 +581,0 +582,0 +583,0 +584,0 +585,0 +586,0 +587,0 +588,0 +589,0 +590,0 +591,0 +592,0 +593,0 +594,0 +595,0 +596,0 +597,0 +598,0 +599,0 +600,0 +601,0 +602,0.07765012254901961 +603,0.9952971813725491 +604,0.9952971813725491 +605,0.07372855392156863 +606,0 +607,0 +608,0 +609,0 +610,0 +611,0 +612,0 +613,0 +614,0 +615,0 +616,0 +617,0 +618,0 +619,0 +620,0 +621,0 +622,0 +623,0 +624,0 +625,0 +626,0 +627,0 +628,0 +629,0 +630,0.07765012254901961 +631,0.9913756127450981 +632,0.9560814950980393 +633,0.06196384803921569 +634,0 +635,0 +636,0 +637,0 +638,0 +639,0 +640,0 +641,0 +642,0 +643,0 +644,0 +645,0 +646,0 +647,0 +648,0 +649,0 +650,0 +651,0 +652,0 +653,0 +654,0 +655,0 +656,0 +657,0 +658,0.07765012254901961 +659,0.9913756127450981 +660,0.7600030637254902 +661,0 +662,0 +663,0 +664,0 +665,0 +666,0 +667,0 +668,0 +669,0 +670,0 +671,0 +672,0 +673,0 +674,0 +675,0 +676,0 +677,0 +678,0 +679,0 +680,0 +681,0 +682,0 +683,0 +684,0 +685,0 +686,0.07765012254901961 +687,0.9913756127450981 +688,0.4815716911764706 +689,0 +690,0 +691,0 +692,0 +693,0 +694,0.19137561274509804 +695,0 +696,0 +697,0 +698,0 +699,0 +700,0 +701,0 +702,0 +703,0 +704,0 +705,0 +706,0 +707,0 +708,0 +709,0 +710,0 +711,0 +712,0 +713,0 +714,0 +715,0 +716,0 +717,0 +718,0 +719,0 +720,0 +721,0 +722,0 +723,0 +724,0 +725,0 +726,0 +727,0 +728,0 +729,0 +730,0 +731,0 +732,0 +733,0 +734,0 +735,0 +736,0 +737,0 +738,0 +739,0 +740,0 +741,0 +742,0 +743,0 +744,0 +745,0 +746,0 +747,0 +748,0 +749,0 +750,0 +751,0 +752,0 +753,0 +754,0 +755,0 +756,0 +757,0 +758,0 +759,0 +760,0 +761,0 +762,0 +763,0 +764,0 +765,0 +766,0 +767,0 +768,0 +769,0 +770,0 +771,0 +772,0 +773,0 +774,0 +775,0 +776,0 +777,0 +778,0 +779,0 +780,0 +781,0 +782,0 +783,0 +1678,-1.0000000000 +1679,-1.0000000000 +1680,-1.0000000000 +1681,-1.0000000000 +1682,-1.0000000000 +1683,-1.0000000000 +1684,-1.0000000000 +1685,-1.0000000000 +1686,-1.0000000000 +1687,-1.0000000000 +1688,-1.0000000000 +1689,-1.0000000000 +1690,-1.0000000000 +1691,-1.0000000000 +1692,-1.0000000000 +1693,-1.0000000000 +1694,-1.0000000000 +1695,-1.0000000000 +1696,-1.0000000000 +1697,-1.0000000000 +1698,-1.0000000000 +1699,-1.0000000000 +1700,-1.0000000000 +1701,-1.0000000000 +1702,-1.0000000000 +1703,-1.0000000000 +1704,-1.0000000000 +1705,-1.0000000000 +1706,-1.0000000000 +1707,-1.0000000000 +1708,-1.0000000000 +1709,-1.0000000000 +1710,-1.0000000000 +1711,-1.0000000000 +1712,-1.0000000000 +1713,-1.0000000000 +1714,-1.0000000000 +1715,-1.0000000000 +1716,-1.0000000000 +1717,-1.0000000000 +1718,-1.0000000000 +1719,-1.0000000000 +1720,-1.0000000000 +1721,-1.0000000000 +1722,-1.0000000000 +1723,-1.0000000000 +1724,-1.0000000000 +1725,-1.0000000000 +1726,-1.0000000000 +1727,-1.0000000000 +1928,-1.0000000000 +1929,-1.0000000000 +1930,-1.0000000000 +1931,-1.0000000000 +1932,-1.0000000000 +1933,-1.0000000000 +1934,-1.0000000000 +1935,-1.0000000000 +1936,-1.0000000000 +1937,-1.0000000000 +1938,-1.0000000000 +1939,-1.0000000000 +1940,-1.0000000000 +1941,-1.0000000000 +1942,-1.0000000000 +1943,-1.0000000000 +1944,-1.0000000000 +1945,-1.0000000000 +1946,-1.0000000000 +1947,-1.0000000000 +1948,-1.0000000000 +1949,-1.0000000000 +1950,-1.0000000000 +1951,-1.0000000000 +1952,-1.0000000000 +1953,-1.0000000000 +1954,-1.0000000000 +1955,-1.0000000000 +1956,-1.0000000000 +1957,-1.0000000000 +1958,-1.0000000000 +1959,-1.0000000000 +1960,-1.0000000000 +1961,-1.0000000000 +1962,-1.0000000000 +1963,-1.0000000000 +1964,-1.0000000000 +1965,-1.0000000000 +1966,-1.0000000000 +1967,-1.0000000000 +1968,-1.0000000000 +1969,-1.0000000000 +1970,-1.0000000000 +1971,-1.0000000000 +1972,-1.0000000000 +1973,-1.0000000000 +1974,-1.0000000000 +1975,-1.0000000000 +1976,-1.0000000000 +1977,-1.0000000000 +2178,-1.0000000000 +2179,-1.0000000000 +2180,-1.0000000000 +2181,-1.0000000000 +2182,-1.0000000000 +2183,-1.0000000000 +2184,-1.0000000000 +2185,-1.0000000000 +2186,-1.0000000000 +2187,-1.0000000000 +2188,-1.0000000000 +2189,-1.0000000000 +2190,-1.0000000000 +2191,-1.0000000000 +2192,-1.0000000000 +2193,-1.0000000000 +2194,-1.0000000000 +2195,-1.0000000000 +2196,-1.0000000000 +2197,-1.0000000000 +2198,-1.0000000000 +2199,-1.0000000000 +2200,-1.0000000000 +2201,-1.0000000000 +2202,-1.0000000000 +2203,-1.0000000000 +2204,-1.0000000000 +2205,-1.0000000000 +2206,-1.0000000000 +2207,-1.0000000000 +2208,-1.0000000000 +2209,-1.0000000000 +2210,-1.0000000000 +2211,-1.0000000000 +2212,-1.0000000000 +2213,-1.0000000000 +2214,-1.0000000000 +2215,-1.0000000000 +2216,-1.0000000000 +2217,-1.0000000000 +2218,-1.0000000000 +2219,-1.0000000000 +2220,-1.0000000000 +2221,-1.0000000000 +2222,-1.0000000000 +2223,-1.0000000000 +2224,-1.0000000000 +2225,-1.0000000000 +2226,-1.0000000000 +2227,-1.0000000000 +2428,-1.0000000000 +2429,-1.0000000000 +2430,-1.0000000000 +2431,-1.0000000000 +2432,-1.0000000000 +2433,-1.0000000000 +2434,-1.0000000000 +2435,-1.0000000000 +2436,-1.0000000000 +2437,-1.0000000000 +2438,-1.0000000000 +2439,-1.0000000000 +2440,-1.0000000000 +2441,-1.0000000000 +2442,-1.0000000000 +2443,-1.0000000000 +2444,-1.0000000000 +2445,-1.0000000000 +2446,-1.0000000000 +2447,-1.0000000000 +2448,-1.0000000000 +2449,-1.0000000000 +2450,-1.0000000000 +2451,-1.0000000000 +2452,-1.0000000000 +2453,-1.0000000000 +2454,-1.0000000000 +2455,-1.0000000000 +2456,-1.0000000000 +2457,-1.0000000000 +2458,-1.0000000000 +2459,-1.0000000000 +2460,-1.0000000000 +2461,-1.0000000000 +2462,-1.0000000000 +2463,-1.0000000000 +2464,-1.0000000000 +2465,-1.0000000000 +2466,-1.0000000000 +2467,-1.0000000000 +2468,-1.0000000000 +2469,-1.0000000000 +2470,-1.0000000000 +2471,-1.0000000000 +2472,-1.0000000000 +2473,-1.0000000000 +2474,-1.0000000000 +2475,-1.0000000000 +2476,-1.0000000000 +2477,-1.0000000000 +2598,-1.0000000000 +2599,-1.0000000000 +2600,-1.0000000000 +2601,-1.0000000000 +2602,-1.0000000000 +2603,-1.0000000000 +2604,-1.0000000000 +2605,-1.0000000000 +2606,-1.0000000000 +2607,-1.0000000000 +2648,-1.0000000000 +2649,-1.0000000000 +2650,-1.0000000000 +2651,-1.0000000000 +2652,-1.0000000000 +2653,-1.0000000000 +2654,-1.0000000000 +2655,-1.0000000000 +2656,-1.0000000000 +2657,-1.0000000000 +0,0.00078125 +1,0.00078125 +2,0.00078125 +3,0.00078125 +4,0.00078125 +5,0.00078125 +6,0.00078125 +7,0.00078125 +8,0.00078125 +9,0.00078125 +10,0.00078125 +11,0.00078125 +12,0.00078125 +13,0.00078125 +14,0.00078125 +15,0.00078125 +16,0.00078125 +17,0.00078125 +18,0.00078125 +19,0.00078125 +20,0.00078125 +21,0.00078125 +22,0.00078125 +23,0.00078125 +24,0.00078125 +25,0.00078125 +26,0.00078125 +27,0.00078125 +28,0.00078125 +29,0.00078125 +30,0.00078125 +31,0.00078125 +32,0.00078125 +33,0.00078125 +34,0.00078125 +35,0.00078125 +36,0.00078125 +37,0.00078125 +38,0.00078125 +39,0.00078125 +40,0.00078125 +41,0.00078125 +42,0.00078125 +43,0.00078125 +44,0.00078125 +45,0.00078125 +46,0.00078125 +47,0.00078125 +48,0.00078125 +49,0.00078125 +50,0.00078125 +51,0.00078125 +52,0.00078125 +53,0.00078125 +54,0.00078125 +55,0.00078125 +56,0.00078125 +57,0.00078125 +58,0.00078125 +59,0.00078125 +60,0.00078125 +61,0.00078125 +62,0.00078125 +63,0.00078125 +64,0.00078125 +65,0.00078125 +66,0.00078125 +67,0.00078125 +68,0.00078125 +69,0.00078125 +70,0.00078125 +71,0.00078125 +72,0.00078125 +73,0.00078125 +74,0.00078125 +75,0.00078125 +76,0.00078125 +77,0.00078125 +78,0.00078125 +79,0.00078125 +80,0.00078125 +81,0.00078125 +82,0.00078125 +83,0.00078125 +84,0.00078125 +85,0.00078125 +86,0.00078125 +87,0.00078125 +88,0.00078125 +89,0.00078125 +90,0.00078125 +91,0.00078125 +92,0.00078125 +93,0.00078125 +94,0.00078125 +95,0.00078125 +96,0.00078125 +97,0.00078125 +98,0.00078125 +99,0.00078125 +100,0.00078125 +101,0.00078125 +102,0.00078125 +103,0.00078125 +104,0.00078125 +105,0.00078125 +106,0.00078125 +107,0.00078125 +108,0.00078125 +109,0.00078125 +110,0.00078125 +111,0.00078125 +112,0.00078125 +113,0.00078125 +114,0.00078125 +115,0.00078125 +116,0.00078125 +117,0.00078125 +118,0.00078125 +119,0.00078125 +120,0.00078125 +121,0.00078125 +122,0.00078125 +123,0.00078125 +124,0.00078125 +125,0.00078125 +126,0.00078125 +127,0.00078125 +128,0.00078125 +129,0.00078125 +130,0.00078125 +131,0.00078125 +132,0.00078125 +133,0.00078125 +134,0.00078125 +135,0.00078125 +136,0.00078125 +137,0.00078125 +138,0.00078125 +139,0.00078125 +140,0.00078125 +141,0.00078125 +142,0.00078125 +143,0.00078125 +144,0.00078125 +145,0.00078125 +146,0.00078125 +147,0.00078125 +148,0.00078125 +149,0.00078125 +150,0.00078125 +151,0.00078125 +152,0.00078125 +153,0.028232230392156863 +154,0.8086243872549019 +155,0.804702818627451 +156,0.08313419117647058 +157,0.00078125 +158,0.00078125 +159,0.00078125 +160,0.00078125 +161,0.00078125 +162,0.00078125 +163,0.00078125 +164,0.00078125 +165,0.00078125 +166,0.00078125 +167,0.00078125 +168,0.00078125 +169,0.00078125 +170,0.00078125 +171,0.00078125 +172,0.00078125 +173,0.00078125 +174,0.00078125 +175,0.00078125 +176,0.00078125 +177,0.00078125 +178,0.00078125 +179,0.00078125 +180,0.00078125 +181,0.6831341911764706 +182,0.996859681372549 +183,0.992938112745098 +184,0.6909773284313725 +185,0.00078125 +186,0.00078125 +187,0.00078125 +188,0.00078125 +189,0.00078125 +190,0.00078125 +191,0.00078125 +192,0.00078125 +193,0.00078125 +194,0.00078125 +195,0.00078125 +196,0.00078125 +197,0.00078125 +198,0.00078125 +199,0.00078125 +200,0.00078125 +201,0.00078125 +202,0.00078125 +203,0.00078125 +204,0.00078125 +205,0.00078125 +206,0.00078125 +207,0.00078125 +208,0.43607536764705884 +209,0.981173406862745 +210,0.996859681372549 +211,0.992938112745098 +212,0.7615655637254901 +213,0.00078125 +214,0.00078125 +215,0.00078125 +216,0.00078125 +217,0.00078125 +218,0.00078125 +219,0.00078125 +220,0.00078125 +221,0.00078125 +222,0.00078125 +223,0.00078125 +224,0.00078125 +225,0.00078125 +226,0.00078125 +227,0.00078125 +228,0.00078125 +229,0.00078125 +230,0.00078125 +231,0.00078125 +232,0.00078125 +233,0.00078125 +234,0.00078125 +235,0.0988204656862745 +236,0.9341145833333333 +237,0.992938112745098 +238,0.996859681372549 +239,0.992938112745098 +240,0.9027420343137255 +241,0.04784007352941176 +242,0.00078125 +243,0.00078125 +244,0.00078125 +245,0.00078125 +246,0.00078125 +247,0.00078125 +248,0.00078125 +249,0.00078125 +250,0.00078125 +251,0.00078125 +252,0.00078125 +253,0.00078125 +254,0.00078125 +255,0.00078125 +256,0.00078125 +257,0.00078125 +258,0.00078125 +259,0.00078125 +260,0.00078125 +261,0.00078125 +262,0.00078125 +263,0.577251838235294 +264,0.996859681372549 +265,0.996859681372549 +266,0.4831341911764706 +267,0.996859681372549 +268,0.9066636029411764 +269,0.04784007352941176 +270,0.00078125 +271,0.00078125 +272,0.00078125 +273,0.00078125 +274,0.00078125 +275,0.00078125 +276,0.00078125 +277,0.00078125 +278,0.00078125 +279,0.00078125 +280,0.00078125 +281,0.00078125 +282,0.00078125 +283,0.00078125 +284,0.00078125 +285,0.00078125 +286,0.00078125 +287,0.00078125 +288,0.00078125 +289,0.00078125 +290,0.3223498774509804 +291,0.8713694852941176 +292,0.992938112745098 +293,0.5654871323529411 +294,0.2439185049019608 +295,0.992938112745098 +296,0.7615655637254901 +297,0.00078125 +298,0.00078125 +299,0.00078125 +300,0.00078125 +301,0.00078125 +302,0.00078125 +303,0.00078125 +304,0.00078125 +305,0.00078125 +306,0.00078125 +307,0.00078125 +308,0.00078125 +309,0.00078125 +310,0.00078125 +311,0.00078125 +312,0.00078125 +313,0.00078125 +314,0.00078125 +315,0.00078125 +316,0.00078125 +317,0.00078125 +318,0.592938112745098 +319,0.992938112745098 +320,0.9380361519607843 +321,0.0596047794117647 +322,0.0792126225490196 +323,0.992938112745098 +324,0.8870557598039215 +325,0.04391850490196078 +326,0.00078125 +327,0.00078125 +328,0.00078125 +329,0.00078125 +330,0.00078125 +331,0.00078125 +332,0.00078125 +333,0.00078125 +334,0.00078125 +335,0.00078125 +336,0.00078125 +337,0.00078125 +338,0.00078125 +339,0.00078125 +340,0.00078125 +341,0.00078125 +342,0.00078125 +343,0.00078125 +344,0.00078125 +345,0.00078125 +346,0.8792126225490196 +347,0.992938112745098 +348,0.5733302696078431 +349,0.00078125 +350,0.0792126225490196 +351,0.992938112745098 +352,0.7811734068627451 +353,0.008624387254901961 +354,0.00078125 +355,0.00078125 +356,0.00078125 +357,0.00078125 +358,0.00078125 +359,0.00078125 +360,0.00078125 +361,0.00078125 +362,0.00078125 +363,0.00078125 +364,0.00078125 +365,0.00078125 +366,0.00078125 +367,0.00078125 +368,0.00078125 +369,0.00078125 +370,0.00078125 +371,0.00078125 +372,0.00078125 +373,0.3341145833333333 +374,1 +375,0.9380361519607843 +376,0.09489889705882353 +377,0.00078125 +378,0.0792126225490196 +379,0.996859681372549 +380,0.7654871323529411 +381,0.00078125 +382,0.00078125 +383,0.0399969362745098 +384,0.0792126225490196 +385,0.3615655637254902 +386,0.4596047794117647 +387,0.020389093137254902 +388,0.00078125 +389,0.00078125 +390,0.00078125 +391,0.00078125 +392,0.00078125 +393,0.00078125 +394,0.00078125 +395,0.00078125 +396,0.00078125 +397,0.00078125 +398,0.00078125 +399,0.00078125 +400,0.00078125 +401,0.6596047794117647 +402,0.996859681372549 +403,0.8399969362745098 +404,0.00078125 +405,0.00078125 +406,0.0792126225490196 +407,0.992938112745098 +408,0.7968596813725489 +409,0.15764399509803922 +410,0.3694087009803922 +411,0.80078125 +412,0.992938112745098 +413,0.992938112745098 +414,0.996859681372549 +415,0.22823223039215687 +416,0.00078125 +417,0.00078125 +418,0.00078125 +419,0.00078125 +420,0.00078125 +421,0.00078125 +422,0.00078125 +423,0.00078125 +424,0.00078125 +425,0.00078125 +426,0.00078125 +427,0.00078125 +428,0.00078125 +429,0.9184283088235293 +430,0.996859681372549 +431,0.577251838235294 +432,0.00078125 +433,0.00078125 +434,0.3890165441176471 +435,0.992938112745098 +436,0.992938112745098 +437,0.992938112745098 +438,0.996859681372549 +439,0.992938112745098 +440,0.992938112745098 +441,0.9223498774509803 +442,0.6243106617647058 +443,0.03607536764705882 +444,0.00078125 +445,0.00078125 +446,0.00078125 +447,0.00078125 +448,0.00078125 +449,0.00078125 +450,0.00078125 +451,0.00078125 +452,0.00078125 +453,0.00078125 +454,0.00078125 +455,0.00078125 +456,0.07529105392156862 +457,0.9419577205882352 +458,0.996859681372549 +459,0.9576439950980392 +460,0.9184283088235293 +461,0.9184283088235293 +462,0.996859681372549 +463,0.992938112745098 +464,0.992938112745098 +465,0.992938112745098 +466,0.996859681372549 +467,0.8517616421568627 +468,0.2635263480392157 +469,0.05176164215686274 +470,0.00078125 +471,0.00078125 +472,0.00078125 +473,0.00078125 +474,0.00078125 +475,0.00078125 +476,0.00078125 +477,0.00078125 +478,0.00078125 +479,0.00078125 +480,0.00078125 +481,0.00078125 +482,0.00078125 +483,0.00078125 +484,0.00078125 +485,0.8988204656862745 +486,1 +487,0.996859681372549 +488,0.996859681372549 +489,0.996859681372549 +490,1 +491,0.996859681372549 +492,0.996859681372549 +493,0.6399969362745097 +494,0.19293811274509806 +495,0.00078125 +496,0.00078125 +497,0.00078125 +498,0.00078125 +499,0.00078125 +500,0.00078125 +501,0.00078125 +502,0.00078125 +503,0.00078125 +504,0.00078125 +505,0.00078125 +506,0.00078125 +507,0.00078125 +508,0.00078125 +509,0.00078125 +510,0.00078125 +511,0.00078125 +512,0.00078125 +513,0.1419577205882353 +514,0.5341145833333333 +515,0.5341145833333333 +516,0.27529105392156866 +517,0.22823223039215687 +518,0.47921262254901964 +519,0.992938112745098 +520,0.992938112745098 +521,0.07529105392156862 +522,0.00078125 +523,0.00078125 +524,0.00078125 +525,0.00078125 +526,0.00078125 +527,0.00078125 +528,0.00078125 +529,0.00078125 +530,0.00078125 +531,0.00078125 +532,0.00078125 +533,0.00078125 +534,0.00078125 +535,0.00078125 +536,0.00078125 +537,0.00078125 +538,0.00078125 +539,0.00078125 +540,0.00078125 +541,0.00078125 +542,0.00078125 +543,0.00078125 +544,0.00078125 +545,0.00078125 +546,0.0792126225490196 +547,0.992938112745098 +548,0.992938112745098 +549,0.07529105392156862 +550,0.00078125 +551,0.00078125 +552,0.00078125 +553,0.00078125 +554,0.00078125 +555,0.00078125 +556,0.00078125 +557,0.00078125 +558,0.00078125 +559,0.00078125 +560,0.00078125 +561,0.00078125 +562,0.00078125 +563,0.00078125 +564,0.00078125 +565,0.00078125 +566,0.00078125 +567,0.00078125 +568,0.00078125 +569,0.00078125 +570,0.00078125 +571,0.00078125 +572,0.00078125 +573,0.00078125 +574,0.0792126225490196 +575,0.992938112745098 +576,0.992938112745098 +577,0.07529105392156862 +578,0.00078125 +579,0.00078125 +580,0.00078125 +581,0.00078125 +582,0.00078125 +583,0.00078125 +584,0.00078125 +585,0.00078125 +586,0.00078125 +587,0.00078125 +588,0.00078125 +589,0.00078125 +590,0.00078125 +591,0.00078125 +592,0.00078125 +593,0.00078125 +594,0.00078125 +595,0.00078125 +596,0.00078125 +597,0.00078125 +598,0.00078125 +599,0.00078125 +600,0.00078125 +601,0.00078125 +602,0.0792126225490196 +603,0.996859681372549 +604,0.996859681372549 +605,0.07529105392156862 +606,0.00078125 +607,0.00078125 +608,0.00078125 +609,0.00078125 +610,0.00078125 +611,0.00078125 +612,0.00078125 +613,0.00078125 +614,0.00078125 +615,0.00078125 +616,0.00078125 +617,0.00078125 +618,0.00078125 +619,0.00078125 +620,0.00078125 +621,0.00078125 +622,0.00078125 +623,0.00078125 +624,0.00078125 +625,0.00078125 +626,0.00078125 +627,0.00078125 +628,0.00078125 +629,0.00078125 +630,0.0792126225490196 +631,0.992938112745098 +632,0.9576439950980392 +633,0.06352634803921568 +634,0.00078125 +635,0.00078125 +636,0.00078125 +637,0.00078125 +638,0.00078125 +639,0.00078125 +640,0.00078125 +641,0.00078125 +642,0.00078125 +643,0.00078125 +644,0.00078125 +645,0.00078125 +646,0.00078125 +647,0.00078125 +648,0.00078125 +649,0.00078125 +650,0.00078125 +651,0.00078125 +652,0.00078125 +653,0.00078125 +654,0.00078125 +655,0.00078125 +656,0.00078125 +657,0.00078125 +658,0.0792126225490196 +659,0.992938112745098 +660,0.7615655637254901 +661,0.00078125 +662,0.00078125 +663,0.00078125 +664,0.00078125 +665,0.00078125 +666,0.00078125 +667,0.00078125 +668,0.00078125 +669,0.00078125 +670,0.00078125 +671,0.00078125 +672,0.00078125 +673,0.00078125 +674,0.00078125 +675,0.00078125 +676,0.00078125 +677,0.00078125 +678,0.00078125 +679,0.00078125 +680,0.00078125 +681,0.00078125 +682,0.00078125 +683,0.00078125 +684,0.00078125 +685,0.00078125 +686,0.0792126225490196 +687,0.992938112745098 +688,0.4831341911764706 +689,0.00078125 +690,0.00078125 +691,0.00078125 +692,0.00078125 +693,0.00078125 +694,0.19293811274509806 +695,0.00078125 +696,0.00078125 +697,0.00078125 +698,0.00078125 +699,0.00078125 +700,0.00078125 +701,0.00078125 +702,0.00078125 +703,0.00078125 +704,0.00078125 +705,0.00078125 +706,0.00078125 +707,0.00078125 +708,0.00078125 +709,0.00078125 +710,0.00078125 +711,0.00078125 +712,0.00078125 +713,0.00078125 +714,0.00078125 +715,0.00078125 +716,0.00078125 +717,0.00078125 +718,0.00078125 +719,0.00078125 +720,0.00078125 +721,0.00078125 +722,0.00078125 +723,0.00078125 +724,0.00078125 +725,0.00078125 +726,0.00078125 +727,0.00078125 +728,0.00078125 +729,0.00078125 +730,0.00078125 +731,0.00078125 +732,0.00078125 +733,0.00078125 +734,0.00078125 +735,0.00078125 +736,0.00078125 +737,0.00078125 +738,0.00078125 +739,0.00078125 +740,0.00078125 +741,0.00078125 +742,0.00078125 +743,0.00078125 +744,0.00078125 +745,0.00078125 +746,0.00078125 +747,0.00078125 +748,0.00078125 +749,0.00078125 +750,0.00078125 +751,0.00078125 +752,0.00078125 +753,0.00078125 +754,0.00078125 +755,0.00078125 +756,0.00078125 +757,0.00078125 +758,0.00078125 +759,0.00078125 +760,0.00078125 +761,0.00078125 +762,0.00078125 +763,0.00078125 +764,0.00078125 +765,0.00078125 +766,0.00078125 +767,0.00078125 +768,0.00078125 +769,0.00078125 +770,0.00078125 +771,0.00078125 +772,0.00078125 +773,0.00078125 +774,0.00078125 +775,0.00078125 +776,0.00078125 +777,0.00078125 +778,0.00078125 +779,0.00078125 +780,0.00078125 +781,0.00078125 +782,0.00078125 +783,0.00078125 +1678,1.0000000000 +1679,1.0000000000 +1680,1.0000000000 +1681,1.0000000000 +1682,1.0000000000 +1683,1.0000000000 +1684,1.0000000000 +1685,1.0000000000 +1686,1.0000000000 +1687,1.0000000000 +1688,1.0000000000 +1689,1.0000000000 +1690,1.0000000000 +1691,1.0000000000 +1692,1.0000000000 +1693,1.0000000000 +1694,1.0000000000 +1695,1.0000000000 +1696,1.0000000000 +1697,1.0000000000 +1698,1.0000000000 +1699,1.0000000000 +1700,1.0000000000 +1701,1.0000000000 +1702,1.0000000000 +1703,1.0000000000 +1704,1.0000000000 +1705,1.0000000000 +1706,1.0000000000 +1707,1.0000000000 +1708,1.0000000000 +1709,1.0000000000 +1710,1.0000000000 +1711,1.0000000000 +1712,1.0000000000 +1713,1.0000000000 +1714,1.0000000000 +1715,1.0000000000 +1716,1.0000000000 +1717,1.0000000000 +1718,1.0000000000 +1719,1.0000000000 +1720,1.0000000000 +1721,1.0000000000 +1722,1.0000000000 +1723,1.0000000000 +1724,1.0000000000 +1725,1.0000000000 +1726,1.0000000000 +1727,1.0000000000 +1928,1.0000000000 +1929,1.0000000000 +1930,1.0000000000 +1931,1.0000000000 +1932,1.0000000000 +1933,1.0000000000 +1934,1.0000000000 +1935,1.0000000000 +1936,1.0000000000 +1937,1.0000000000 +1938,1.0000000000 +1939,1.0000000000 +1940,1.0000000000 +1941,1.0000000000 +1942,1.0000000000 +1943,1.0000000000 +1944,1.0000000000 +1945,1.0000000000 +1946,1.0000000000 +1947,1.0000000000 +1948,1.0000000000 +1949,1.0000000000 +1950,1.0000000000 +1951,1.0000000000 +1952,1.0000000000 +1953,1.0000000000 +1954,1.0000000000 +1955,1.0000000000 +1956,1.0000000000 +1957,1.0000000000 +1958,1.0000000000 +1959,1.0000000000 +1960,1.0000000000 +1961,1.0000000000 +1962,1.0000000000 +1963,1.0000000000 +1964,1.0000000000 +1965,1.0000000000 +1966,1.0000000000 +1967,1.0000000000 +1968,1.0000000000 +1969,1.0000000000 +1970,1.0000000000 +1971,1.0000000000 +1972,1.0000000000 +1973,1.0000000000 +1974,1.0000000000 +1975,1.0000000000 +1976,1.0000000000 +1977,1.0000000000 +2178,1.0000000000 +2179,1.0000000000 +2180,1.0000000000 +2181,1.0000000000 +2182,1.0000000000 +2183,1.0000000000 +2184,1.0000000000 +2185,1.0000000000 +2186,1.0000000000 +2187,1.0000000000 +2188,1.0000000000 +2189,1.0000000000 +2190,1.0000000000 +2191,1.0000000000 +2192,1.0000000000 +2193,1.0000000000 +2194,1.0000000000 +2195,1.0000000000 +2196,1.0000000000 +2197,1.0000000000 +2198,1.0000000000 +2199,1.0000000000 +2200,1.0000000000 +2201,1.0000000000 +2202,1.0000000000 +2203,1.0000000000 +2204,1.0000000000 +2205,1.0000000000 +2206,1.0000000000 +2207,1.0000000000 +2208,1.0000000000 +2209,1.0000000000 +2210,1.0000000000 +2211,1.0000000000 +2212,1.0000000000 +2213,1.0000000000 +2214,1.0000000000 +2215,1.0000000000 +2216,1.0000000000 +2217,1.0000000000 +2218,1.0000000000 +2219,1.0000000000 +2220,1.0000000000 +2221,1.0000000000 +2222,1.0000000000 +2223,1.0000000000 +2224,1.0000000000 +2225,1.0000000000 +2226,1.0000000000 +2227,1.0000000000 +2428,1.0000000000 +2429,1.0000000000 +2430,1.0000000000 +2431,1.0000000000 +2432,1.0000000000 +2433,1.0000000000 +2434,1.0000000000 +2435,1.0000000000 +2436,1.0000000000 +2437,1.0000000000 +2438,1.0000000000 +2439,1.0000000000 +2440,1.0000000000 +2441,1.0000000000 +2442,1.0000000000 +2443,1.0000000000 +2444,1.0000000000 +2445,1.0000000000 +2446,1.0000000000 +2447,1.0000000000 +2448,1.0000000000 +2449,1.0000000000 +2450,1.0000000000 +2451,1.0000000000 +2452,1.0000000000 +2453,1.0000000000 +2454,1.0000000000 +2455,1.0000000000 +2456,1.0000000000 +2457,1.0000000000 +2458,1.0000000000 +2459,1.0000000000 +2460,1.0000000000 +2461,1.0000000000 +2462,1.0000000000 +2463,1.0000000000 +2464,1.0000000000 +2465,1.0000000000 +2466,1.0000000000 +2467,1.0000000000 +2468,1.0000000000 +2469,1.0000000000 +2470,1.0000000000 +2471,1.0000000000 +2472,1.0000000000 +2473,1.0000000000 +2474,1.0000000000 +2475,1.0000000000 +2476,1.0000000000 +2477,1.0000000000 +2598,1.0000000000 +2599,1.0000000000 +2600,1.0000000000 +2601,1.0000000000 +2602,1.0000000000 +2603,1.0000000000 +2604,1.0000000000 +2605,1.0000000000 +2606,1.0000000000 +2607,1.0000000000 +2648,1.0000000000 +2649,1.0000000000 +2650,1.0000000000 +2651,1.0000000000 +2652,1.0000000000 +2653,1.0000000000 +2654,1.0000000000 +2655,1.0000000000 +2656,1.0000000000 +2657,1.0000000000 +0,0,0.0002079358,0,31.6227760315,794,-1.0000000000 +1,0,-0.0002583992,1,31.6227760315,795,-1.0000000000 +2,0,-0.0003494073,2,31.6227760315,796,-1.0000000000 +3,0,0.0003390284,3,31.6227760315,797,-1.0000000000 +4,0,-0.0003349786,4,31.6227760315,798,-1.0000000000 +5,0,0.0001279500,5,31.6227760315,799,-1.0000000000 +6,0,0.0001763496,6,31.6227760315,800,-1.0000000000 +7,0,-0.0001354526,7,31.6227760315,801,-1.0000000000 +8,0,0.0003771311,8,31.6227760315,802,-1.0000000000 +9,0,0.0003647278,9,31.6227760315,803,-1.0000000000 +10,0,-0.0002333800,10,31.6227760315,804,-1.0000000000 +11,0,-0.0000413705,11,31.6227760315,805,-1.0000000000 +12,0,0.0000488727,12,31.6227760315,806,-1.0000000000 +13,0,-0.0002826663,13,31.6227760315,807,-1.0000000000 +14,0,0.0006292058,14,31.6227760315,808,-1.0000000000 +15,0,-0.0001313380,15,31.6227760315,809,-1.0000000000 +16,0,0.0000416177,16,31.6227760315,810,-1.0000000000 +17,0,0.0003893470,17,31.6227760315,811,-1.0000000000 +18,0,-0.0002245790,18,31.6227760315,812,-1.0000000000 +19,0,0.0003470236,19,31.6227760315,813,-1.0000000000 +20,0,0.0003778675,20,31.6227760315,814,-1.0000000000 +21,0,0.0003159090,21,31.6227760315,815,-1.0000000000 +22,0,-0.0004873525,22,31.6227760315,816,-1.0000000000 +23,0,0.0005008946,23,31.6227760315,817,-1.0000000000 +24,0,0.0000937252,24,31.6227760315,818,-1.0000000000 +25,0,0.0003262460,25,31.6227760315,819,-1.0000000000 +26,0,0.0002706744,26,31.6227760315,820,-1.0000000000 +27,0,0.0000455972,27,31.6227760315,821,-1.0000000000 +28,0,0.0002516698,28,31.6227760315,822,-1.0000000000 +29,0,-0.0003327862,29,31.6227760315,823,-1.0000000000 +30,0,-0.0002052352,30,31.6227760315,824,-1.0000000000 +31,0,-0.0001236253,31,31.6227760315,825,-1.0000000000 +32,0,0.0000176382,32,31.6227760315,826,-1.0000000000 +33,0,0.0003008715,33,31.6227760315,827,-1.0000000000 +34,0,0.0006836313,34,31.6220626831,828,-1.0000000000 +35,0,-0.0001673320,35,31.6206951141,829,-1.0000000000 +36,0,0.0000483380,36,31.6100864410,830,-1.0000000000 +37,0,0.0004174529,37,31.5675048828,831,-1.0000000000 +38,0,0.0002150589,38,31.6203975677,832,-1.0000000000 +39,0,0.0002132856,39,31.6220436096,833,-1.0000000000 +40,0,-0.0000718096,40,31.6225090027,834,-1.0000000000 +41,0,0.0172859076,41,28.4602222443,835,-1.0000000000 +42,0,0.0323503427,42,19.9615135193,836,-1.0000000000 +43,0,0.0184166469,43,28.4836978912,837,-1.0000000000 +44,0,0.0017066360,44,30.7574901581,838,-1.0000000000 +45,0,0.0020751858,45,31.0119667053,839,-1.0000000000 +46,0,0.0014388275,46,31.2325229645,840,-1.0000000000 +47,0,0.0054573664,47,29.7056388855,841,-1.0000000000 +48,0,0.0080556581,48,28.2757072449,842,-1.0000000000 +49,0,0.0014539692,49,31.2102050781,843,-1.0000000000 +50,0,0.0007705564,50,31.6227760315,844,-1.0000000000 +51,0,0.0005107099,51,31.6227760315,845,-1.0000000000 +52,0,0.0002250048,52,31.6227760315,846,-1.0000000000 +53,0,-0.0005018546,53,31.6227760315,847,-1.0000000000 +54,0,0.0004192109,54,31.6227760315,848,-1.0000000000 +55,0,0.0000303526,55,31.6227760315,849,-1.0000000000 +56,0,0.0002229478,56,31.6227760315,850,-1.0000000000 +57,0,0.0004961172,57,31.6227760315,851,-1.0000000000 +58,0,0.0006572621,58,31.6227760315,852,-1.0000000000 +59,0,-0.0001420256,59,31.6227760315,853,-1.0000000000 +60,0,0.0006846254,60,31.6227760315,854,-1.0000000000 +61,0,-0.0001651450,61,31.6227741241,855,-1.0000000000 +62,0,0.0004542769,62,31.5634021759,856,-1.0000000000 +63,0,0.0031030406,63,31.1031246185,857,-1.0000000000 +64,0,0.0280330572,64,25.3654117584,858,-1.0000000000 +65,0,0.0385130979,65,19.3904418945,859,-1.0000000000 +66,0,0.0384126604,66,21.4482326508,860,-1.0000000000 +67,0,0.0882032439,67,15.1026964188,861,-1.0000000000 +68,0,0.1183664203,68,9.6312952042,862,-1.0000000000 +69,0,0.1238476709,69,8.9555406570,863,-1.0000000000 +70,0,0.1293599755,70,8.7221813202,864,-1.0000000000 +71,0,0.1229867041,71,10.2591333389,865,-1.0000000000 +72,0,0.1245075017,72,9.6111621857,866,-1.0000000000 +73,0,0.1211254299,73,9.3289775848,867,-1.0000000000 +74,0,0.1249790415,74,11.7950582504,868,-1.0000000000 +75,0,0.1247130036,75,9.8608808517,869,-1.0000000000 +76,0,0.1161369383,76,9.3387050629,870,-1.0000000000 +77,0,0.0982553512,77,11.3408269882,871,-1.0000000000 +78,0,0.0534446128,78,22.4022750854,872,-1.0000000000 +79,0,0.0021463588,79,30.7039184570,873,-1.0000000000 +80,0,0.0000134101,80,31.5947437286,874,-1.0000000000 +81,0,0.0001864402,81,31.6227760315,875,-1.0000000000 +82,0,-0.0004649443,82,31.6227760315,876,-1.0000000000 +83,0,-0.0001222452,83,31.6227760315,877,-1.0000000000 +84,0,-0.0001723979,84,31.6227760315,878,-1.0000000000 +85,0,0.0000698144,85,31.6227760315,879,-1.0000000000 +86,0,-0.0002891293,86,31.6227760315,880,-1.0000000000 +87,0,-0.0000747551,87,31.6227760315,881,-1.0000000000 +88,0,-0.0003064532,88,31.6227760315,882,-1.0000000000 +89,0,-0.0003921269,89,31.6218929291,883,-1.0000000000 +90,0,0.0089464234,90,30.5839347839,884,-1.0000000000 +91,0,0.0684941635,91,15.9870204926,885,-1.0000000000 +92,0,0.0888411775,92,12.1635036469,886,-1.0000000000 +93,0,0.0983949155,93,10.6395206451,887,-1.0000000000 +94,0,0.1431194246,94,8.6441278458,888,-1.0000000000 +95,0,0.1838538200,95,7.2239866257,889,-1.0000000000 +96,0,0.2103057802,96,6.1776309013,890,-1.0000000000 +97,0,0.2509822547,97,5.7684159279,891,-1.0000000000 +98,0,0.2644919157,98,5.0066733360,892,-1.0000000000 +99,0,0.2750744522,99,4.9207816124,893,-1.0000000000 +100,0,0.2888795733,100,4.8772101402,894,-1.0000000000 +101,0,0.2598167956,101,5.0838270187,895,-1.0000000000 +102,0,0.2218356729,102,6.0849299431,896,-1.0000000000 +103,0,0.1860902607,103,6.2116336823,897,-1.0000000000 +104,0,0.1604204327,104,7.4374589920,898,-1.0000000000 +105,0,0.1235561371,105,8.7856378555,899,-1.0000000000 +106,0,0.0918275937,106,17.3154182434,900,-1.0000000000 +107,0,0.0287123173,107,21.9835720062,901,-1.0000000000 +108,0,0.0145352446,108,27.4179573059,902,-1.0000000000 +109,0,0.0012948827,109,31.5514335632,903,-1.0000000000 +110,0,0.0000999159,110,31.6227760315,904,-1.0000000000 +111,0,0.0002175442,111,31.6227760315,905,-1.0000000000 +112,0,0.0002331373,112,31.6227760315,906,-1.0000000000 +113,0,0.0001173035,113,31.6223812103,907,-1.0000000000 +114,0,-0.0003774550,114,31.6227760315,908,-1.0000000000 +115,0,0.0000420564,115,31.6210212708,909,-1.0000000000 +116,0,-0.0008032957,116,31.6226425171,910,-1.0000000000 +117,0,0.0138732493,117,29.9801807404,911,-1.0000000000 +118,0,0.0654990301,118,16.7729282379,912,-1.0000000000 +119,0,0.1190289780,119,9.7614259720,913,-1.0000000000 +120,0,0.1674656868,120,8.2633466721,914,-1.0000000000 +121,0,0.2256945670,121,6.8788871765,915,-1.0000000000 +122,0,0.3065535724,122,4.5844759941,916,-1.0000000000 +123,0,0.3674325645,123,3.8042459488,917,-1.0000000000 +124,0,0.4210087359,124,3.4374401569,918,-1.0000000000 +125,0,0.4700816572,125,3.2917919159,919,-1.0000000000 +126,0,0.5004815459,126,3.0672521591,920,-1.0000000000 +127,0,0.5274384022,127,2.9202229977,921,-1.0000000000 +128,0,0.5072142482,128,2.9477114677,922,-1.0000000000 +129,0,0.4729066789,129,3.1703896523,923,-1.0000000000 +130,0,0.4116190672,130,3.6987824440,924,-1.0000000000 +131,0,0.3370232880,131,4.3520565033,925,-1.0000000000 +132,0,0.2831015885,132,5.0502543449,926,-1.0000000000 +133,0,0.2085866928,133,6.4650530815,927,-1.0000000000 +134,0,0.1565031260,134,8.8168840408,928,-1.0000000000 +135,0,0.1231054738,135,11.4613828659,929,-1.0000000000 +136,0,0.0485384166,136,19.9370212555,930,-1.0000000000 +137,0,0.0126857972,137,29.6892795563,931,-1.0000000000 +138,0,0.0004422957,138,31.6210861206,932,-1.0000000000 +139,0,0.0000184700,139,31.6227760315,933,-1.0000000000 +140,0,0.0001403502,140,31.6227760315,934,-1.0000000000 +141,0,0.0000654595,141,31.6227760315,935,-1.0000000000 +142,0,0.0000607840,142,31.6227760315,936,-1.0000000000 +143,0,-0.0005186090,143,31.6206760406,937,-1.0000000000 +144,0,0.0214564912,144,26.3024940491,938,-1.0000000000 +145,0,0.0900339484,145,14.6895189285,939,-1.0000000000 +146,0,0.1642016321,146,9.0687723160,940,-1.0000000000 +147,0,0.2214516252,147,6.4044857025,941,-1.0000000000 +148,0,0.2872681916,148,4.8680295944,942,-1.0000000000 +149,0,0.3685337305,149,3.8092288971,943,-1.0000000000 +150,0,0.4711169004,150,3.1616506577,944,-1.0000000000 +151,0,0.5671803355,151,2.7714066505,945,-1.0000000000 +152,0,0.6571742296,152,2.5546631813,946,-1.0000000000 +153,0,0.7373042703,153,2.4611840248,947,-1.0000000000 +154,0,0.8158724904,154,2.4277541637,948,-1.0000000000 +155,0,0.8480603099,155,2.3826928139,949,-1.0000000000 +156,0,0.8326759934,156,2.4234437943,950,-1.0000000000 +157,0,0.7751068473,157,2.4501872063,951,-1.0000000000 +158,0,0.6702090502,158,2.6260018349,952,-1.0000000000 +159,0,0.5534479022,159,2.8712155819,953,-1.0000000000 +160,0,0.4441415370,160,3.4023094177,954,-1.0000000000 +161,0,0.3377563059,161,4.1463561058,955,-1.0000000000 +162,0,0.2536413372,162,5.1094250679,956,-1.0000000000 +163,0,0.2015810758,163,6.4431381226,957,-1.0000000000 +164,0,0.1061781123,164,11.9039440155,958,-1.0000000000 +165,0,0.0474606641,165,19.9438781738,959,-1.0000000000 +166,0,0.0081077237,166,30.3990650177,960,-1.0000000000 +167,0,-0.0000006077,167,31.6227760315,961,-1.0000000000 +168,0,0.0000963342,168,31.6227760315,962,-1.0000000000 +169,0,0.0002636870,169,31.6205902100,963,-1.0000000000 +170,0,-0.0003005093,170,31.6178646088,964,-1.0000000000 +171,0,0.0115523944,171,29.6655826569,965,-1.0000000000 +172,0,0.0760080963,172,16.1452503204,966,-1.0000000000 +173,0,0.1558186561,173,8.4764928818,967,-1.0000000000 +174,0,0.2341038138,174,5.7819528580,968,-1.0000000000 +175,0,0.3126183152,175,4.5563411713,969,-1.0000000000 +176,0,0.4008408189,176,3.6441061497,970,-1.0000000000 +177,0,0.5085703731,177,3.0180699825,971,-1.0000000000 +178,0,0.6294556856,178,2.6308863163,972,-1.0000000000 +179,0,0.7481387258,179,2.4874277115,973,-1.0000000000 +180,0,0.8824155331,180,2.3697898388,974,-1.0000000000 +181,0,0.9917500019,181,2.3214147091,975,-1.0000000000 +182,0,1.0729775429,182,2.3268144131,976,-1.0000000000 +183,0,1.1049280167,183,2.3041279316,977,-1.0000000000 +184,0,1.0722656250,184,2.2890098095,978,-1.0000000000 +185,0,0.9774256349,185,2.2437229156,979,-1.0000000000 +186,0,0.8916051388,186,2.3827562332,980,-1.0000000000 +187,0,0.7057592273,187,2.4946858883,981,-1.0000000000 +188,0,0.5681874156,188,2.8479213715,982,-1.0000000000 +189,0,0.4187501967,189,3.4652247429,983,-1.0000000000 +190,0,0.3286397457,190,4.2516651154,984,-1.0000000000 +191,0,0.2453264892,191,5.6235122681,985,-1.0000000000 +192,0,0.1493728757,192,9.1089239120,986,-1.0000000000 +193,0,0.1055997238,193,12.5630216599,987,-1.0000000000 +194,0,0.0577709414,194,17.1816596985,988,-1.0000000000 +195,0,0.0001650765,195,31.6227550507,989,-1.0000000000 +196,0,0.0001360730,196,31.6227760315,990,-1.0000000000 +197,0,0.0286665205,197,25.7242279053,991,-1.0000000000 +198,0,0.0185648240,198,29.1938343048,992,-1.0000000000 +199,0,0.0463312007,199,17.7456054688,993,-1.0000000000 +200,0,0.1100403145,200,11.7338247299,994,-1.0000000000 +201,0,0.1908266991,201,6.9581613541,995,-1.0000000000 +202,0,0.3026175797,202,4.6381225586,996,-1.0000000000 +203,0,0.3958640099,203,3.6027181149,997,-1.0000000000 +204,0,0.4933891296,204,3.0626730919,998,-1.0000000000 +205,0,0.6277903318,205,2.6963646412,999,-1.0000000000 +206,0,0.7647606730,206,2.4716770649,1000,-1.0000000000 +207,0,0.8989660740,207,2.4109206200,1001,-1.0000000000 +208,0,1.0284951925,208,2.3586513996,1002,-1.0000000000 +209,0,1.0996196270,209,2.3010489941,1003,-1.0000000000 +210,0,1.1790245771,210,2.3166940212,1004,-1.0000000000 +211,0,1.2310339212,211,2.3528943062,1005,-1.0000000000 +212,0,1.2175028324,212,2.3542003632,1006,-1.0000000000 +213,0,1.1302845478,213,2.3178131580,1007,-1.0000000000 +214,0,1.0352075100,214,2.3592703342,1008,-1.0000000000 +215,0,0.8394643068,215,2.3962028027,1009,-1.0000000000 +216,0,0.6509366035,216,2.7720828056,1010,-1.0000000000 +217,0,0.4646136165,217,3.1780204773,1011,-1.0000000000 +218,0,0.3690448403,218,3.7357251644,1012,-1.0000000000 +219,0,0.2772509754,219,4.9801034927,1013,-1.0000000000 +220,0,0.1976015866,220,6.7223825455,1014,-1.0000000000 +221,0,0.1370779425,221,9.2390718460,1015,-1.0000000000 +222,0,0.0497566685,222,18.3531360626,1016,-1.0000000000 +223,0,-0.0003765492,223,31.6227493286,1017,-1.0000000000 +224,0,-0.0000978563,224,31.6227760315,1018,-1.0000000000 +225,0,0.0055302819,225,29.4070453644,1019,-1.0000000000 +226,0,0.0239453297,226,26.8379230499,1020,-1.0000000000 +227,0,0.0624308847,227,17.4192199707,1021,-1.0000000000 +228,0,0.1402922124,228,9.4714317322,1022,-1.0000000000 +229,0,0.2283508927,229,6.0654091835,1023,-1.0000000000 +230,0,0.3311395645,230,4.1958436966,1024,-1.0000000000 +231,0,0.4342799783,231,3.2883524895,1025,-1.0000000000 +232,0,0.5590006709,232,2.8224635124,1026,-1.0000000000 +233,0,0.7316516638,233,2.5400061607,1027,-1.0000000000 +234,0,0.8548274636,234,2.4144558907,1028,-1.0000000000 +235,0,0.9891402721,235,2.3530962467,1029,-1.0000000000 +236,0,1.0502716303,236,2.3016290665,1030,-1.0000000000 +237,0,1.0607392788,237,2.2903811932,1031,-1.0000000000 +238,0,1.1183186769,238,2.3235101700,1032,-1.0000000000 +239,0,1.1194092035,239,2.3126912117,1033,-1.0000000000 +240,0,1.1294481754,240,2.3333547115,1034,-1.0000000000 +241,0,1.1141145229,241,2.3193163872,1035,-1.0000000000 +242,0,1.0437884331,242,2.2823159695,1036,-1.0000000000 +243,0,0.8947256804,243,2.3181655407,1037,-1.0000000000 +244,0,0.7067958117,244,2.5579893589,1038,-1.0000000000 +245,0,0.5081296563,245,3.0765430927,1039,-1.0000000000 +246,0,0.3798761666,246,3.6714072227,1040,-1.0000000000 +247,0,0.2857289016,247,4.7601342201,1041,-1.0000000000 +248,0,0.2004447579,248,6.0894117355,1042,-1.0000000000 +249,0,0.1385634840,249,9.3406229019,1043,-1.0000000000 +250,0,0.0403848663,250,19.1417312622,1044,-1.0000000000 +251,0,0.0001982165,251,31.6227760315,1045,-1.0000000000 +252,0,0.0001750147,252,31.6227760315,1046,-1.0000000000 +253,0,0.0042383769,253,30.0029430389,1047,-1.0000000000 +254,0,0.0337815769,254,21.3715801239,1048,-1.0000000000 +255,0,0.0844024718,255,14.8542079926,1049,-1.0000000000 +256,0,0.1610622257,256,7.5341968536,1050,-1.0000000000 +257,0,0.2227348387,257,5.6300301552,1051,-1.0000000000 +258,0,0.3526701033,258,3.9894003868,1052,-1.0000000000 +259,0,0.4723548591,259,3.1466460228,1053,-1.0000000000 +260,0,0.6160907149,260,2.7099738121,1054,-1.0000000000 +261,0,0.7912367582,261,2.4634957314,1055,-1.0000000000 +262,0,0.9398992062,262,2.3564286232,1056,-1.0000000000 +263,0,1.0118169785,263,2.2864329815,1057,-1.0000000000 +264,0,0.9678423405,264,2.3070170879,1058,-1.0000000000 +265,0,0.9376413226,265,2.3450162411,1059,-1.0000000000 +266,0,0.9355269670,266,2.3803303242,1060,-1.0000000000 +267,0,0.9543191195,267,2.3556554317,1061,-1.0000000000 +268,0,1.0108853579,268,2.3408815861,1062,-1.0000000000 +269,0,1.0471606255,269,2.3146529198,1063,-1.0000000000 +270,0,0.9970059395,270,2.2666883469,1064,-1.0000000000 +271,0,0.8818715811,271,2.3353953362,1065,-1.0000000000 +272,0,0.6957759261,272,2.5611574650,1066,-1.0000000000 +273,0,0.5319196582,273,3.0077891350,1067,-1.0000000000 +274,0,0.3815186620,274,3.6669015884,1068,-1.0000000000 +275,0,0.2636581063,275,5.1261324883,1069,-1.0000000000 +276,0,0.1597977132,276,8.1884031296,1070,-1.0000000000 +277,0,0.0801797807,277,14.1901311874,1071,-1.0000000000 +278,0,0.0370516144,278,20.5537090302,1072,-1.0000000000 +279,0,-0.0004002613,279,31.6050453186,1073,-1.0000000000 +280,0,-0.0003776760,280,31.6227111816,1074,-1.0000000000 +281,0,0.0021100610,281,31.5973281860,1075,-1.0000000000 +282,0,0.0257851910,282,26.2151908875,1076,-1.0000000000 +283,0,0.0611026809,283,17.1719360352,1077,-1.0000000000 +284,0,0.1393538266,284,8.7866668701,1078,-1.0000000000 +285,0,0.2184684724,285,6.0777459145,1079,-1.0000000000 +286,0,0.3355731368,286,4.2265377045,1080,-1.0000000000 +287,0,0.4826321006,287,3.1534481049,1081,-1.0000000000 +288,0,0.6489428878,288,2.6726737022,1082,-1.0000000000 +289,0,0.8263921738,289,2.3904621601,1083,-1.0000000000 +290,0,0.9376775622,290,2.3048274517,1084,-1.0000000000 +291,0,0.9587321281,291,2.3109583855,1085,-1.0000000000 +292,0,0.8675266504,292,2.3774199486,1086,-1.0000000000 +293,0,0.8094529510,293,2.5560112000,1087,-1.0000000000 +294,0,0.7863086462,294,2.5117721558,1088,-1.0000000000 +295,0,0.8640347719,295,2.3969352245,1089,-1.0000000000 +296,0,0.9173959494,296,2.3281571865,1090,-1.0000000000 +297,0,0.9688491821,297,2.3375737667,1091,-1.0000000000 +298,0,0.9456661344,298,2.3412094116,1092,-1.0000000000 +299,0,0.8205282092,299,2.3724005222,1093,-1.0000000000 +300,0,0.6771087646,300,2.5506916046,1094,-1.0000000000 +301,0,0.5108327866,301,2.9238371849,1095,-1.0000000000 +302,0,0.3787623048,302,3.7161893845,1096,-1.0000000000 +303,0,0.2699432671,303,5.4588193893,1097,-1.0000000000 +304,0,0.1464111656,304,10.0295314789,1098,-1.0000000000 +305,0,0.0792720169,305,16.0952014923,1099,-1.0000000000 +306,0,0.0059705833,306,31.2058010101,1100,-1.0000000000 +307,0,0.0004632693,307,31.5308609009,1101,-1.0000000000 +308,0,0.0043669338,308,30.6051616669,1102,-1.0000000000 +309,0,0.0063748998,309,29.8326950073,1103,-1.0000000000 +310,0,0.0159165747,310,28.5636730194,1104,-1.0000000000 +311,0,0.0448154770,311,20.4961643219,1105,-1.0000000000 +312,0,0.1235546991,312,10.9966354370,1106,-1.0000000000 +313,0,0.2231135815,313,6.1386961937,1107,-1.0000000000 +314,0,0.3377698064,314,4.2937984467,1108,-1.0000000000 +315,0,0.4951098561,315,3.1601424217,1109,-1.0000000000 +316,0,0.6553843021,316,2.6288735867,1110,-1.0000000000 +317,0,0.8079286218,317,2.3804090023,1111,-1.0000000000 +318,0,0.9239451885,318,2.3580360413,1112,-1.0000000000 +319,0,0.8803372979,319,2.3451416492,1113,-1.0000000000 +320,0,0.7921043038,320,2.4804413319,1114,-1.0000000000 +321,0,0.7499290109,321,2.5833342075,1115,-1.0000000000 +322,0,0.7702397704,322,2.4749538898,1116,-1.0000000000 +323,0,0.8655048609,323,2.3455898762,1117,-1.0000000000 +324,0,0.9550458789,324,2.3513987064,1118,-1.0000000000 +325,0,0.9986506104,325,2.3708248138,1119,-1.0000000000 +326,0,0.9347382188,326,2.3565754890,1120,-1.0000000000 +327,0,0.8275583982,327,2.4049818516,1121,-1.0000000000 +328,0,0.6480501294,328,2.6506526470,1122,-1.0000000000 +329,0,0.4856687486,329,3.0139541626,1123,-1.0000000000 +330,0,0.3583132625,330,3.9707667828,1124,-1.0000000000 +331,0,0.2453819662,331,5.6648898125,1125,-1.0000000000 +332,0,0.1315680295,332,9.5050153732,1126,-1.0000000000 +333,0,0.0543179512,333,19.6717777252,1127,-1.0000000000 +334,0,0.0002487019,334,31.5746517181,1128,-1.0000000000 +335,0,-0.0004916147,335,31.6226940155,1129,-1.0000000000 +336,0,0.0001359140,336,31.6227760315,1130,-1.0000000000 +337,0,0.0007245721,337,31.6227684021,1131,-1.0000000000 +338,0,-0.0002426033,338,31.5914230347,1132,-1.0000000000 +339,0,0.0228728075,339,26.4781723022,1133,-1.0000000000 +340,0,0.1194402054,340,12.1590147018,1134,-1.0000000000 +341,0,0.2250171900,341,6.1180801392,1135,-1.0000000000 +342,0,0.3482197821,342,4.1998472214,1136,-1.0000000000 +343,0,0.5096925497,343,3.1183922291,1137,-1.0000000000 +344,0,0.6711575985,344,2.5549144745,1138,-1.0000000000 +345,0,0.8273203373,345,2.3965148926,1139,-1.0000000000 +346,0,0.8989909887,346,2.3424625397,1140,-1.0000000000 +347,0,0.8338220119,347,2.3802590370,1141,-1.0000000000 +348,0,0.7712999582,348,2.4435381889,1142,-1.0000000000 +349,0,0.7810522914,349,2.4618661404,1143,-1.0000000000 +350,0,0.8488454223,350,2.3637220860,1144,-1.0000000000 +351,0,0.9808951616,351,2.2952208519,1145,-1.0000000000 +352,0,1.0584679842,352,2.3287153244,1146,-1.0000000000 +353,0,1.0484929085,353,2.3668515682,1147,-1.0000000000 +354,0,0.9439478517,354,2.3677756786,1148,-1.0000000000 +355,0,0.8024018407,355,2.4240152836,1149,-1.0000000000 +356,0,0.6145404577,356,2.7419781685,1150,-1.0000000000 +357,0,0.4524665475,357,3.2188079357,1151,-1.0000000000 +358,0,0.3541513085,358,4.3514347076,1152,-1.0000000000 +359,0,0.2111083865,359,6.3587808609,1153,-1.0000000000 +360,0,0.1307028979,360,10.0998725891,1154,-1.0000000000 +361,0,0.0321570523,361,21.4319057465,1155,-1.0000000000 +362,0,0.0006438673,362,31.6147212982,1156,-1.0000000000 +363,0,0.0009358423,363,31.6227760315,1157,-1.0000000000 +364,0,0.0002634405,364,31.6227760315,1158,-1.0000000000 +365,0,0.0010150694,365,31.6227722168,1159,-1.0000000000 +366,0,0.0004529505,366,31.6223411560,1160,-1.0000000000 +367,0,0.0137116825,367,27.4318256378,1161,-1.0000000000 +368,0,0.1160466224,368,10.0018968582,1162,-1.0000000000 +369,0,0.2345420271,369,5.8403391838,1163,-1.0000000000 +370,0,0.3708416522,370,3.8688480854,1164,-1.0000000000 +371,0,0.5300990939,371,2.9528651237,1165,-1.0000000000 +372,0,0.6892153025,372,2.5064487457,1166,-1.0000000000 +373,0,0.8098425865,373,2.3663296700,1167,-1.0000000000 +374,0,0.8341104388,374,2.3519144058,1168,-1.0000000000 +375,0,0.8101239204,375,2.4575023651,1169,-1.0000000000 +376,0,0.7889069915,376,2.4505796432,1170,-1.0000000000 +377,0,0.8793845773,377,2.4021737576,1171,-1.0000000000 +378,0,1.0059598684,378,2.3136579990,1172,-1.0000000000 +379,0,1.1230267286,379,2.2888503075,1173,-1.0000000000 +380,0,1.1797831059,380,2.3769843578,1174,-1.0000000000 +381,0,1.1613332033,381,2.4126398563,1175,-1.0000000000 +382,0,0.9623417258,382,2.2927162647,1176,-1.0000000000 +383,0,0.7934286594,383,2.4647991657,1177,-1.0000000000 +384,0,0.5926273465,384,2.7928922176,1178,-1.0000000000 +385,0,0.4492661655,385,3.2474975586,1179,-1.0000000000 +386,0,0.3443657458,386,4.2985219955,1180,-1.0000000000 +387,0,0.2314104587,387,5.9285354614,1181,-1.0000000000 +388,0,0.1472378820,388,9.3181419373,1182,-1.0000000000 +389,0,0.0351320319,389,20.6197624207,1183,-1.0000000000 +390,0,0.0014228243,390,31.5211696625,1184,-1.0000000000 +391,0,0.0008443597,391,31.6227760315,1185,-1.0000000000 +392,0,0.0099181151,392,29.6695613861,1186,-1.0000000000 +393,0,0.0006278105,393,31.6227760315,1187,-1.0000000000 +394,0,0.0003538693,394,31.6227512360,1188,-1.0000000000 +395,0,0.0145763783,395,27.5814151764,1189,-1.0000000000 +396,0,0.1199709773,396,10.8346366882,1190,-1.0000000000 +397,0,0.2440324277,397,5.7197704315,1191,-1.0000000000 +398,0,0.3900867701,398,3.5687365532,1192,-1.0000000000 +399,0,0.5461060405,399,2.8410024643,1193,-1.0000000000 +400,0,0.6898619533,400,2.5129566193,1194,-1.0000000000 +401,0,0.7780957818,401,2.4161820412,1195,-1.0000000000 +402,0,0.8212936521,402,2.4362788200,1196,-1.0000000000 +403,0,0.8196046352,403,2.4716432095,1197,-1.0000000000 +404,0,0.8615708947,404,2.4565105438,1198,-1.0000000000 +405,0,1.0007439852,405,2.3347504139,1199,-1.0000000000 +406,0,1.1029356718,406,2.2086555958,1200,-1.0000000000 +407,0,1.2631444931,407,2.3114092350,1201,-1.0000000000 +408,0,1.2674189806,408,2.3837871552,1202,-1.0000000000 +409,0,1.1696907282,409,2.3068034649,1203,-1.0000000000 +410,0,1.0013144016,410,2.2855141163,1204,-1.0000000000 +411,0,0.7892069817,411,2.4214391708,1205,-1.0000000000 +412,0,0.6106898189,412,2.7888779640,1206,-1.0000000000 +413,0,0.4649244547,413,3.2812552452,1207,-1.0000000000 +414,0,0.3470404446,414,4.0626425743,1208,-1.0000000000 +415,0,0.2548494935,415,5.3905172348,1209,-1.0000000000 +416,0,0.1753427535,416,7.4863877296,1210,-1.0000000000 +417,0,0.0696761087,417,15.3962125778,1211,-1.0000000000 +418,0,0.0011654531,418,31.4477596283,1212,-1.0000000000 +419,0,0.0005153015,419,31.6227760315,1213,-1.0000000000 +420,0,0.0022581830,420,31.3947219849,1214,-1.0000000000 +421,0,-0.0005039608,421,31.6227760315,1215,-1.0000000000 +422,0,0.0006990994,422,31.6138477325,1216,-1.0000000000 +423,0,0.0477251969,423,22.0904197693,1217,-1.0000000000 +424,0,0.1369994134,424,9.3862142563,1218,-1.0000000000 +425,0,0.2709477246,425,5.0977196693,1219,-1.0000000000 +426,0,0.4073841870,426,3.4829053879,1220,-1.0000000000 +427,0,0.5448542237,427,2.8721144199,1221,-1.0000000000 +428,0,0.6622777581,428,2.5826773643,1222,-1.0000000000 +429,0,0.7555070519,429,2.4061858654,1223,-1.0000000000 +430,0,0.8002126217,430,2.4329354763,1224,-1.0000000000 +431,0,0.8153559566,431,2.3994085789,1225,-1.0000000000 +432,0,0.8970652223,432,2.3870296478,1226,-1.0000000000 +433,0,1.0205209255,433,2.2956838608,1227,-1.0000000000 +434,0,1.1738963127,434,2.2933826447,1228,-1.0000000000 +435,0,1.2575677633,435,2.3463256359,1229,-1.0000000000 +436,0,1.2230237722,436,2.3524501324,1230,-1.0000000000 +437,0,1.1259639263,437,2.2667458057,1231,-1.0000000000 +438,0,0.9997518659,438,2.2932496071,1232,-1.0000000000 +439,0,0.7922306657,439,2.4435393810,1233,-1.0000000000 +440,0,0.6165519357,440,2.7788236141,1234,-1.0000000000 +441,0,0.4822996259,441,3.1403548717,1235,-1.0000000000 +442,0,0.3766285479,442,3.7291548252,1236,-1.0000000000 +443,0,0.2857866883,443,4.6315340996,1237,-1.0000000000 +444,0,0.1797532737,444,6.7200350761,1238,-1.0000000000 +445,0,0.0752173588,445,14.3447551727,1239,-1.0000000000 +446,0,0.0005639646,446,31.2004222870,1240,-1.0000000000 +447,0,-0.0001979070,447,31.6074485779,1241,-1.0000000000 +448,0,-0.0003395307,448,31.6227760315,1242,-1.0000000000 +449,0,-0.0001639747,449,31.6227760315,1243,-1.0000000000 +450,0,0.0036350526,450,30.9096469879,1244,-1.0000000000 +451,0,0.0473100618,451,20.2599525452,1245,-1.0000000000 +452,0,0.1546910107,452,8.4040956497,1246,-1.0000000000 +453,0,0.2969757318,453,4.8829870224,1247,-1.0000000000 +454,0,0.4089812934,454,3.4783515930,1248,-1.0000000000 +455,0,0.5411127210,455,2.9201178551,1249,-1.0000000000 +456,0,0.6237353086,456,2.6100988388,1250,-1.0000000000 +457,0,0.7418503165,457,2.4577949047,1251,-1.0000000000 +458,0,0.7519995570,458,2.4328489304,1252,-1.0000000000 +459,0,0.8003866076,459,2.4379255772,1253,-1.0000000000 +460,0,0.8349192142,460,2.3691625595,1254,-1.0000000000 +461,0,0.9357497692,461,2.3182308674,1255,-1.0000000000 +462,0,1.0823613405,462,2.3047502041,1256,-1.0000000000 +463,0,1.1418485641,463,2.3236503601,1257,-1.0000000000 +464,0,1.1479303837,464,2.3056936264,1258,-1.0000000000 +465,0,1.0592665672,465,2.3006165028,1259,-1.0000000000 +466,0,0.9168865085,466,2.3271152973,1260,-1.0000000000 +467,0,0.7404270768,467,2.4720604420,1261,-1.0000000000 +468,0,0.6123292446,468,2.7189273834,1262,-1.0000000000 +469,0,0.4894371331,469,3.0747077465,1263,-1.0000000000 +470,0,0.3859493136,470,3.6469478607,1264,-1.0000000000 +471,0,0.2822641730,471,4.7010302544,1265,-1.0000000000 +472,0,0.1787402332,472,7.5456037521,1266,-1.0000000000 +473,0,0.0621588230,473,16.5414638519,1267,-1.0000000000 +474,0,0.0011913897,474,31.1215934753,1268,-1.0000000000 +475,0,-0.0002103663,475,31.4152126312,1269,-1.0000000000 +476,0,0.0003792991,476,31.6227760315,1270,-1.0000000000 +477,0,0.0001732394,477,31.4972496033,1271,-1.0000000000 +478,0,0.0046014036,478,30.8621158600,1272,-1.0000000000 +479,0,0.0576600619,479,19.4848232269,1273,-1.0000000000 +480,0,0.1628940701,480,7.7923212051,1274,-1.0000000000 +481,0,0.2965573668,481,4.9645648003,1275,-1.0000000000 +482,0,0.4250472188,482,3.4230914116,1276,-1.0000000000 +483,0,0.5318685770,483,2.9077155590,1277,-1.0000000000 +484,0,0.6013643146,484,2.6383554935,1278,-1.0000000000 +485,0,0.6761335135,485,2.5247249603,1279,-1.0000000000 +486,0,0.7152107358,486,2.5478014946,1280,-1.0000000000 +487,0,0.7259470820,487,2.4765470028,1281,-1.0000000000 +488,0,0.7759909034,488,2.4189951420,1282,-1.0000000000 +489,0,0.8643364310,489,2.3606874943,1283,-1.0000000000 +490,0,0.9827626348,490,2.2951855659,1284,-1.0000000000 +491,0,1.0664774179,491,2.2927172184,1285,-1.0000000000 +492,0,1.0456911325,492,2.2863845825,1286,-1.0000000000 +493,0,0.9820244312,493,2.3256044388,1287,-1.0000000000 +494,0,0.8542780876,494,2.3467662334,1288,-1.0000000000 +495,0,0.7340826988,495,2.5039217472,1289,-1.0000000000 +496,0,0.5968572497,496,2.7374470234,1290,-1.0000000000 +497,0,0.4873765409,497,3.0340442657,1291,-1.0000000000 +498,0,0.3672321439,498,3.8976264000,1292,-1.0000000000 +499,0,0.2460707277,499,5.2589669228,1293,-1.0000000000 +500,0,0.1587331593,500,8.3845701218,1294,-1.0000000000 +501,0,0.0695172399,501,15.4914751053,1295,-1.0000000000 +502,0,0.0014563977,502,31.0409355164,1296,-1.0000000000 +503,0,-0.0004635351,503,31.6086044312,1297,-1.0000000000 +504,0,0.0006251551,504,31.6227684021,1298,-1.0000000000 +505,0,0.0001793502,505,31.3493156433,1299,-1.0000000000 +506,0,0.0272259805,506,26.2832393646,1300,-1.0000000000 +507,0,0.0631093308,507,16.6588172913,1301,-1.0000000000 +508,0,0.1657525301,508,7.3287153244,1302,-1.0000000000 +509,0,0.2855381370,509,5.0466980934,1303,-1.0000000000 +510,0,0.4234611988,510,3.3581931591,1304,-1.0000000000 +511,0,0.5355196595,511,2.9099872112,1305,-1.0000000000 +512,0,0.5872064233,512,2.7330672741,1306,-1.0000000000 +513,0,0.6371801496,513,2.5911569595,1307,-1.0000000000 +514,0,0.7026461959,514,2.5588054657,1308,-1.0000000000 +515,0,0.7171602249,515,2.4488122463,1309,-1.0000000000 +516,0,0.7390315533,516,2.4854843616,1310,-1.0000000000 +517,0,0.8491621017,517,2.3858935833,1311,-1.0000000000 +518,0,0.9590334296,518,2.3105680943,1312,-1.0000000000 +519,0,1.0337742567,519,2.3163540363,1313,-1.0000000000 +520,0,1.0172015429,520,2.3164091110,1314,-1.0000000000 +521,0,0.9606239796,521,2.3229632378,1315,-1.0000000000 +522,0,0.8654842377,522,2.3833553791,1316,-1.0000000000 +523,0,0.7076365352,523,2.4972376823,1317,-1.0000000000 +524,0,0.5839534402,524,2.7767996788,1318,-1.0000000000 +525,0,0.4629037380,525,3.2973482609,1319,-1.0000000000 +526,0,0.3223178983,526,4.1649656296,1320,-1.0000000000 +527,0,0.2451560944,527,5.5368881226,1321,-1.0000000000 +528,0,0.1502188295,528,8.9174118042,1322,-1.0000000000 +529,0,0.0671202466,529,16.8515014648,1323,-1.0000000000 +530,0,0.0168995671,530,27.8533496857,1324,-1.0000000000 +531,0,0.0027108516,531,30.7577781677,1325,-1.0000000000 +532,0,-0.0004748474,532,31.6227760315,1326,-1.0000000000 +533,0,0.0000889081,533,31.4278774261,1327,-1.0000000000 +534,0,0.0426550955,534,18.8880081177,1328,-1.0000000000 +535,0,0.0897340700,535,14.2352895737,1329,-1.0000000000 +536,0,0.1835324466,536,6.9632315636,1330,-1.0000000000 +537,0,0.2979731560,537,4.7712202072,1331,-1.0000000000 +538,0,0.4157102704,538,3.4161942005,1332,-1.0000000000 +539,0,0.5524196029,539,2.9093339443,1333,-1.0000000000 +540,0,0.6347330213,540,2.6985633373,1334,-1.0000000000 +541,0,0.6873387098,541,2.5735416412,1335,-1.0000000000 +542,0,0.7337716818,542,2.5132219791,1336,-1.0000000000 +543,0,0.7439809442,543,2.4510378838,1337,-1.0000000000 +544,0,0.8024758697,544,2.4043424129,1338,-1.0000000000 +545,0,0.9168453813,545,2.3399312496,1339,-1.0000000000 +546,0,1.0280338526,546,2.3012630939,1340,-1.0000000000 +547,0,1.0949355364,547,2.3466596603,1341,-1.0000000000 +548,0,1.0854176283,548,2.3466114998,1342,-1.0000000000 +549,0,0.9963572621,549,2.3077476025,1343,-1.0000000000 +550,0,0.8625664115,550,2.3717453480,1344,-1.0000000000 +551,0,0.6984025836,551,2.5627849102,1345,-1.0000000000 +552,0,0.5655143857,552,2.8067283630,1346,-1.0000000000 +553,0,0.4338583946,553,3.3975961208,1347,-1.0000000000 +554,0,0.3148156703,554,4.4280271530,1348,-1.0000000000 +555,0,0.2177419066,555,6.1449913979,1349,-1.0000000000 +556,0,0.1394918263,556,9.3737068176,1350,-1.0000000000 +557,0,0.0666871071,557,15.0768060684,1351,-1.0000000000 +558,0,0.0241600294,558,21.9253787994,1352,-1.0000000000 +559,0,0.0023356657,559,31.0733852386,1353,-1.0000000000 +560,0,0.0005278823,560,31.6227760315,1354,-1.0000000000 +561,0,0.0003284318,561,31.6154689789,1355,-1.0000000000 +562,0,0.0723905489,562,16.1907138824,1356,-1.0000000000 +563,0,0.1137683168,563,10.0528793335,1357,-1.0000000000 +564,0,0.1933699250,564,6.3731698990,1358,-1.0000000000 +565,0,0.2978318036,565,4.5994777679,1359,-1.0000000000 +566,0,0.4207669199,566,3.4823834896,1360,-1.0000000000 +567,0,0.5616418719,567,2.8318614960,1361,-1.0000000000 +568,0,0.6912870407,568,2.5435352325,1362,-1.0000000000 +569,0,0.7708287239,569,2.4794592857,1363,-1.0000000000 +570,0,0.8215371370,570,2.4028928280,1364,-1.0000000000 +571,0,0.8826347589,571,2.3621711731,1365,-1.0000000000 +572,0,0.9627836943,572,2.3196456432,1366,-1.0000000000 +573,0,1.1106199026,573,2.3130993843,1367,-1.0000000000 +574,0,1.2246385813,574,2.3607060909,1368,-1.0000000000 +575,0,1.2177535295,575,2.3455936909,1369,-1.0000000000 +576,0,1.1265897751,576,2.3350877762,1370,-1.0000000000 +577,0,1.0035156012,577,2.3239722252,1371,-1.0000000000 +578,0,0.8064009547,578,2.4052209854,1372,-1.0000000000 +579,0,0.6292597055,579,2.6512899399,1373,-1.0000000000 +580,0,0.4997098446,580,3.0128855705,1374,-1.0000000000 +581,0,0.3879833221,581,3.6579921246,1375,-1.0000000000 +582,0,0.2890135050,582,4.8065571785,1376,-1.0000000000 +583,0,0.1925205886,583,7.4596571922,1377,-1.0000000000 +584,0,0.1238536388,584,11.0189476013,1378,-1.0000000000 +585,0,0.0504309833,585,19.6995429993,1379,-1.0000000000 +586,0,0.0241918098,586,29.3324947357,1380,-1.0000000000 +587,0,0.0003931704,587,31.6227760315,1381,-1.0000000000 +588,0,0.0000209329,588,31.6227760315,1382,-1.0000000000 +589,0,-0.0001734847,589,31.6227760315,1383,-1.0000000000 +590,0,0.0607455708,590,14.3712387085,1384,-1.0000000000 +591,0,0.1017537937,591,11.4408884048,1385,-1.0000000000 +592,0,0.1845139414,592,7.3711776733,1386,-1.0000000000 +593,0,0.2864980102,593,4.6154351234,1387,-1.0000000000 +594,0,0.4105657041,594,3.3562819958,1388,-1.0000000000 +595,0,0.5539539456,595,2.8899328709,1389,-1.0000000000 +596,0,0.6790744066,596,2.5217244625,1390,-1.0000000000 +597,0,0.8194868565,597,2.3978948593,1391,-1.0000000000 +598,0,0.9098239541,598,2.3392369747,1392,-1.0000000000 +599,0,1.0223187208,599,2.2961740494,1393,-1.0000000000 +600,0,1.1595125198,600,2.3070757389,1394,-1.0000000000 +601,0,1.3060013056,601,2.3680303097,1395,-1.0000000000 +602,0,1.3420419693,602,2.3928475380,1396,-1.0000000000 +603,0,1.2148033381,603,2.3111648560,1397,-1.0000000000 +604,0,1.0699449778,604,2.3505551815,1398,-1.0000000000 +605,0,0.8734347224,605,2.3596315384,1399,-1.0000000000 +606,0,0.7014126182,606,2.5934374332,1400,-1.0000000000 +607,0,0.5386259556,607,3.0620768070,1401,-1.0000000000 +608,0,0.4120286405,608,3.6871492863,1402,-1.0000000000 +609,0,0.3218664825,609,4.3526191711,1403,-1.0000000000 +610,0,0.2504507601,610,5.4890518188,1404,-1.0000000000 +611,0,0.1661561131,611,7.5762300491,1405,-1.0000000000 +612,0,0.1281819940,612,9.1167297363,1406,-1.0000000000 +613,0,0.0845847353,613,12.5985088348,1407,-1.0000000000 +614,0,0.0390512794,614,22.3714408875,1408,-1.0000000000 +615,0,-0.0009076580,615,31.6227760315,1409,-1.0000000000 +616,0,0.0006949858,616,31.6227760315,1410,-1.0000000000 +617,0,-0.0002807755,617,31.6227760315,1411,-1.0000000000 +618,0,0.0402883030,618,21.7810173035,1412,-1.0000000000 +619,0,0.0869438499,619,13.5456027985,1413,-1.0000000000 +620,0,0.1526628584,620,8.6529712677,1414,-1.0000000000 +621,0,0.2470432669,621,5.2813711166,1415,-1.0000000000 +622,0,0.3586099148,622,3.9963319302,1416,-1.0000000000 +623,0,0.4875319004,623,3.1646375656,1417,-1.0000000000 +624,0,0.6175509095,624,2.6909687519,1418,-1.0000000000 +625,0,0.7506234050,625,2.4454865456,1419,-1.0000000000 +626,0,0.8995615244,626,2.3818230629,1420,-1.0000000000 +627,0,1.0349189043,627,2.3495621681,1421,-1.0000000000 +628,0,1.1513767242,628,2.3277025223,1422,-1.0000000000 +629,0,1.1925117970,629,2.3252859116,1423,-1.0000000000 +630,0,1.1708381176,630,2.3266208172,1424,-1.0000000000 +631,0,1.0055685043,631,2.2985715866,1425,-1.0000000000 +632,0,0.8375660777,632,2.3881287575,1426,-1.0000000000 +633,0,0.6791220307,633,2.5529067516,1427,-1.0000000000 +634,0,0.5486404896,634,3.0046038628,1428,-1.0000000000 +635,0,0.4031040370,635,3.6131353378,1429,-1.0000000000 +636,0,0.3038705885,636,4.2178559303,1430,-1.0000000000 +637,0,0.2524210811,637,5.2704262733,1431,-1.0000000000 +638,0,0.1901981086,638,7.2279939651,1432,-1.0000000000 +639,0,0.1363730580,639,9.2050275803,1433,-1.0000000000 +640,0,0.1073145792,640,11.0745315552,1434,-1.0000000000 +641,0,0.0684229210,641,17.0656967163,1435,-1.0000000000 +642,0,-0.0006744663,642,31.4324455261,1436,-1.0000000000 +643,0,0.0000577544,643,31.6227760315,1437,-1.0000000000 +644,0,0.0001570900,644,31.6227760315,1438,-1.0000000000 +645,0,0.0002731264,645,31.6227760315,1439,-1.0000000000 +646,0,0.0038284403,646,31.5273246765,1440,-1.0000000000 +647,0,0.0601321943,647,24.6100997925,1441,-1.0000000000 +648,0,0.1270000190,648,11.2679891586,1442,-1.0000000000 +649,0,0.1785868257,649,7.4269938469,1443,-1.0000000000 +650,0,0.2439755499,650,5.7582297325,1444,-1.0000000000 +651,0,0.3590478301,651,4.2548680305,1445,-1.0000000000 +652,0,0.4855530262,652,3.1840777397,1446,-1.0000000000 +653,0,0.6170494556,653,2.7186973095,1447,-1.0000000000 +654,0,0.7311881781,654,2.4960284233,1448,-1.0000000000 +655,0,0.8497233391,655,2.3866577148,1449,-1.0000000000 +656,0,0.8977967501,656,2.2938549519,1450,-1.0000000000 +657,0,0.9207286835,657,2.3358664513,1451,-1.0000000000 +658,0,0.8413833380,658,2.4213399887,1452,-1.0000000000 +659,0,0.7170580626,659,2.5448734760,1453,-1.0000000000 +660,0,0.5938371420,660,2.7929685116,1454,-1.0000000000 +661,0,0.5012392998,661,3.1163673401,1455,-1.0000000000 +662,0,0.3831444383,662,3.5627930164,1456,-1.0000000000 +663,0,0.2952043712,663,4.7107014656,1457,-1.0000000000 +664,0,0.2229586542,664,6.1396217346,1458,-1.0000000000 +665,0,0.1698745340,665,8.3822546005,1459,-1.0000000000 +666,0,0.1272457540,666,10.6636753082,1460,-1.0000000000 +667,0,0.0948237330,667,12.6990413666,1461,-1.0000000000 +668,0,0.0626095906,668,16.9660911560,1462,-1.0000000000 +669,0,0.0318746492,669,21.1093711853,1463,-1.0000000000 +670,0,-0.0004596915,670,31.6104564667,1464,-1.0000000000 +671,0,-0.0003297509,671,31.6227760315,1465,-1.0000000000 +672,0,0.0000154043,672,31.6227760315,1466,-1.0000000000 +673,0,-0.0001096721,673,31.6227760315,1467,-1.0000000000 +674,0,0.0178631432,674,29.5287456512,1468,-1.0000000000 +675,0,0.0546890534,675,16.1463527679,1469,-1.0000000000 +676,0,0.0868572965,676,12.2466621399,1470,-1.0000000000 +677,0,0.1117715240,677,10.5556993484,1471,-1.0000000000 +678,0,0.1618072391,678,8.4793176651,1472,-1.0000000000 +679,0,0.2181115299,679,6.4094319344,1473,-1.0000000000 +680,0,0.3212501407,680,4.3094873428,1474,-1.0000000000 +681,0,0.4112867415,681,3.4613811970,1475,-1.0000000000 +682,0,0.5046284795,682,3.0084741116,1476,-1.0000000000 +683,0,0.5720140934,683,2.7893841267,1477,-1.0000000000 +684,0,0.5922526121,684,2.7598524094,1478,-1.0000000000 +685,0,0.5841865540,685,2.8037195206,1479,-1.0000000000 +686,0,0.5365922451,686,3.0683386326,1480,-1.0000000000 +687,0,0.4612809718,687,3.3554875851,1481,-1.0000000000 +688,0,0.3670029640,688,3.9444963932,1482,-1.0000000000 +689,0,0.3295761645,689,4.3042774200,1483,-1.0000000000 +690,0,0.2607125342,690,5.3240251541,1484,-1.0000000000 +691,0,0.1775101870,691,7.7890319824,1485,-1.0000000000 +692,0,0.1102388427,692,12.0671710968,1486,-1.0000000000 +693,0,0.0604847036,693,18.2411289215,1487,-1.0000000000 +694,0,0.0366388559,694,21.5846443176,1488,-1.0000000000 +695,0,0.0300995968,695,25.3701477051,1489,-1.0000000000 +696,0,0.0216256510,696,27.5726089478,1490,-1.0000000000 +697,0,0.0095130559,697,30.6409358978,1491,-1.0000000000 +698,0,-0.0004731133,698,31.6227760315,1492,-1.0000000000 +699,0,0.0004173194,699,31.6227760315,1493,-1.0000000000 +700,0,0.0000373051,700,31.6227760315,1494,-1.0000000000 +701,0,0.0001317095,701,31.6227760315,1495,-1.0000000000 +702,0,0.0008505006,702,31.6226882935,1496,-1.0000000000 +703,0,-0.0003478700,703,31.6172637939,1497,-1.0000000000 +704,0,0.0189459547,704,23.7632350922,1498,-1.0000000000 +705,0,0.0240347050,705,25.5765171051,1499,-1.0000000000 +706,0,0.0671423450,706,20.8565483093,1500,-1.0000000000 +707,0,0.1300252825,707,10.1886911392,1501,-1.0000000000 +708,0,0.1885967255,708,6.9609127045,1502,-1.0000000000 +709,0,0.2572585344,709,5.1757941246,1503,-1.0000000000 +710,0,0.2850341201,710,4.6739964485,1504,-1.0000000000 +711,0,0.2925059199,711,4.6598939896,1505,-1.0000000000 +712,0,0.2976753414,712,4.3765192032,1506,-1.0000000000 +713,0,0.3117159903,713,4.3831186295,1507,-1.0000000000 +714,0,0.2751280963,714,4.9206175804,1508,-1.0000000000 +715,0,0.2536923289,715,5.5485920906,1509,-1.0000000000 +716,0,0.2220572233,716,5.7631196976,1510,-1.0000000000 +717,0,0.2168289870,717,5.8250527382,1511,-1.0000000000 +718,0,0.1724179536,718,7.2118659019,1512,-1.0000000000 +719,0,0.0910157040,719,12.4245290756,1513,-1.0000000000 +720,0,0.0563279390,720,17.5090179443,1514,-1.0000000000 +721,0,0.0309663750,721,21.6350479126,1515,-1.0000000000 +722,0,0.0123580080,722,26.7846317291,1516,-1.0000000000 +723,0,0.0015036017,723,31.4724483490,1517,-1.0000000000 +724,0,0.0008548850,724,31.6225376129,1518,-1.0000000000 +725,0,0.0006256067,725,31.6227760315,1519,-1.0000000000 +726,0,0.0002573585,726,31.6227760315,1520,-1.0000000000 +727,0,0.0000280884,727,31.6227760315,1521,-1.0000000000 +728,0,-0.0000565607,728,31.6227760315,1522,-1.0000000000 +729,0,0.0003511363,729,31.6227760315,1523,-1.0000000000 +730,0,-0.0001680269,730,31.6227760315,1524,-1.0000000000 +731,0,0.0000254372,731,31.6227760315,1525,-1.0000000000 +732,0,0.0008010912,732,31.6227760315,1526,-1.0000000000 +733,0,0.0012664478,733,31.4162387848,1527,-1.0000000000 +734,0,0.0087214625,734,28.7205638885,1528,-1.0000000000 +735,0,0.0626093596,735,19.5268421173,1529,-1.0000000000 +736,0,0.0923844799,736,11.2921705246,1530,-1.0000000000 +737,0,0.1464712471,737,9.9134054184,1531,-1.0000000000 +738,0,0.1504246145,738,8.1084785461,1532,-1.0000000000 +739,0,0.1739578098,739,7.7448530197,1533,-1.0000000000 +740,0,0.1997769475,740,6.6165623665,1534,-1.0000000000 +741,0,0.2006624788,741,6.4281668663,1535,-1.0000000000 +742,0,0.1754072160,742,6.9995551109,1536,-1.0000000000 +743,0,0.1449064016,743,9.2301797867,1537,-1.0000000000 +744,0,0.1363533288,744,9.0806503296,1538,-1.0000000000 +745,0,0.1309172958,745,8.9661102295,1539,-1.0000000000 +746,0,0.1192817390,746,10.3375415802,1540,-1.0000000000 +747,0,0.0636332557,747,14.1783494949,1541,-1.0000000000 +748,0,0.0384967402,748,22.9521389008,1542,-1.0000000000 +749,0,0.0151172429,749,28.6417751312,1543,-1.0000000000 +750,0,0.0002644823,750,31.6227531433,1544,-1.0000000000 +751,0,0.0001388959,751,31.6227760315,1545,-1.0000000000 +752,0,-0.0000449004,752,31.6227760315,1546,-1.0000000000 +753,0,-0.0001319500,753,31.6227760315,1547,-1.0000000000 +754,0,0.0001573211,754,31.6227760315,1548,-1.0000000000 +755,0,-0.0002211487,755,31.6227760315,1549,-1.0000000000 +756,0,0.0003631258,756,31.6227760315,1550,-1.0000000000 +757,0,-0.0004803424,757,31.6227760315,1551,-1.0000000000 +758,0,0.0002229759,758,31.6227760315,1552,-1.0000000000 +759,0,0.0001782212,759,31.6227760315,1553,-1.0000000000 +760,0,-0.0005359335,760,31.6227760315,1554,-1.0000000000 +761,0,0.0002537031,761,31.6227760315,1555,-1.0000000000 +762,0,0.0070610512,762,28.9331836700,1556,-1.0000000000 +763,0,0.0071148821,763,29.6497535706,1557,-1.0000000000 +764,0,0.0041782572,764,30.8653697968,1558,-1.0000000000 +765,0,0.0462772399,765,21.3133430481,1559,-1.0000000000 +766,0,0.0544400029,766,16.0949192047,1560,-1.0000000000 +767,0,0.0392944776,767,18.0789394379,1561,-1.0000000000 +768,0,0.0200691894,768,29.0664215088,1562,-1.0000000000 +769,0,0.0608186498,769,16.4322891235,1563,-1.0000000000 +770,0,0.0768310428,770,12.8409261703,1564,-1.0000000000 +771,0,0.0623596348,771,16.9758491516,1565,-1.0000000000 +772,0,0.0616865344,772,16.0248012543,1566,-1.0000000000 +773,0,0.0621746406,773,15.3318328857,1567,-1.0000000000 +774,0,0.0373334214,774,23.6103172302,1568,-1.0000000000 +775,0,0.0014662633,775,31.2061862946,1569,-1.0000000000 +776,0,0.0005060213,776,31.5637264252,1570,-1.0000000000 +777,0,-0.0001282875,777,31.6227760315,1571,-1.0000000000 +778,0,-0.0000724052,778,31.6227760315,1572,-1.0000000000 +779,0,-0.0003652821,779,31.6227760315,1573,-1.0000000000 +780,0,0.0004401279,780,31.6227760315,1574,-1.0000000000 +781,0,-0.0000989889,781,31.6227760315,1575,-1.0000000000 +782,0,-0.0000036841,782,31.6227760315,1576,-1.0000000000 +783,0,0.0003134308,783,31.6227760315,1577,-1.0000000000 +784,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,1.0000000000,835,-1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,1.0000000000,871,-1.0000000000,872,1.0000000000,873,1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,-1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,1.0000000000,973,-1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,-1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1578,-1.0000000000 +785,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,1.0000000000,835,-1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,-1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,-1.0000000000,978,1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1579,-1.0000000000 +786,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,-1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,1.0000000000,953,-1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1580,-1.0000000000 +787,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,-1.0000000000,843,1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,-1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,-1.0000000000,982,1.0000000000,983,-1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,-1.0000000000,1063,1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1581,-1.0000000000 +788,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,-1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,-1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,1.0000000000,868,-1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,1.0000000000,949,-1.0000000000,950,-1.0000000000,951,1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,-1.0000000000,981,-1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,-1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,-1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1582,-1.0000000000 +789,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1583,-1.0000000000 +790,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,-1.0000000000,862,1.0000000000,863,-1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1584,-1.0000000000 +791,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,-1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1585,-1.0000000000 +792,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,-1.0000000000,978,-1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,-1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,-1.0000000000,1567,1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1586,-1.0000000000 +793,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,-1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,-1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,-1.0000000000,972,1.0000000000,973,1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,-1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1587,-1.0000000000 +794,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,-1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1588,-1.0000000000 +795,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,1.0000000000,846,-1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,1.0000000000,859,-1.0000000000,860,1.0000000000,861,1.0000000000,862,-1.0000000000,863,1.0000000000,864,-1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,-1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,-1.0000000000,1589,-1.0000000000 +796,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,-1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,-1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1590,-1.0000000000 +797,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,1.0000000000,854,1.0000000000,855,1.0000000000,856,-1.0000000000,857,1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,-1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,-1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,-1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1591,-1.0000000000 +798,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,-1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,1.0000000000,888,-1.0000000000,889,1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,1.0000000000,896,-1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,-1.0000000000,907,-1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,-1.0000000000,933,1.0000000000,934,1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,1.0000000000,947,-1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,-1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,-1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1592,-1.0000000000 +799,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,-1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,-1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,1.0000000000,947,-1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1593,-1.0000000000 +800,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,-1.0000000000,1594,-1.0000000000 +801,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,1.0000000000,939,-1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,1.0000000000,981,-1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1595,-1.0000000000 +802,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1596,-1.0000000000 +803,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,-1.0000000000,972,1.0000000000,973,1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,1.0000000000,981,-1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,-1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,-1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,-1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,-1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1597,-1.0000000000 +804,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,-1.0000000000,862,-1.0000000000,863,1.0000000000,864,1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,1.0000000000,887,-1.0000000000,888,1.0000000000,889,-1.0000000000,890,1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,-1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1598,-1.0000000000 +805,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,-1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,1.0000000000,985,-1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,-1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,-1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1599,-1.0000000000 +806,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,-1.0000000000,872,1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,-1.0000000000,913,-1.0000000000,914,1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,-1.0000000000,1366,1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,1.0000000000,1454,-1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1600,-1.0000000000 +807,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,-1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,-1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,-1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1601,-1.0000000000 +808,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,-1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,-1.0000000000,938,1.0000000000,939,-1.0000000000,940,1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1602,-1.0000000000 +809,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,1.0000000000,820,1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,-1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,1.0000000000,868,1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,-1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,1.0000000000,984,1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1603,-1.0000000000 +810,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,-1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,-1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1604,-1.0000000000 +811,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,-1.0000000000,940,1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,-1.0000000000,991,1.0000000000,992,-1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1605,-1.0000000000 +812,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,-1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,1.0000000000,979,-1.0000000000,980,1.0000000000,981,-1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,-1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,-1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,-1.0000000000,1606,-1.0000000000 +813,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,-1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,-1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1607,-1.0000000000 +814,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,-1.0000000000,840,1.0000000000,841,-1.0000000000,842,1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,-1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,-1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1608,-1.0000000000 +815,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,-1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,1.0000000000,866,-1.0000000000,867,1.0000000000,868,1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,-1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1609,-1.0000000000 +816,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,-1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,-1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1610,-1.0000000000 +817,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,1.0000000000,939,1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,1.0000000000,971,-1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1611,-1.0000000000 +818,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,1.0000000000,832,1.0000000000,833,-1.0000000000,834,1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,-1.0000000000,927,1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1612,-1.0000000000 +819,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,-1.0000000000,867,1.0000000000,868,-1.0000000000,869,1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,1.0000000000,891,1.0000000000,892,-1.0000000000,893,-1.0000000000,894,1.0000000000,895,-1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,-1.0000000000,904,1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,-1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,1.0000000000,971,1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1613,-1.0000000000 +820,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,-1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,-1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,1.0000000000,1614,-1.0000000000 +821,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,1.0000000000,842,1.0000000000,843,-1.0000000000,844,1.0000000000,845,1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,-1.0000000000,852,1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,-1.0000000000,870,-1.0000000000,871,1.0000000000,872,-1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,-1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,-1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1615,-1.0000000000 +822,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,-1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,-1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,1.0000000000,854,1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,1.0000000000,864,1.0000000000,865,-1.0000000000,866,1.0000000000,867,-1.0000000000,868,1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,1.0000000000,873,1.0000000000,874,1.0000000000,875,1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,-1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,-1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,-1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,1.0000000000,934,-1.0000000000,935,-1.0000000000,936,-1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,-1.0000000000,946,-1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,-1.0000000000,961,-1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,1.0000000000,969,1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,-1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,1.0000000000,1616,-1.0000000000 +823,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,-1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,-1.0000000000,802,-1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,-1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,-1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,-1.0000000000,859,1.0000000000,860,1.0000000000,861,-1.0000000000,862,1.0000000000,863,-1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,-1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,1.0000000000,895,-1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,-1.0000000000,901,1.0000000000,902,-1.0000000000,903,1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,1.0000000000,915,-1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,1.0000000000,927,-1.0000000000,928,-1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,1.0000000000,933,-1.0000000000,934,1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,-1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,-1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,-1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,-1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,-1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,-1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,-1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,1.0000000000,1488,-1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,-1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1617,-1.0000000000 +824,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,-1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,-1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,1.0000000000,825,1.0000000000,826,1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,1.0000000000,890,-1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,-1.0000000000,901,1.0000000000,902,-1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,1.0000000000,922,-1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,-1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,1.0000000000,977,1.0000000000,978,-1.0000000000,979,1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,1.0000000000,1022,1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,-1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,-1.0000000000,1618,-1.0000000000 +825,0,-0.0000000000,794,1.0000000000,795,1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,1.0000000000,812,-1.0000000000,813,1.0000000000,814,-1.0000000000,815,1.0000000000,816,-1.0000000000,817,-1.0000000000,818,1.0000000000,819,-1.0000000000,820,-1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,-1.0000000000,852,-1.0000000000,853,-1.0000000000,854,-1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,1.0000000000,869,-1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,-1.0000000000,924,-1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,1.0000000000,961,1.0000000000,962,-1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,1.0000000000,978,-1.0000000000,979,1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,-1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,-1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,-1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,-1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,-1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,-1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,-1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,1.0000000000,1538,-1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,-1.0000000000,1577,-1.0000000000,1619,-1.0000000000 +826,0,-0.0000000000,794,1.0000000000,795,-1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,-1.0000000000,803,1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,-1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,-1.0000000000,837,-1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,-1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,-1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,-1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,1.0000000000,891,-1.0000000000,892,1.0000000000,893,1.0000000000,894,-1.0000000000,895,-1.0000000000,896,1.0000000000,897,-1.0000000000,898,1.0000000000,899,1.0000000000,900,-1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,1.0000000000,905,-1.0000000000,906,-1.0000000000,907,1.0000000000,908,-1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,1.0000000000,941,-1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,-1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,1.0000000000,968,1.0000000000,969,-1.0000000000,970,1.0000000000,971,-1.0000000000,972,-1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,-1.0000000000,986,1.0000000000,987,-1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,1.0000000000,994,1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,-1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,-1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,-1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,-1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,-1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,-1.0000000000,1140,-1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,-1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,-1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,-1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,1.0000000000,1214,1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,-1.0000000000,1239,1.0000000000,1240,1.0000000000,1241,1.0000000000,1242,1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,-1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1620,-1.0000000000 +827,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,1.0000000000,798,1.0000000000,799,-1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,-1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,-1.0000000000,818,-1.0000000000,819,1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,1.0000000000,826,-1.0000000000,827,-1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,1.0000000000,880,-1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,1.0000000000,890,-1.0000000000,891,1.0000000000,892,1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,-1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,-1.0000000000,918,1.0000000000,919,-1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,-1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,1.0000000000,943,1.0000000000,944,-1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,-1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,-1.0000000000,955,-1.0000000000,956,-1.0000000000,957,-1.0000000000,958,1.0000000000,959,-1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,1.0000000000,970,1.0000000000,971,-1.0000000000,972,1.0000000000,973,1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,1.0000000000,982,-1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,-1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,-1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,1.0000000000,1122,-1.0000000000,1123,1.0000000000,1124,1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,-1.0000000000,1128,-1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,1.0000000000,1152,1.0000000000,1153,1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,1.0000000000,1177,-1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,-1.0000000000,1181,1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,1.0000000000,1231,-1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,-1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,1.0000000000,1288,-1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,-1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,-1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1621,-1.0000000000 +828,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,-1.0000000000,805,-1.0000000000,806,-1.0000000000,807,-1.0000000000,808,1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,1.0000000000,824,1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,1.0000000000,840,-1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,-1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,-1.0000000000,865,1.0000000000,866,1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,-1.0000000000,878,1.0000000000,879,1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,1.0000000000,884,1.0000000000,885,1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,-1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,-1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,1.0000000000,964,-1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,1.0000000000,983,-1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,-1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,-1.0000000000,1010,-1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,-1.0000000000,1135,1.0000000000,1136,1.0000000000,1137,1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,1.0000000000,1181,1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,1.0000000000,1187,1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,-1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,1.0000000000,1208,1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,1.0000000000,1281,1.0000000000,1282,1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,1.0000000000,1309,1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,-1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,-1.0000000000,1343,1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,-1.0000000000,1399,1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,1.0000000000,1417,-1.0000000000,1418,1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,-1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,-1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,-1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,-1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,-1.0000000000,1547,1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1622,-1.0000000000 +829,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,-1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,1.0000000000,811,-1.0000000000,812,1.0000000000,813,-1.0000000000,814,-1.0000000000,815,1.0000000000,816,1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,-1.0000000000,833,1.0000000000,834,-1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,1.0000000000,844,1.0000000000,845,-1.0000000000,846,1.0000000000,847,-1.0000000000,848,1.0000000000,849,-1.0000000000,850,-1.0000000000,851,1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,-1.0000000000,878,-1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,-1.0000000000,884,1.0000000000,885,-1.0000000000,886,1.0000000000,887,1.0000000000,888,1.0000000000,889,-1.0000000000,890,1.0000000000,891,-1.0000000000,892,1.0000000000,893,1.0000000000,894,-1.0000000000,895,1.0000000000,896,1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,1.0000000000,918,1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,-1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,1.0000000000,932,1.0000000000,933,-1.0000000000,934,-1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,-1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,1.0000000000,946,-1.0000000000,947,1.0000000000,948,-1.0000000000,949,-1.0000000000,950,1.0000000000,951,1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,-1.0000000000,956,1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,-1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,1.0000000000,996,1.0000000000,997,1.0000000000,998,1.0000000000,999,1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,-1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,1.0000000000,1030,1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,1.0000000000,1046,-1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,-1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,1.0000000000,1084,1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,1.0000000000,1109,1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,-1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,1.0000000000,1121,1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,1.0000000000,1132,1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,-1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,-1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,-1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,-1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,-1.0000000000,1171,-1.0000000000,1172,-1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,-1.0000000000,1201,-1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,-1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,1.0000000000,1265,1.0000000000,1266,1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,1.0000000000,1295,-1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,1.0000000000,1314,-1.0000000000,1315,1.0000000000,1316,-1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,1.0000000000,1323,1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,-1.0000000000,1372,-1.0000000000,1373,1.0000000000,1374,-1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,-1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,-1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,1.0000000000,1419,1.0000000000,1420,-1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,-1.0000000000,1473,1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,1.0000000000,1486,-1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,-1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,-1.0000000000,1518,-1.0000000000,1519,-1.0000000000,1520,-1.0000000000,1521,-1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,1.0000000000,1549,1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,-1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1623,-1.0000000000 +830,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,-1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,-1.0000000000,803,-1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,-1.0000000000,813,-1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,1.0000000000,819,1.0000000000,820,1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,-1.0000000000,826,-1.0000000000,827,-1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,-1.0000000000,833,-1.0000000000,834,-1.0000000000,835,-1.0000000000,836,-1.0000000000,837,-1.0000000000,838,-1.0000000000,839,-1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,-1.0000000000,851,-1.0000000000,852,1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,1.0000000000,861,-1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,1.0000000000,874,-1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,1.0000000000,880,1.0000000000,881,1.0000000000,882,-1.0000000000,883,1.0000000000,884,1.0000000000,885,-1.0000000000,886,-1.0000000000,887,1.0000000000,888,-1.0000000000,889,1.0000000000,890,1.0000000000,891,-1.0000000000,892,-1.0000000000,893,1.0000000000,894,1.0000000000,895,1.0000000000,896,1.0000000000,897,1.0000000000,898,1.0000000000,899,1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,-1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,1.0000000000,915,-1.0000000000,916,1.0000000000,917,1.0000000000,918,1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,1.0000000000,923,1.0000000000,924,1.0000000000,925,1.0000000000,926,1.0000000000,927,1.0000000000,928,1.0000000000,929,-1.0000000000,930,1.0000000000,931,-1.0000000000,932,1.0000000000,933,1.0000000000,934,1.0000000000,935,1.0000000000,936,-1.0000000000,937,-1.0000000000,938,-1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,-1.0000000000,943,1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,1.0000000000,955,1.0000000000,956,-1.0000000000,957,1.0000000000,958,1.0000000000,959,-1.0000000000,960,1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,-1.0000000000,966,-1.0000000000,967,1.0000000000,968,1.0000000000,969,-1.0000000000,970,1.0000000000,971,1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,-1.0000000000,980,-1.0000000000,981,-1.0000000000,982,-1.0000000000,983,-1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,-1.0000000000,989,-1.0000000000,990,-1.0000000000,991,1.0000000000,992,-1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,1.0000000000,997,-1.0000000000,998,1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,-1.0000000000,1008,-1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,-1.0000000000,1016,-1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,-1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,-1.0000000000,1036,-1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,-1.0000000000,1040,1.0000000000,1041,-1.0000000000,1042,-1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,-1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,-1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,-1.0000000000,1056,-1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,-1.0000000000,1071,1.0000000000,1072,-1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,-1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,-1.0000000000,1079,1.0000000000,1080,1.0000000000,1081,1.0000000000,1082,1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,-1.0000000000,1092,-1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,-1.0000000000,1101,-1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,1.0000000000,1112,1.0000000000,1113,-1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,-1.0000000000,1143,-1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,1.0000000000,1148,1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,-1.0000000000,1163,-1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,-1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,1.0000000000,1195,-1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,-1.0000000000,1199,-1.0000000000,1200,1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,-1.0000000000,1219,-1.0000000000,1220,1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,-1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,-1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,1.0000000000,1311,1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,-1.0000000000,1319,1.0000000000,1320,-1.0000000000,1321,1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,1.0000000000,1378,1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,1.0000000000,1382,1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,-1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,-1.0000000000,1436,1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,-1.0000000000,1444,1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,1.0000000000,1460,1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,1.0000000000,1474,-1.0000000000,1475,1.0000000000,1476,1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,1.0000000000,1484,-1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,-1.0000000000,1495,-1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,-1.0000000000,1520,1.0000000000,1521,-1.0000000000,1522,-1.0000000000,1523,-1.0000000000,1524,-1.0000000000,1525,-1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,-1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,-1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,-1.0000000000,1561,1.0000000000,1562,-1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1624,-1.0000000000 +831,0,-0.0000000000,794,-1.0000000000,795,-1.0000000000,796,1.0000000000,797,-1.0000000000,798,-1.0000000000,799,1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,1.0000000000,805,1.0000000000,806,1.0000000000,807,1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,-1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,1.0000000000,821,-1.0000000000,822,-1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,1.0000000000,833,-1.0000000000,834,-1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,-1.0000000000,839,-1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,-1.0000000000,847,1.0000000000,848,1.0000000000,849,1.0000000000,850,1.0000000000,851,1.0000000000,852,1.0000000000,853,1.0000000000,854,-1.0000000000,855,-1.0000000000,856,-1.0000000000,857,-1.0000000000,858,-1.0000000000,859,1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,1.0000000000,870,1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,-1.0000000000,875,-1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,1.0000000000,885,1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,1.0000000000,898,1.0000000000,899,-1.0000000000,900,1.0000000000,901,1.0000000000,902,1.0000000000,903,-1.0000000000,904,1.0000000000,905,1.0000000000,906,1.0000000000,907,-1.0000000000,908,1.0000000000,909,1.0000000000,910,1.0000000000,911,1.0000000000,912,1.0000000000,913,-1.0000000000,914,-1.0000000000,915,-1.0000000000,916,-1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,1.0000000000,928,-1.0000000000,929,1.0000000000,930,1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,1.0000000000,935,1.0000000000,936,1.0000000000,937,-1.0000000000,938,-1.0000000000,939,-1.0000000000,940,-1.0000000000,941,1.0000000000,942,-1.0000000000,943,-1.0000000000,944,-1.0000000000,945,-1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,1.0000000000,950,1.0000000000,951,-1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,1.0000000000,972,1.0000000000,973,-1.0000000000,974,-1.0000000000,975,-1.0000000000,976,-1.0000000000,977,-1.0000000000,978,-1.0000000000,979,1.0000000000,980,-1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,-1.0000000000,986,1.0000000000,987,-1.0000000000,988,1.0000000000,989,-1.0000000000,990,-1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,1.0000000000,995,-1.0000000000,996,-1.0000000000,997,1.0000000000,998,-1.0000000000,999,1.0000000000,1000,1.0000000000,1001,-1.0000000000,1002,-1.0000000000,1003,-1.0000000000,1004,-1.0000000000,1005,-1.0000000000,1006,-1.0000000000,1007,1.0000000000,1008,-1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,-1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,-1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,-1.0000000000,1033,-1.0000000000,1034,-1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,-1.0000000000,1045,-1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,-1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,1.0000000000,1056,-1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,-1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,-1.0000000000,1067,1.0000000000,1068,-1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,-1.0000000000,1078,1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,1.0000000000,1088,1.0000000000,1089,1.0000000000,1090,1.0000000000,1091,1.0000000000,1092,-1.0000000000,1093,1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,-1.0000000000,1097,-1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,1.0000000000,1102,-1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,-1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,-1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,-1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,-1.0000000000,1133,-1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,1.0000000000,1138,-1.0000000000,1139,-1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,-1.0000000000,1157,-1.0000000000,1158,-1.0000000000,1159,-1.0000000000,1160,-1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,-1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,-1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,-1.0000000000,1175,1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,-1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,-1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,-1.0000000000,1197,-1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,-1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,-1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,-1.0000000000,1224,-1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,1.0000000000,1234,1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,-1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,-1.0000000000,1252,-1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,1.0000000000,1256,1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,1.0000000000,1262,1.0000000000,1263,1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,-1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,-1.0000000000,1274,-1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,-1.0000000000,1286,1.0000000000,1287,-1.0000000000,1288,1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,-1.0000000000,1304,-1.0000000000,1305,-1.0000000000,1306,-1.0000000000,1307,-1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,-1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,1.0000000000,1332,-1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,1.0000000000,1341,-1.0000000000,1342,1.0000000000,1343,-1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,-1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,1.0000000000,1354,1.0000000000,1355,-1.0000000000,1356,-1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,1.0000000000,1369,-1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,-1.0000000000,1377,-1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,-1.0000000000,1386,-1.0000000000,1387,-1.0000000000,1388,1.0000000000,1389,-1.0000000000,1390,1.0000000000,1391,-1.0000000000,1392,1.0000000000,1393,-1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,-1.0000000000,1402,1.0000000000,1403,-1.0000000000,1404,-1.0000000000,1405,-1.0000000000,1406,-1.0000000000,1407,1.0000000000,1408,1.0000000000,1409,-1.0000000000,1410,-1.0000000000,1411,-1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,1.0000000000,1416,-1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,-1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,1.0000000000,1430,1.0000000000,1431,-1.0000000000,1432,-1.0000000000,1433,-1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,-1.0000000000,1440,-1.0000000000,1441,-1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,-1.0000000000,1445,1.0000000000,1446,1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,-1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,-1.0000000000,1457,1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,-1.0000000000,1461,-1.0000000000,1462,-1.0000000000,1463,-1.0000000000,1464,1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,1.0000000000,1468,1.0000000000,1469,1.0000000000,1470,1.0000000000,1471,1.0000000000,1472,1.0000000000,1473,-1.0000000000,1474,-1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,-1.0000000000,1489,-1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,1.0000000000,1500,-1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,1.0000000000,1504,-1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,-1.0000000000,1512,-1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,-1.0000000000,1523,1.0000000000,1524,-1.0000000000,1525,1.0000000000,1526,-1.0000000000,1527,-1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,-1.0000000000,1542,-1.0000000000,1543,-1.0000000000,1544,1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,-1.0000000000,1559,-1.0000000000,1560,-1.0000000000,1561,-1.0000000000,1562,-1.0000000000,1563,-1.0000000000,1564,-1.0000000000,1565,-1.0000000000,1566,-1.0000000000,1567,-1.0000000000,1568,-1.0000000000,1569,-1.0000000000,1570,1.0000000000,1571,1.0000000000,1572,1.0000000000,1573,1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,-1.0000000000,1577,1.0000000000,1625,-1.0000000000 +832,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,1.0000000000,798,-1.0000000000,799,-1.0000000000,800,1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,1.0000000000,806,-1.0000000000,807,-1.0000000000,808,-1.0000000000,809,1.0000000000,810,-1.0000000000,811,1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,-1.0000000000,816,1.0000000000,817,-1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,1.0000000000,823,1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,-1.0000000000,829,-1.0000000000,830,-1.0000000000,831,-1.0000000000,832,1.0000000000,833,-1.0000000000,834,1.0000000000,835,1.0000000000,836,1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,-1.0000000000,841,-1.0000000000,842,-1.0000000000,843,-1.0000000000,844,-1.0000000000,845,-1.0000000000,846,1.0000000000,847,1.0000000000,848,-1.0000000000,849,-1.0000000000,850,1.0000000000,851,-1.0000000000,852,1.0000000000,853,-1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,-1.0000000000,858,-1.0000000000,859,-1.0000000000,860,-1.0000000000,861,-1.0000000000,862,-1.0000000000,863,-1.0000000000,864,-1.0000000000,865,-1.0000000000,866,-1.0000000000,867,-1.0000000000,868,-1.0000000000,869,-1.0000000000,870,-1.0000000000,871,-1.0000000000,872,-1.0000000000,873,-1.0000000000,874,1.0000000000,875,-1.0000000000,876,1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,1.0000000000,881,-1.0000000000,882,-1.0000000000,883,1.0000000000,884,-1.0000000000,885,-1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,-1.0000000000,893,-1.0000000000,894,-1.0000000000,895,-1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,-1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,1.0000000000,908,1.0000000000,909,-1.0000000000,910,1.0000000000,911,-1.0000000000,912,-1.0000000000,913,1.0000000000,914,1.0000000000,915,1.0000000000,916,1.0000000000,917,1.0000000000,918,-1.0000000000,919,-1.0000000000,920,-1.0000000000,921,-1.0000000000,922,-1.0000000000,923,-1.0000000000,924,-1.0000000000,925,-1.0000000000,926,-1.0000000000,927,-1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,-1.0000000000,932,-1.0000000000,933,-1.0000000000,934,-1.0000000000,935,-1.0000000000,936,1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,1.0000000000,942,1.0000000000,943,1.0000000000,944,1.0000000000,945,1.0000000000,946,-1.0000000000,947,-1.0000000000,948,-1.0000000000,949,-1.0000000000,950,-1.0000000000,951,-1.0000000000,952,-1.0000000000,953,-1.0000000000,954,-1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,1.0000000000,959,1.0000000000,960,-1.0000000000,961,1.0000000000,962,1.0000000000,963,-1.0000000000,964,1.0000000000,965,-1.0000000000,966,1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,-1.0000000000,971,-1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,-1.0000000000,982,1.0000000000,983,1.0000000000,984,-1.0000000000,985,1.0000000000,986,-1.0000000000,987,1.0000000000,988,1.0000000000,989,1.0000000000,990,1.0000000000,991,-1.0000000000,992,-1.0000000000,993,-1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,-1.0000000000,999,-1.0000000000,1000,1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,-1.0000000000,1012,1.0000000000,1013,-1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,1.0000000000,1017,1.0000000000,1018,-1.0000000000,1019,-1.0000000000,1020,1.0000000000,1021,1.0000000000,1022,-1.0000000000,1023,-1.0000000000,1024,-1.0000000000,1025,-1.0000000000,1026,-1.0000000000,1027,-1.0000000000,1028,-1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,-1.0000000000,1038,-1.0000000000,1039,1.0000000000,1040,-1.0000000000,1041,-1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,-1.0000000000,1051,-1.0000000000,1052,-1.0000000000,1053,-1.0000000000,1054,-1.0000000000,1055,-1.0000000000,1056,1.0000000000,1057,-1.0000000000,1058,-1.0000000000,1059,-1.0000000000,1060,-1.0000000000,1061,-1.0000000000,1062,-1.0000000000,1063,-1.0000000000,1064,-1.0000000000,1065,-1.0000000000,1066,1.0000000000,1067,-1.0000000000,1068,1.0000000000,1069,-1.0000000000,1070,-1.0000000000,1071,-1.0000000000,1072,1.0000000000,1073,1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,1.0000000000,1077,1.0000000000,1078,-1.0000000000,1079,-1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,-1.0000000000,1086,-1.0000000000,1087,-1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,-1.0000000000,1094,-1.0000000000,1095,-1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,-1.0000000000,1100,-1.0000000000,1101,1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,1.0000000000,1105,-1.0000000000,1106,-1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,-1.0000000000,1112,1.0000000000,1113,1.0000000000,1114,-1.0000000000,1115,-1.0000000000,1116,-1.0000000000,1117,1.0000000000,1118,1.0000000000,1119,1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,1.0000000000,1123,1.0000000000,1124,-1.0000000000,1125,-1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,-1.0000000000,1129,-1.0000000000,1130,-1.0000000000,1131,-1.0000000000,1132,1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,1.0000000000,1146,1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,1.0000000000,1153,-1.0000000000,1154,-1.0000000000,1155,-1.0000000000,1156,1.0000000000,1157,1.0000000000,1158,-1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,-1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,1.0000000000,1165,1.0000000000,1166,1.0000000000,1167,1.0000000000,1168,1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,1.0000000000,1174,1.0000000000,1175,1.0000000000,1176,1.0000000000,1177,1.0000000000,1178,1.0000000000,1179,1.0000000000,1180,1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,1.0000000000,1184,1.0000000000,1185,-1.0000000000,1186,-1.0000000000,1187,1.0000000000,1188,-1.0000000000,1189,-1.0000000000,1190,1.0000000000,1191,1.0000000000,1192,1.0000000000,1193,1.0000000000,1194,1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,-1.0000000000,1201,1.0000000000,1202,1.0000000000,1203,1.0000000000,1204,1.0000000000,1205,-1.0000000000,1206,1.0000000000,1207,1.0000000000,1208,-1.0000000000,1209,1.0000000000,1210,-1.0000000000,1211,1.0000000000,1212,1.0000000000,1213,-1.0000000000,1214,-1.0000000000,1215,1.0000000000,1216,-1.0000000000,1217,1.0000000000,1218,1.0000000000,1219,1.0000000000,1220,1.0000000000,1221,1.0000000000,1222,1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,1.0000000000,1226,1.0000000000,1227,-1.0000000000,1228,-1.0000000000,1229,1.0000000000,1230,1.0000000000,1231,1.0000000000,1232,1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,-1.0000000000,1236,-1.0000000000,1237,1.0000000000,1238,1.0000000000,1239,-1.0000000000,1240,1.0000000000,1241,-1.0000000000,1242,1.0000000000,1243,-1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,1.0000000000,1248,1.0000000000,1249,1.0000000000,1250,1.0000000000,1251,1.0000000000,1252,1.0000000000,1253,1.0000000000,1254,1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,1.0000000000,1258,1.0000000000,1259,1.0000000000,1260,1.0000000000,1261,-1.0000000000,1262,1.0000000000,1263,-1.0000000000,1264,1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,1.0000000000,1268,1.0000000000,1269,-1.0000000000,1270,1.0000000000,1271,-1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,1.0000000000,1277,1.0000000000,1278,1.0000000000,1279,1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,1.0000000000,1283,1.0000000000,1284,1.0000000000,1285,1.0000000000,1286,1.0000000000,1287,1.0000000000,1288,1.0000000000,1289,-1.0000000000,1290,-1.0000000000,1291,1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,1.0000000000,1295,1.0000000000,1296,1.0000000000,1297,-1.0000000000,1298,-1.0000000000,1299,1.0000000000,1300,-1.0000000000,1301,1.0000000000,1302,-1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,1.0000000000,1308,-1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,-1.0000000000,1315,-1.0000000000,1316,-1.0000000000,1317,-1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,-1.0000000000,1322,-1.0000000000,1323,-1.0000000000,1324,1.0000000000,1325,1.0000000000,1326,1.0000000000,1327,-1.0000000000,1328,-1.0000000000,1329,1.0000000000,1330,-1.0000000000,1331,-1.0000000000,1332,1.0000000000,1333,-1.0000000000,1334,-1.0000000000,1335,-1.0000000000,1336,-1.0000000000,1337,-1.0000000000,1338,-1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,-1.0000000000,1342,-1.0000000000,1343,-1.0000000000,1344,-1.0000000000,1345,-1.0000000000,1346,-1.0000000000,1347,-1.0000000000,1348,-1.0000000000,1349,-1.0000000000,1350,1.0000000000,1351,1.0000000000,1352,1.0000000000,1353,1.0000000000,1354,-1.0000000000,1355,-1.0000000000,1356,1.0000000000,1357,1.0000000000,1358,-1.0000000000,1359,-1.0000000000,1360,-1.0000000000,1361,-1.0000000000,1362,-1.0000000000,1363,-1.0000000000,1364,-1.0000000000,1365,-1.0000000000,1366,-1.0000000000,1367,-1.0000000000,1368,-1.0000000000,1369,-1.0000000000,1370,-1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,-1.0000000000,1376,1.0000000000,1377,-1.0000000000,1378,1.0000000000,1379,1.0000000000,1380,1.0000000000,1381,-1.0000000000,1382,1.0000000000,1383,1.0000000000,1384,1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,-1.0000000000,1388,-1.0000000000,1389,-1.0000000000,1390,-1.0000000000,1391,-1.0000000000,1392,-1.0000000000,1393,-1.0000000000,1394,-1.0000000000,1395,-1.0000000000,1396,-1.0000000000,1397,-1.0000000000,1398,1.0000000000,1399,-1.0000000000,1400,-1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,1.0000000000,1407,1.0000000000,1408,-1.0000000000,1409,1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,1.0000000000,1413,1.0000000000,1414,1.0000000000,1415,-1.0000000000,1416,-1.0000000000,1417,-1.0000000000,1418,-1.0000000000,1419,-1.0000000000,1420,-1.0000000000,1421,-1.0000000000,1422,-1.0000000000,1423,-1.0000000000,1424,-1.0000000000,1425,-1.0000000000,1426,-1.0000000000,1427,-1.0000000000,1428,-1.0000000000,1429,-1.0000000000,1430,-1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,1.0000000000,1435,-1.0000000000,1436,-1.0000000000,1437,1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,-1.0000000000,1441,1.0000000000,1442,-1.0000000000,1443,-1.0000000000,1444,-1.0000000000,1445,-1.0000000000,1446,-1.0000000000,1447,-1.0000000000,1448,-1.0000000000,1449,1.0000000000,1450,-1.0000000000,1451,-1.0000000000,1452,-1.0000000000,1453,-1.0000000000,1454,-1.0000000000,1455,-1.0000000000,1456,-1.0000000000,1457,-1.0000000000,1458,1.0000000000,1459,-1.0000000000,1460,1.0000000000,1461,1.0000000000,1462,1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,1.0000000000,1466,1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,-1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,-1.0000000000,1476,-1.0000000000,1477,-1.0000000000,1478,-1.0000000000,1479,-1.0000000000,1480,-1.0000000000,1481,-1.0000000000,1482,-1.0000000000,1483,1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,1.0000000000,1488,1.0000000000,1489,1.0000000000,1490,-1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,1.0000000000,1494,-1.0000000000,1495,1.0000000000,1496,-1.0000000000,1497,-1.0000000000,1498,-1.0000000000,1499,1.0000000000,1500,1.0000000000,1501,1.0000000000,1502,1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,1.0000000000,1506,1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,1.0000000000,1510,1.0000000000,1511,1.0000000000,1512,1.0000000000,1513,1.0000000000,1514,1.0000000000,1515,1.0000000000,1516,1.0000000000,1517,1.0000000000,1518,-1.0000000000,1519,1.0000000000,1520,-1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,-1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,1.0000000000,1529,1.0000000000,1530,1.0000000000,1531,1.0000000000,1532,1.0000000000,1533,1.0000000000,1534,1.0000000000,1535,1.0000000000,1536,1.0000000000,1537,1.0000000000,1538,1.0000000000,1539,1.0000000000,1540,1.0000000000,1541,1.0000000000,1542,1.0000000000,1543,1.0000000000,1544,-1.0000000000,1545,-1.0000000000,1546,1.0000000000,1547,-1.0000000000,1548,-1.0000000000,1549,1.0000000000,1550,1.0000000000,1551,1.0000000000,1552,-1.0000000000,1553,-1.0000000000,1554,-1.0000000000,1555,-1.0000000000,1556,-1.0000000000,1557,-1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,-1.0000000000,1568,1.0000000000,1569,-1.0000000000,1570,-1.0000000000,1571,1.0000000000,1572,-1.0000000000,1573,-1.0000000000,1574,1.0000000000,1575,-1.0000000000,1576,1.0000000000,1577,1.0000000000,1626,-1.0000000000 +833,0,-0.0000000000,794,-1.0000000000,795,1.0000000000,796,1.0000000000,797,-1.0000000000,798,1.0000000000,799,1.0000000000,800,-1.0000000000,801,1.0000000000,802,1.0000000000,803,1.0000000000,804,-1.0000000000,805,-1.0000000000,806,1.0000000000,807,-1.0000000000,808,1.0000000000,809,1.0000000000,810,-1.0000000000,811,-1.0000000000,812,1.0000000000,813,1.0000000000,814,1.0000000000,815,1.0000000000,816,-1.0000000000,817,1.0000000000,818,-1.0000000000,819,-1.0000000000,820,-1.0000000000,821,1.0000000000,822,-1.0000000000,823,-1.0000000000,824,-1.0000000000,825,-1.0000000000,826,1.0000000000,827,1.0000000000,828,1.0000000000,829,1.0000000000,830,1.0000000000,831,1.0000000000,832,1.0000000000,833,1.0000000000,834,1.0000000000,835,1.0000000000,836,-1.0000000000,837,1.0000000000,838,1.0000000000,839,1.0000000000,840,1.0000000000,841,1.0000000000,842,1.0000000000,843,1.0000000000,844,1.0000000000,845,1.0000000000,846,-1.0000000000,847,-1.0000000000,848,-1.0000000000,849,1.0000000000,850,-1.0000000000,851,-1.0000000000,852,1.0000000000,853,1.0000000000,854,1.0000000000,855,1.0000000000,856,1.0000000000,857,1.0000000000,858,1.0000000000,859,1.0000000000,860,1.0000000000,861,1.0000000000,862,1.0000000000,863,1.0000000000,864,1.0000000000,865,1.0000000000,866,1.0000000000,867,1.0000000000,868,1.0000000000,869,1.0000000000,870,1.0000000000,871,1.0000000000,872,1.0000000000,873,-1.0000000000,874,1.0000000000,875,1.0000000000,876,-1.0000000000,877,1.0000000000,878,1.0000000000,879,-1.0000000000,880,-1.0000000000,881,1.0000000000,882,1.0000000000,883,-1.0000000000,884,-1.0000000000,885,1.0000000000,886,-1.0000000000,887,-1.0000000000,888,-1.0000000000,889,-1.0000000000,890,-1.0000000000,891,-1.0000000000,892,1.0000000000,893,-1.0000000000,894,-1.0000000000,895,1.0000000000,896,-1.0000000000,897,-1.0000000000,898,-1.0000000000,899,1.0000000000,900,-1.0000000000,901,-1.0000000000,902,1.0000000000,903,-1.0000000000,904,-1.0000000000,905,-1.0000000000,906,1.0000000000,907,-1.0000000000,908,-1.0000000000,909,-1.0000000000,910,-1.0000000000,911,-1.0000000000,912,1.0000000000,913,1.0000000000,914,-1.0000000000,915,1.0000000000,916,-1.0000000000,917,-1.0000000000,918,-1.0000000000,919,1.0000000000,920,1.0000000000,921,1.0000000000,922,-1.0000000000,923,-1.0000000000,924,1.0000000000,925,-1.0000000000,926,1.0000000000,927,1.0000000000,928,-1.0000000000,929,-1.0000000000,930,-1.0000000000,931,1.0000000000,932,1.0000000000,933,1.0000000000,934,-1.0000000000,935,1.0000000000,936,-1.0000000000,937,1.0000000000,938,1.0000000000,939,1.0000000000,940,1.0000000000,941,-1.0000000000,942,1.0000000000,943,-1.0000000000,944,1.0000000000,945,1.0000000000,946,1.0000000000,947,1.0000000000,948,1.0000000000,949,1.0000000000,950,1.0000000000,951,1.0000000000,952,1.0000000000,953,1.0000000000,954,1.0000000000,955,1.0000000000,956,1.0000000000,957,-1.0000000000,958,-1.0000000000,959,1.0000000000,960,1.0000000000,961,-1.0000000000,962,-1.0000000000,963,-1.0000000000,964,1.0000000000,965,1.0000000000,966,-1.0000000000,967,-1.0000000000,968,-1.0000000000,969,-1.0000000000,970,1.0000000000,971,1.0000000000,972,-1.0000000000,973,1.0000000000,974,1.0000000000,975,1.0000000000,976,1.0000000000,977,1.0000000000,978,1.0000000000,979,1.0000000000,980,1.0000000000,981,1.0000000000,982,1.0000000000,983,1.0000000000,984,1.0000000000,985,1.0000000000,986,-1.0000000000,987,-1.0000000000,988,1.0000000000,989,-1.0000000000,990,1.0000000000,991,1.0000000000,992,-1.0000000000,993,1.0000000000,994,-1.0000000000,995,-1.0000000000,996,-1.0000000000,997,-1.0000000000,998,1.0000000000,999,1.0000000000,1000,-1.0000000000,1001,1.0000000000,1002,1.0000000000,1003,1.0000000000,1004,1.0000000000,1005,1.0000000000,1006,1.0000000000,1007,1.0000000000,1008,1.0000000000,1009,1.0000000000,1010,1.0000000000,1011,1.0000000000,1012,1.0000000000,1013,1.0000000000,1014,1.0000000000,1015,1.0000000000,1016,-1.0000000000,1017,1.0000000000,1018,1.0000000000,1019,1.0000000000,1020,1.0000000000,1021,-1.0000000000,1022,-1.0000000000,1023,1.0000000000,1024,1.0000000000,1025,1.0000000000,1026,1.0000000000,1027,1.0000000000,1028,1.0000000000,1029,-1.0000000000,1030,-1.0000000000,1031,-1.0000000000,1032,1.0000000000,1033,1.0000000000,1034,1.0000000000,1035,1.0000000000,1036,1.0000000000,1037,1.0000000000,1038,1.0000000000,1039,1.0000000000,1040,1.0000000000,1041,1.0000000000,1042,1.0000000000,1043,1.0000000000,1044,1.0000000000,1045,1.0000000000,1046,1.0000000000,1047,1.0000000000,1048,1.0000000000,1049,-1.0000000000,1050,1.0000000000,1051,1.0000000000,1052,1.0000000000,1053,1.0000000000,1054,1.0000000000,1055,1.0000000000,1056,1.0000000000,1057,1.0000000000,1058,-1.0000000000,1059,1.0000000000,1060,1.0000000000,1061,1.0000000000,1062,1.0000000000,1063,1.0000000000,1064,1.0000000000,1065,1.0000000000,1066,1.0000000000,1067,1.0000000000,1068,1.0000000000,1069,1.0000000000,1070,1.0000000000,1071,1.0000000000,1072,1.0000000000,1073,-1.0000000000,1074,1.0000000000,1075,1.0000000000,1076,-1.0000000000,1077,1.0000000000,1078,1.0000000000,1079,1.0000000000,1080,-1.0000000000,1081,-1.0000000000,1082,-1.0000000000,1083,-1.0000000000,1084,-1.0000000000,1085,1.0000000000,1086,1.0000000000,1087,1.0000000000,1088,-1.0000000000,1089,-1.0000000000,1090,-1.0000000000,1091,-1.0000000000,1092,1.0000000000,1093,1.0000000000,1094,1.0000000000,1095,1.0000000000,1096,1.0000000000,1097,1.0000000000,1098,1.0000000000,1099,1.0000000000,1100,1.0000000000,1101,-1.0000000000,1102,1.0000000000,1103,-1.0000000000,1104,-1.0000000000,1105,-1.0000000000,1106,1.0000000000,1107,-1.0000000000,1108,-1.0000000000,1109,-1.0000000000,1110,1.0000000000,1111,-1.0000000000,1112,-1.0000000000,1113,1.0000000000,1114,1.0000000000,1115,1.0000000000,1116,1.0000000000,1117,-1.0000000000,1118,-1.0000000000,1119,-1.0000000000,1120,-1.0000000000,1121,-1.0000000000,1122,-1.0000000000,1123,-1.0000000000,1124,1.0000000000,1125,1.0000000000,1126,1.0000000000,1127,1.0000000000,1128,1.0000000000,1129,-1.0000000000,1130,1.0000000000,1131,1.0000000000,1132,-1.0000000000,1133,1.0000000000,1134,1.0000000000,1135,-1.0000000000,1136,-1.0000000000,1137,-1.0000000000,1138,-1.0000000000,1139,1.0000000000,1140,1.0000000000,1141,1.0000000000,1142,1.0000000000,1143,1.0000000000,1144,1.0000000000,1145,-1.0000000000,1146,-1.0000000000,1147,-1.0000000000,1148,-1.0000000000,1149,-1.0000000000,1150,-1.0000000000,1151,-1.0000000000,1152,-1.0000000000,1153,-1.0000000000,1154,1.0000000000,1155,1.0000000000,1156,1.0000000000,1157,-1.0000000000,1158,1.0000000000,1159,1.0000000000,1160,1.0000000000,1161,1.0000000000,1162,1.0000000000,1163,1.0000000000,1164,-1.0000000000,1165,1.0000000000,1166,-1.0000000000,1167,1.0000000000,1168,-1.0000000000,1169,1.0000000000,1170,1.0000000000,1171,1.0000000000,1172,1.0000000000,1173,-1.0000000000,1174,-1.0000000000,1175,-1.0000000000,1176,-1.0000000000,1177,-1.0000000000,1178,-1.0000000000,1179,-1.0000000000,1180,-1.0000000000,1181,-1.0000000000,1182,-1.0000000000,1183,-1.0000000000,1184,1.0000000000,1185,1.0000000000,1186,1.0000000000,1187,-1.0000000000,1188,1.0000000000,1189,-1.0000000000,1190,-1.0000000000,1191,1.0000000000,1192,-1.0000000000,1193,1.0000000000,1194,-1.0000000000,1195,1.0000000000,1196,1.0000000000,1197,1.0000000000,1198,1.0000000000,1199,1.0000000000,1200,1.0000000000,1201,-1.0000000000,1202,-1.0000000000,1203,-1.0000000000,1204,-1.0000000000,1205,-1.0000000000,1206,-1.0000000000,1207,-1.0000000000,1208,-1.0000000000,1209,-1.0000000000,1210,-1.0000000000,1211,-1.0000000000,1212,1.0000000000,1213,1.0000000000,1214,-1.0000000000,1215,-1.0000000000,1216,-1.0000000000,1217,-1.0000000000,1218,-1.0000000000,1219,1.0000000000,1220,-1.0000000000,1221,-1.0000000000,1222,-1.0000000000,1223,1.0000000000,1224,1.0000000000,1225,-1.0000000000,1226,1.0000000000,1227,1.0000000000,1228,-1.0000000000,1229,-1.0000000000,1230,-1.0000000000,1231,-1.0000000000,1232,-1.0000000000,1233,-1.0000000000,1234,-1.0000000000,1235,1.0000000000,1236,1.0000000000,1237,-1.0000000000,1238,-1.0000000000,1239,-1.0000000000,1240,-1.0000000000,1241,-1.0000000000,1242,-1.0000000000,1243,1.0000000000,1244,-1.0000000000,1245,1.0000000000,1246,1.0000000000,1247,-1.0000000000,1248,-1.0000000000,1249,-1.0000000000,1250,-1.0000000000,1251,1.0000000000,1252,-1.0000000000,1253,-1.0000000000,1254,-1.0000000000,1255,-1.0000000000,1256,-1.0000000000,1257,-1.0000000000,1258,-1.0000000000,1259,-1.0000000000,1260,-1.0000000000,1261,-1.0000000000,1262,-1.0000000000,1263,-1.0000000000,1264,-1.0000000000,1265,-1.0000000000,1266,-1.0000000000,1267,-1.0000000000,1268,-1.0000000000,1269,1.0000000000,1270,-1.0000000000,1271,1.0000000000,1272,-1.0000000000,1273,1.0000000000,1274,1.0000000000,1275,1.0000000000,1276,-1.0000000000,1277,-1.0000000000,1278,-1.0000000000,1279,-1.0000000000,1280,-1.0000000000,1281,-1.0000000000,1282,-1.0000000000,1283,-1.0000000000,1284,-1.0000000000,1285,-1.0000000000,1286,-1.0000000000,1287,-1.0000000000,1288,-1.0000000000,1289,1.0000000000,1290,1.0000000000,1291,-1.0000000000,1292,-1.0000000000,1293,-1.0000000000,1294,-1.0000000000,1295,-1.0000000000,1296,-1.0000000000,1297,1.0000000000,1298,1.0000000000,1299,-1.0000000000,1300,-1.0000000000,1301,-1.0000000000,1302,1.0000000000,1303,1.0000000000,1304,1.0000000000,1305,1.0000000000,1306,1.0000000000,1307,-1.0000000000,1308,1.0000000000,1309,-1.0000000000,1310,-1.0000000000,1311,-1.0000000000,1312,-1.0000000000,1313,-1.0000000000,1314,1.0000000000,1315,1.0000000000,1316,1.0000000000,1317,1.0000000000,1318,1.0000000000,1319,-1.0000000000,1320,1.0000000000,1321,1.0000000000,1322,1.0000000000,1323,-1.0000000000,1324,-1.0000000000,1325,-1.0000000000,1326,-1.0000000000,1327,1.0000000000,1328,-1.0000000000,1329,-1.0000000000,1330,1.0000000000,1331,1.0000000000,1332,1.0000000000,1333,1.0000000000,1334,1.0000000000,1335,1.0000000000,1336,1.0000000000,1337,1.0000000000,1338,1.0000000000,1339,-1.0000000000,1340,-1.0000000000,1341,1.0000000000,1342,1.0000000000,1343,1.0000000000,1344,1.0000000000,1345,1.0000000000,1346,1.0000000000,1347,1.0000000000,1348,1.0000000000,1349,1.0000000000,1350,1.0000000000,1351,-1.0000000000,1352,-1.0000000000,1353,-1.0000000000,1354,-1.0000000000,1355,1.0000000000,1356,-1.0000000000,1357,-1.0000000000,1358,1.0000000000,1359,1.0000000000,1360,1.0000000000,1361,1.0000000000,1362,1.0000000000,1363,1.0000000000,1364,1.0000000000,1365,1.0000000000,1366,1.0000000000,1367,1.0000000000,1368,-1.0000000000,1369,1.0000000000,1370,1.0000000000,1371,1.0000000000,1372,1.0000000000,1373,1.0000000000,1374,1.0000000000,1375,1.0000000000,1376,1.0000000000,1377,1.0000000000,1378,-1.0000000000,1379,-1.0000000000,1380,-1.0000000000,1381,1.0000000000,1382,-1.0000000000,1383,-1.0000000000,1384,-1.0000000000,1385,1.0000000000,1386,1.0000000000,1387,1.0000000000,1388,1.0000000000,1389,1.0000000000,1390,1.0000000000,1391,1.0000000000,1392,1.0000000000,1393,1.0000000000,1394,1.0000000000,1395,1.0000000000,1396,1.0000000000,1397,1.0000000000,1398,1.0000000000,1399,1.0000000000,1400,1.0000000000,1401,1.0000000000,1402,1.0000000000,1403,1.0000000000,1404,1.0000000000,1405,1.0000000000,1406,-1.0000000000,1407,-1.0000000000,1408,-1.0000000000,1409,-1.0000000000,1410,1.0000000000,1411,1.0000000000,1412,-1.0000000000,1413,-1.0000000000,1414,-1.0000000000,1415,-1.0000000000,1416,1.0000000000,1417,1.0000000000,1418,-1.0000000000,1419,1.0000000000,1420,1.0000000000,1421,1.0000000000,1422,1.0000000000,1423,1.0000000000,1424,1.0000000000,1425,1.0000000000,1426,1.0000000000,1427,1.0000000000,1428,1.0000000000,1429,-1.0000000000,1430,1.0000000000,1431,1.0000000000,1432,1.0000000000,1433,1.0000000000,1434,-1.0000000000,1435,1.0000000000,1436,-1.0000000000,1437,-1.0000000000,1438,-1.0000000000,1439,1.0000000000,1440,1.0000000000,1441,1.0000000000,1442,1.0000000000,1443,1.0000000000,1444,1.0000000000,1445,-1.0000000000,1446,1.0000000000,1447,1.0000000000,1448,1.0000000000,1449,1.0000000000,1450,1.0000000000,1451,1.0000000000,1452,1.0000000000,1453,1.0000000000,1454,1.0000000000,1455,1.0000000000,1456,1.0000000000,1457,1.0000000000,1458,-1.0000000000,1459,1.0000000000,1460,-1.0000000000,1461,1.0000000000,1462,-1.0000000000,1463,1.0000000000,1464,-1.0000000000,1465,-1.0000000000,1466,-1.0000000000,1467,-1.0000000000,1468,-1.0000000000,1469,1.0000000000,1470,-1.0000000000,1471,-1.0000000000,1472,-1.0000000000,1473,-1.0000000000,1474,1.0000000000,1475,1.0000000000,1476,-1.0000000000,1477,1.0000000000,1478,1.0000000000,1479,1.0000000000,1480,1.0000000000,1481,1.0000000000,1482,1.0000000000,1483,-1.0000000000,1484,1.0000000000,1485,-1.0000000000,1486,1.0000000000,1487,-1.0000000000,1488,1.0000000000,1489,-1.0000000000,1490,1.0000000000,1491,1.0000000000,1492,-1.0000000000,1493,-1.0000000000,1494,1.0000000000,1495,1.0000000000,1496,1.0000000000,1497,1.0000000000,1498,1.0000000000,1499,-1.0000000000,1500,-1.0000000000,1501,-1.0000000000,1502,-1.0000000000,1503,-1.0000000000,1504,1.0000000000,1505,-1.0000000000,1506,-1.0000000000,1507,1.0000000000,1508,-1.0000000000,1509,-1.0000000000,1510,-1.0000000000,1511,1.0000000000,1512,-1.0000000000,1513,-1.0000000000,1514,-1.0000000000,1515,-1.0000000000,1516,-1.0000000000,1517,-1.0000000000,1518,1.0000000000,1519,1.0000000000,1520,1.0000000000,1521,1.0000000000,1522,1.0000000000,1523,1.0000000000,1524,1.0000000000,1525,1.0000000000,1526,1.0000000000,1527,1.0000000000,1528,-1.0000000000,1529,-1.0000000000,1530,-1.0000000000,1531,-1.0000000000,1532,-1.0000000000,1533,-1.0000000000,1534,-1.0000000000,1535,-1.0000000000,1536,-1.0000000000,1537,-1.0000000000,1538,-1.0000000000,1539,-1.0000000000,1540,-1.0000000000,1541,1.0000000000,1542,-1.0000000000,1543,1.0000000000,1544,1.0000000000,1545,1.0000000000,1546,1.0000000000,1547,1.0000000000,1548,1.0000000000,1549,-1.0000000000,1550,-1.0000000000,1551,1.0000000000,1552,1.0000000000,1553,1.0000000000,1554,1.0000000000,1555,1.0000000000,1556,1.0000000000,1557,1.0000000000,1558,1.0000000000,1559,1.0000000000,1560,1.0000000000,1561,1.0000000000,1562,1.0000000000,1563,-1.0000000000,1564,1.0000000000,1565,1.0000000000,1566,1.0000000000,1567,1.0000000000,1568,1.0000000000,1569,1.0000000000,1570,1.0000000000,1571,-1.0000000000,1572,1.0000000000,1573,-1.0000000000,1574,-1.0000000000,1575,1.0000000000,1576,1.0000000000,1577,-1.0000000000,1627,-1.0000000000 +834,0,0.8421083689,1578,0.0235017370,1628,-1.0000000000 +835,0,-0.2846569419,1579,0.0261672977,1629,-1.0000000000 +836,0,-0.6479381323,1580,0.0223037712,1630,-1.0000000000 +837,0,0.3773280084,1581,0.0231465548,1631,-1.0000000000 +838,0,-1.0555180311,1582,0.0243742540,1632,-1.0000000000 +839,0,0.7876127958,1583,0.0225345884,1633,-1.0000000000 +840,0,-0.9667378664,1584,0.0249240641,1634,-1.0000000000 +841,0,-0.7313812971,1585,0.0240810122,1635,-1.0000000000 +842,0,0.7189067602,1586,0.0228495728,1636,-1.0000000000 +843,0,0.7211230993,1587,0.0222876444,1637,-1.0000000000 +844,0,-0.9235455990,1588,0.0243723150,1638,-1.0000000000 +845,0,-0.5571734905,1589,0.0194766801,1639,-1.0000000000 +846,0,0.8664592505,1590,0.0231784545,1640,-1.0000000000 +847,0,0.3598901629,1591,0.0223980900,1641,-1.0000000000 +848,0,0.8700128198,1592,0.0229846016,1642,-1.0000000000 +849,0,0.7697677016,1593,0.0229231622,1643,-1.0000000000 +850,0,0.2859251499,1594,0.0247299802,1644,-1.0000000000 +851,0,-0.7671884298,1595,0.0267935731,1645,-1.0000000000 +852,0,0.7625827193,1596,0.0292239934,1646,-1.0000000000 +853,0,-0.6408279538,1597,0.0266149249,1647,-1.0000000000 +854,0,0.4876926839,1598,0.0229843184,1648,-1.0000000000 +855,0,-0.7342277169,1599,0.0265182480,1649,-1.0000000000 +856,0,-0.0043167840,1600,0.0231549405,1650,-1.0000000000 +857,0,-0.9360870719,1601,0.0253012348,1651,-1.0000000000 +858,0,-0.2136942148,1602,0.0208041538,1652,-1.0000000000 +859,0,0.6678317189,1603,0.0230627339,1653,-1.0000000000 +860,0,-0.8490259647,1604,0.0283609889,1654,-1.0000000000 +861,0,-0.8502492905,1605,0.0245368518,1655,-1.0000000000 +862,0,0.3299311101,1606,0.0213238895,1656,-1.0000000000 +863,0,-0.6741704941,1607,0.0265815370,1657,-1.0000000000 +864,0,-0.7203316092,1608,0.0197502580,1658,-1.0000000000 +865,0,-0.5871137381,1609,0.0245222691,1659,-1.0000000000 +866,0,-0.1073979139,1610,0.0194286499,1660,-1.0000000000 +867,0,-0.6457850933,1611,0.0255288966,1661,-1.0000000000 +868,0,-0.7653211355,1612,0.0226976387,1662,-1.0000000000 +869,0,-0.7774050236,1613,0.0227414705,1663,-1.0000000000 +870,0,-0.7453527451,1614,0.0255117286,1664,-1.0000000000 +871,0,0.3966747224,1615,0.0273439139,1665,-1.0000000000 +872,0,0.6267040372,1616,0.0262405220,1666,-1.0000000000 +873,0,-0.7901589870,1617,0.0219206698,1667,-1.0000000000 +874,0,-0.6241480708,1618,0.0257767029,1668,-1.0000000000 +875,0,0.3426552415,1619,0.0209231097,1669,-1.0000000000 +876,0,1.0251504183,1620,0.0249391589,1670,-1.0000000000 +877,0,0.5753672123,1621,0.0281392988,1671,-1.0000000000 +878,0,0.0552809983,1622,0.0230191071,1672,-1.0000000000 +879,0,-0.7643856406,1623,0.0223054085,1673,-1.0000000000 +880,0,-0.9038895965,1624,0.0259901769,1674,-1.0000000000 +881,0,0.3115992844,1625,0.0212058239,1675,-1.0000000000 +882,0,0.8047288656,1626,0.0262604449,1676,-1.0000000000 +883,0,-0.1062955856,1627,0.0169141162,1677,-1.0000000000 +884,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1828,-1.0000000000 +885,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1829,-1.0000000000 +886,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1830,-1.0000000000 +887,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1831,-1.0000000000 +888,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1832,-1.0000000000 +889,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1833,-1.0000000000 +890,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1834,-1.0000000000 +891,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1835,-1.0000000000 +892,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1836,-1.0000000000 +893,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1837,-1.0000000000 +894,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1838,-1.0000000000 +895,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1839,-1.0000000000 +896,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1840,-1.0000000000 +897,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1841,-1.0000000000 +898,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1842,-1.0000000000 +899,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1843,-1.0000000000 +900,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1844,-1.0000000000 +901,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1845,-1.0000000000 +902,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1846,-1.0000000000 +903,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1847,-1.0000000000 +904,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1848,-1.0000000000 +905,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1849,-1.0000000000 +906,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1850,-1.0000000000 +907,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1851,-1.0000000000 +908,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1852,-1.0000000000 +909,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1853,-1.0000000000 +910,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,-1.0000000000,1854,-1.0000000000 +911,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1855,-1.0000000000 +912,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1856,-1.0000000000 +913,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1857,-1.0000000000 +914,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1858,-1.0000000000 +915,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1859,-1.0000000000 +916,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1860,-1.0000000000 +917,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,1.0000000000,1861,-1.0000000000 +918,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1862,-1.0000000000 +919,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1863,-1.0000000000 +920,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,-1.0000000000,1864,-1.0000000000 +921,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1865,-1.0000000000 +922,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1866,-1.0000000000 +923,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1867,-1.0000000000 +924,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,-1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1868,-1.0000000000 +925,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1869,-1.0000000000 +926,0,-0.0000000000,1678,1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1870,-1.0000000000 +927,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1871,-1.0000000000 +928,0,-0.0000000000,1678,-1.0000000000,1679,-1.0000000000,1680,-1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,-1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,-1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,1.0000000000,1702,1.0000000000,1703,1.0000000000,1704,1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,-1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,1.0000000000,1726,1.0000000000,1727,-1.0000000000,1872,-1.0000000000 +929,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,-1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,1.0000000000,1688,-1.0000000000,1689,-1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,-1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,-1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,-1.0000000000,1873,-1.0000000000 +930,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,-1.0000000000,1682,-1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,-1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,1.0000000000,1699,-1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,-1.0000000000,1709,-1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,1.0000000000,1713,-1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,-1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1874,-1.0000000000 +931,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,-1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,-1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,-1.0000000000,1716,-1.0000000000,1717,1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,-1.0000000000,1727,1.0000000000,1875,-1.0000000000 +932,0,-0.0000000000,1678,1.0000000000,1679,1.0000000000,1680,-1.0000000000,1681,-1.0000000000,1682,1.0000000000,1683,-1.0000000000,1684,-1.0000000000,1685,-1.0000000000,1686,1.0000000000,1687,-1.0000000000,1688,-1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,-1.0000000000,1693,1.0000000000,1694,1.0000000000,1695,-1.0000000000,1696,-1.0000000000,1697,-1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,1.0000000000,1701,-1.0000000000,1702,-1.0000000000,1703,1.0000000000,1704,-1.0000000000,1705,1.0000000000,1706,-1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,-1.0000000000,1711,-1.0000000000,1712,1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,-1.0000000000,1719,-1.0000000000,1720,1.0000000000,1721,1.0000000000,1722,1.0000000000,1723,-1.0000000000,1724,1.0000000000,1725,1.0000000000,1726,-1.0000000000,1727,1.0000000000,1876,-1.0000000000 +933,0,-0.0000000000,1678,-1.0000000000,1679,1.0000000000,1680,1.0000000000,1681,1.0000000000,1682,1.0000000000,1683,1.0000000000,1684,-1.0000000000,1685,1.0000000000,1686,-1.0000000000,1687,-1.0000000000,1688,1.0000000000,1689,1.0000000000,1690,1.0000000000,1691,1.0000000000,1692,1.0000000000,1693,-1.0000000000,1694,-1.0000000000,1695,1.0000000000,1696,1.0000000000,1697,1.0000000000,1698,-1.0000000000,1699,1.0000000000,1700,-1.0000000000,1701,1.0000000000,1702,-1.0000000000,1703,-1.0000000000,1704,-1.0000000000,1705,-1.0000000000,1706,1.0000000000,1707,-1.0000000000,1708,1.0000000000,1709,1.0000000000,1710,1.0000000000,1711,1.0000000000,1712,-1.0000000000,1713,1.0000000000,1714,-1.0000000000,1715,1.0000000000,1716,-1.0000000000,1717,-1.0000000000,1718,1.0000000000,1719,1.0000000000,1720,1.0000000000,1721,-1.0000000000,1722,1.0000000000,1723,1.0000000000,1724,-1.0000000000,1725,-1.0000000000,1726,1.0000000000,1727,1.0000000000,1877,-1.0000000000 +934,0,-0.4422365427,1828,0.1020488292,1878,-1.0000000000 +935,0,0.4480501115,1829,0.0991111100,1879,-1.0000000000 +936,0,-0.1003972590,1830,0.0965854451,1880,-1.0000000000 +937,0,-1.1484458447,1831,0.1059442237,1881,-1.0000000000 +938,0,1.0887894630,1832,0.0989778936,1882,-1.0000000000 +939,0,-1.0348954201,1833,0.1068197116,1883,-1.0000000000 +940,0,0.5534237027,1834,0.1160275713,1884,-1.0000000000 +941,0,0.9348842502,1835,0.1132629067,1885,-1.0000000000 +942,0,-0.4643164575,1836,0.1065536290,1886,-1.0000000000 +943,0,0.0835817456,1837,0.1003656834,1887,-1.0000000000 +944,0,0.3977578878,1838,0.1060394570,1888,-1.0000000000 +945,0,0.0678663701,1839,0.1013686582,1889,-1.0000000000 +946,0,-0.8597519398,1840,0.1015724093,1890,-1.0000000000 +947,0,1.2035224438,1841,0.1225976050,1891,-1.0000000000 +948,0,0.6223870516,1842,0.1063073128,1892,-1.0000000000 +949,0,-0.6301627755,1843,0.1010998860,1893,-1.0000000000 +950,0,-0.2829226255,1844,0.1127813533,1894,-1.0000000000 +951,0,-0.3967113197,1845,0.0949260890,1895,-1.0000000000 +952,0,-0.4686790705,1846,0.1089941412,1896,-1.0000000000 +953,0,0.1133320630,1847,0.1046472266,1897,-1.0000000000 +954,0,-0.8415259123,1848,0.1142742112,1898,-1.0000000000 +955,0,-0.9505460262,1849,0.1072790921,1899,-1.0000000000 +956,0,0.6531319022,1850,0.0998267680,1900,-1.0000000000 +957,0,-1.1331965923,1851,0.1025341526,1901,-1.0000000000 +958,0,1.3528954983,1852,0.0976141840,1902,-1.0000000000 +959,0,0.4627612829,1853,0.1206339747,1903,-1.0000000000 +960,0,0.8055898547,1854,0.1269099861,1904,-1.0000000000 +961,0,-0.9832527637,1855,0.1577575952,1905,-1.0000000000 +962,0,-0.1737223566,1856,0.1104114428,1906,-1.0000000000 +963,0,-0.0058632195,1857,0.1134437397,1907,-1.0000000000 +964,0,-0.9974204898,1858,0.1002218947,1908,-1.0000000000 +965,0,-1.0862815380,1859,0.1043362990,1909,-1.0000000000 +966,0,0.0564095974,1860,0.1188390180,1910,-1.0000000000 +967,0,1.0363285542,1861,0.1173062101,1911,-1.0000000000 +968,0,-0.7735077143,1862,0.1057077050,1912,-1.0000000000 +969,0,-0.4638699293,1863,0.1058885753,1913,-1.0000000000 +970,0,-0.6389272809,1864,0.1045930758,1914,-1.0000000000 +971,0,-0.0019936562,1865,0.1059108078,1915,-1.0000000000 +972,0,-0.4133639932,1866,0.1102507859,1916,-1.0000000000 +973,0,-0.2886965275,1867,0.1195091382,1917,-1.0000000000 +974,0,0.5997220874,1868,0.1224286780,1918,-1.0000000000 +975,0,1.2392590046,1869,0.1132306159,1919,-1.0000000000 +976,0,-1.6176872253,1870,0.1193554476,1920,-1.0000000000 +977,0,-0.0936360657,1871,0.1110986844,1921,-1.0000000000 +978,0,0.8811743259,1872,0.1029497087,1922,-1.0000000000 +979,0,0.3017511964,1873,0.0968364775,1923,-1.0000000000 +980,0,0.5134924650,1874,0.1179610640,1924,-1.0000000000 +981,0,-0.0661748648,1875,0.1095789969,1925,-1.0000000000 +982,0,-1.3897794485,1876,0.1369069517,1926,-1.0000000000 +983,0,-0.7762956619,1877,0.1096271724,1927,-1.0000000000 +984,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2078,-1.0000000000 +985,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2079,-1.0000000000 +986,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2080,-1.0000000000 +987,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2081,-1.0000000000 +988,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2082,-1.0000000000 +989,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2083,-1.0000000000 +990,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2084,-1.0000000000 +991,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2085,-1.0000000000 +992,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,-1.0000000000,1977,1.0000000000,2086,-1.0000000000 +993,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2087,-1.0000000000 +994,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2088,-1.0000000000 +995,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2089,-1.0000000000 +996,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2090,-1.0000000000 +997,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2091,-1.0000000000 +998,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2092,-1.0000000000 +999,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2093,-1.0000000000 +1000,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2094,-1.0000000000 +1001,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2095,-1.0000000000 +1002,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2096,-1.0000000000 +1003,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2097,-1.0000000000 +1004,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2098,-1.0000000000 +1005,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2099,-1.0000000000 +1006,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2100,-1.0000000000 +1007,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2101,-1.0000000000 +1008,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2102,-1.0000000000 +1009,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,1.0000000000,2103,-1.0000000000 +1010,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2104,-1.0000000000 +1011,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2105,-1.0000000000 +1012,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2106,-1.0000000000 +1013,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,1.0000000000,2107,-1.0000000000 +1014,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2108,-1.0000000000 +1015,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,-1.0000000000,1977,1.0000000000,2109,-1.0000000000 +1016,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2110,-1.0000000000 +1017,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2111,-1.0000000000 +1018,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2112,-1.0000000000 +1019,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2113,-1.0000000000 +1020,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2114,-1.0000000000 +1021,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2115,-1.0000000000 +1022,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2116,-1.0000000000 +1023,0,-0.0000000000,1928,1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,-1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2117,-1.0000000000 +1024,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2118,-1.0000000000 +1025,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,1.0000000000,1961,-1.0000000000,1962,1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2119,-1.0000000000 +1026,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,-1.0000000000,1968,1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,-1.0000000000,2120,-1.0000000000 +1027,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,1.0000000000,2121,-1.0000000000 +1028,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,-1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,1.0000000000,1939,-1.0000000000,1940,-1.0000000000,1941,-1.0000000000,1942,-1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2122,-1.0000000000 +1029,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,-1.0000000000,1932,-1.0000000000,1933,-1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,-1.0000000000,1942,1.0000000000,1943,-1.0000000000,1944,1.0000000000,1945,-1.0000000000,1946,1.0000000000,1947,1.0000000000,1948,1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,1.0000000000,1955,-1.0000000000,1956,-1.0000000000,1957,1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,-1.0000000000,1967,-1.0000000000,1968,-1.0000000000,1969,-1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,-1.0000000000,1973,1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,-1.0000000000,2123,-1.0000000000 +1030,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,-1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,-1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,-1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,-1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,1.0000000000,1960,-1.0000000000,1961,1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,1.0000000000,1976,1.0000000000,1977,1.0000000000,2124,-1.0000000000 +1031,0,-0.0000000000,1928,-1.0000000000,1929,-1.0000000000,1930,-1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,1.0000000000,1943,1.0000000000,1944,-1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,-1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,1.0000000000,1959,-1.0000000000,1960,1.0000000000,1961,1.0000000000,1962,1.0000000000,1963,1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,-1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,1.0000000000,1971,-1.0000000000,1972,-1.0000000000,1973,-1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,-1.0000000000,1977,1.0000000000,2125,-1.0000000000 +1032,0,-0.0000000000,1928,1.0000000000,1929,-1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,1.0000000000,1937,-1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,-1.0000000000,1950,-1.0000000000,1951,1.0000000000,1952,1.0000000000,1953,1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,1.0000000000,1964,1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,1.0000000000,1972,1.0000000000,1973,-1.0000000000,1974,1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2126,-1.0000000000 +1033,0,-0.0000000000,1928,-1.0000000000,1929,1.0000000000,1930,1.0000000000,1931,1.0000000000,1932,1.0000000000,1933,1.0000000000,1934,-1.0000000000,1935,1.0000000000,1936,-1.0000000000,1937,1.0000000000,1938,-1.0000000000,1939,-1.0000000000,1940,1.0000000000,1941,1.0000000000,1942,-1.0000000000,1943,1.0000000000,1944,1.0000000000,1945,1.0000000000,1946,-1.0000000000,1947,-1.0000000000,1948,-1.0000000000,1949,1.0000000000,1950,-1.0000000000,1951,-1.0000000000,1952,1.0000000000,1953,-1.0000000000,1954,-1.0000000000,1955,1.0000000000,1956,1.0000000000,1957,-1.0000000000,1958,-1.0000000000,1959,-1.0000000000,1960,-1.0000000000,1961,-1.0000000000,1962,-1.0000000000,1963,-1.0000000000,1964,-1.0000000000,1965,-1.0000000000,1966,1.0000000000,1967,1.0000000000,1968,-1.0000000000,1969,1.0000000000,1970,-1.0000000000,1971,-1.0000000000,1972,1.0000000000,1973,1.0000000000,1974,-1.0000000000,1975,-1.0000000000,1976,1.0000000000,1977,-1.0000000000,2127,-1.0000000000 +1034,0,-1.5439108610,2078,0.0876089185,2128,-1.0000000000 +1035,0,-0.4739111364,2079,0.0961711332,2129,-1.0000000000 +1036,0,-1.0415468216,2080,0.0937085450,2130,-1.0000000000 +1037,0,0.6139742732,2081,0.0812947005,2131,-1.0000000000 +1038,0,0.5557186604,2082,0.0871866420,2132,-1.0000000000 +1039,0,-0.3893597722,2083,0.0804945678,2133,-1.0000000000 +1040,0,-0.8266534805,2084,0.0812162086,2134,-1.0000000000 +1041,0,0.2232298106,2085,0.0948337018,2135,-1.0000000000 +1042,0,-0.0620028004,2086,0.0776069760,2136,-1.0000000000 +1043,0,1.1303224564,2087,0.0934174880,2137,-1.0000000000 +1044,0,-0.2364211082,2088,0.0797051936,2138,-1.0000000000 +1045,0,-0.9706853628,2089,0.0967904106,2139,-1.0000000000 +1046,0,-0.2923468649,2090,0.0907429308,2140,-1.0000000000 +1047,0,-0.5784704685,2091,0.0755174533,2141,-1.0000000000 +1048,0,-0.0592839196,2092,0.0796242356,2142,-1.0000000000 +1049,0,0.3860493600,2093,0.0900726616,2143,-1.0000000000 +1050,0,1.4812798500,2094,0.0888576508,2144,-1.0000000000 +1051,0,-0.8718976378,2095,0.1031556055,2145,-1.0000000000 +1052,0,-0.1305737942,2096,0.0803080872,2146,-1.0000000000 +1053,0,-0.2846091986,2097,0.0820637047,2147,-1.0000000000 +1054,0,0.1756512523,2098,0.0995460078,2148,-1.0000000000 +1055,0,1.2454360723,2099,0.1092514172,2149,-1.0000000000 +1056,0,1.0246465206,2100,0.0863156915,2150,-1.0000000000 +1057,0,0.2504656911,2101,0.0761504471,2151,-1.0000000000 +1058,0,0.7058990002,2102,0.0841773748,2152,-1.0000000000 +1059,0,0.0360603780,2103,0.0885879919,2153,-1.0000000000 +1060,0,-0.5337175727,2104,0.0816795677,2154,-1.0000000000 +1061,0,1.3386275768,2105,0.0769669712,2155,-1.0000000000 +1062,0,-0.5070524216,2106,0.0816306695,2156,-1.0000000000 +1063,0,-0.7249984741,2107,0.0855440348,2157,-1.0000000000 +1064,0,1.4707089663,2108,0.0787225068,2158,-1.0000000000 +1065,0,0.2180018425,2109,0.0845124200,2159,-1.0000000000 +1066,0,0.6674256325,2110,0.0969409272,2160,-1.0000000000 +1067,0,0.0993419141,2111,0.0880582631,2161,-1.0000000000 +1068,0,0.0910886228,2112,0.0868164375,2162,-1.0000000000 +1069,0,-0.5364635587,2113,0.1057630703,2163,-1.0000000000 +1070,0,1.2253115177,2114,0.0867191926,2164,-1.0000000000 +1071,0,0.8443910480,2115,0.0999500081,2165,-1.0000000000 +1072,0,1.0910279751,2116,0.0895362720,2166,-1.0000000000 +1073,0,0.1953761876,2117,0.0960677862,2167,-1.0000000000 +1074,0,0.4993414283,2118,0.0850909576,2168,-1.0000000000 +1075,0,0.2611379027,2119,0.0794575140,2169,-1.0000000000 +1076,0,-1.7781825066,2120,0.0924188271,2170,-1.0000000000 +1077,0,-0.6430346966,2121,0.0960254595,2171,-1.0000000000 +1078,0,0.7111772299,2122,0.0932400376,2172,-1.0000000000 +1079,0,0.5366181135,2123,0.0883551985,2173,-1.0000000000 +1080,0,1.2333692312,2124,0.0930536613,2174,-1.0000000000 +1081,0,0.7760955095,2125,0.0919722095,2175,-1.0000000000 +1082,0,-0.0114938617,2126,0.0945464075,2176,-1.0000000000 +1083,0,0.8896213770,2127,0.1000391170,2177,-1.0000000000 +1084,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,1.0000000000,2328,-1.0000000000 +1085,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2329,-1.0000000000 +1086,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2330,-1.0000000000 +1087,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2331,-1.0000000000 +1088,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2332,-1.0000000000 +1089,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,1.0000000000,2333,-1.0000000000 +1090,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2334,-1.0000000000 +1091,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2335,-1.0000000000 +1092,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2336,-1.0000000000 +1093,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2337,-1.0000000000 +1094,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2338,-1.0000000000 +1095,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2339,-1.0000000000 +1096,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,-1.0000000000,2340,-1.0000000000 +1097,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2341,-1.0000000000 +1098,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2342,-1.0000000000 +1099,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2343,-1.0000000000 +1100,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2344,-1.0000000000 +1101,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2345,-1.0000000000 +1102,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2346,-1.0000000000 +1103,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2347,-1.0000000000 +1104,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2348,-1.0000000000 +1105,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2349,-1.0000000000 +1106,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2350,-1.0000000000 +1107,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2351,-1.0000000000 +1108,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,-1.0000000000,2352,-1.0000000000 +1109,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2353,-1.0000000000 +1110,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2354,-1.0000000000 +1111,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,1.0000000000,2355,-1.0000000000 +1112,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2356,-1.0000000000 +1113,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2357,-1.0000000000 +1114,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2358,-1.0000000000 +1115,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2359,-1.0000000000 +1116,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2360,-1.0000000000 +1117,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2361,-1.0000000000 +1118,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,1.0000000000,2362,-1.0000000000 +1119,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,-1.0000000000,2227,1.0000000000,2363,-1.0000000000 +1120,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,1.0000000000,2364,-1.0000000000 +1121,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2365,-1.0000000000 +1122,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,-1.0000000000,2366,-1.0000000000 +1123,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2367,-1.0000000000 +1124,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2368,-1.0000000000 +1125,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,-1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2369,-1.0000000000 +1126,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2370,-1.0000000000 +1127,0,-0.0000000000,2178,-1.0000000000,2179,1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,-1.0000000000,2205,1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,1.0000000000,2215,1.0000000000,2216,-1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,1.0000000000,2371,-1.0000000000 +1128,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,1.0000000000,2203,1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,-1.0000000000,2217,-1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2372,-1.0000000000 +1129,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,-1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2373,-1.0000000000 +1130,0,-0.0000000000,2178,-1.0000000000,2179,-1.0000000000,2180,-1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,-1.0000000000,2184,1.0000000000,2185,-1.0000000000,2186,-1.0000000000,2187,-1.0000000000,2188,-1.0000000000,2189,-1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,-1.0000000000,2194,-1.0000000000,2195,1.0000000000,2196,-1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,-1.0000000000,2200,1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,1.0000000000,2206,1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,-1.0000000000,2210,-1.0000000000,2211,1.0000000000,2212,-1.0000000000,2213,1.0000000000,2214,-1.0000000000,2215,1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,-1.0000000000,2219,1.0000000000,2220,1.0000000000,2221,1.0000000000,2222,1.0000000000,2223,-1.0000000000,2224,1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2374,-1.0000000000 +1131,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,1.0000000000,2227,1.0000000000,2375,-1.0000000000 +1132,0,-0.0000000000,2178,1.0000000000,2179,1.0000000000,2180,1.0000000000,2181,1.0000000000,2182,-1.0000000000,2183,-1.0000000000,2184,-1.0000000000,2185,1.0000000000,2186,1.0000000000,2187,-1.0000000000,2188,1.0000000000,2189,-1.0000000000,2190,1.0000000000,2191,-1.0000000000,2192,-1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,-1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,1.0000000000,2202,1.0000000000,2203,-1.0000000000,2204,-1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,1.0000000000,2208,1.0000000000,2209,1.0000000000,2210,-1.0000000000,2211,-1.0000000000,2212,-1.0000000000,2213,-1.0000000000,2214,1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,-1.0000000000,2218,1.0000000000,2219,1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,-1.0000000000,2223,-1.0000000000,2224,-1.0000000000,2225,1.0000000000,2226,1.0000000000,2227,-1.0000000000,2376,-1.0000000000 +1133,0,-0.0000000000,2178,1.0000000000,2179,-1.0000000000,2180,1.0000000000,2181,-1.0000000000,2182,1.0000000000,2183,1.0000000000,2184,-1.0000000000,2185,-1.0000000000,2186,1.0000000000,2187,1.0000000000,2188,1.0000000000,2189,1.0000000000,2190,-1.0000000000,2191,1.0000000000,2192,1.0000000000,2193,1.0000000000,2194,1.0000000000,2195,-1.0000000000,2196,1.0000000000,2197,-1.0000000000,2198,1.0000000000,2199,1.0000000000,2200,-1.0000000000,2201,-1.0000000000,2202,-1.0000000000,2203,-1.0000000000,2204,1.0000000000,2205,-1.0000000000,2206,-1.0000000000,2207,-1.0000000000,2208,-1.0000000000,2209,1.0000000000,2210,1.0000000000,2211,-1.0000000000,2212,1.0000000000,2213,-1.0000000000,2214,-1.0000000000,2215,-1.0000000000,2216,1.0000000000,2217,1.0000000000,2218,1.0000000000,2219,-1.0000000000,2220,-1.0000000000,2221,-1.0000000000,2222,1.0000000000,2223,1.0000000000,2224,-1.0000000000,2225,-1.0000000000,2226,-1.0000000000,2227,-1.0000000000,2377,-1.0000000000 +1134,0,0.0831787437,2328,0.0764585137,2378,-1.0000000000 +1135,0,-0.1364517659,2329,0.0798864216,2379,-1.0000000000 +1136,0,1.8092790842,2330,0.0792033300,2380,-1.0000000000 +1137,0,0.2641986907,2331,0.0732443780,2381,-1.0000000000 +1138,0,1.2061002254,2332,0.0782436728,2382,-1.0000000000 +1139,0,-1.8642137051,2333,0.0861918181,2383,-1.0000000000 +1140,0,-0.1733025759,2334,0.0763822570,2384,-1.0000000000 +1141,0,1.4934809208,2335,0.0766226798,2385,-1.0000000000 +1142,0,-0.1346085519,2336,0.0771160796,2386,-1.0000000000 +1143,0,0.1427569836,2337,0.0810657293,2387,-1.0000000000 +1144,0,-0.0470439941,2338,0.0790032297,2388,-1.0000000000 +1145,0,0.3314089775,2339,0.0826260373,2389,-1.0000000000 +1146,0,0.5605881810,2340,0.0821316242,2390,-1.0000000000 +1147,0,-0.0279953144,2341,0.0758167356,2391,-1.0000000000 +1148,0,0.1289070398,2342,0.0772503018,2392,-1.0000000000 +1149,0,-0.2735776901,2343,0.0737596825,2393,-1.0000000000 +1150,0,0.0808036923,2344,0.0803246498,2394,-1.0000000000 +1151,0,0.3288836777,2345,0.0781317875,2395,-1.0000000000 +1152,0,-0.0946673453,2346,0.0748800337,2396,-1.0000000000 +1153,0,0.1801957637,2347,0.0833257213,2397,-1.0000000000 +1154,0,-0.3167375326,2348,0.0825496614,2398,-1.0000000000 +1155,0,-1.6758612394,2349,0.0833077803,2399,-1.0000000000 +1156,0,0.4785592556,2350,0.0786740705,2400,-1.0000000000 +1157,0,-0.0440198034,2351,0.0839604437,2401,-1.0000000000 +1158,0,-0.4510684013,2352,0.0727607608,2402,-1.0000000000 +1159,0,0.4796656966,2353,0.0754371658,2403,-1.0000000000 +1160,0,-0.1467658728,2354,0.0801599845,2404,-1.0000000000 +1161,0,-1.6980912685,2355,0.0824286491,2405,-1.0000000000 +1162,0,-0.5121878386,2356,0.0887714252,2406,-1.0000000000 +1163,0,-0.1283654422,2357,0.0806707665,2407,-1.0000000000 +1164,0,-0.5782864094,2358,0.0757020339,2408,-1.0000000000 +1165,0,-1.3219553232,2359,0.0830138251,2409,-1.0000000000 +1166,0,1.3010077477,2360,0.0867237747,2410,-1.0000000000 +1167,0,1.8038090467,2361,0.0811277553,2411,-1.0000000000 +1168,0,1.0391250849,2362,0.0832474679,2412,-1.0000000000 +1169,0,-0.8869209290,2363,0.0883564204,2413,-1.0000000000 +1170,0,0.4410263300,2364,0.0816484168,2414,-1.0000000000 +1171,0,0.5588466525,2365,0.0827038214,2415,-1.0000000000 +1172,0,-0.4485054016,2366,0.0719914138,2416,-1.0000000000 +1173,0,0.2402071357,2367,0.0743149817,2417,-1.0000000000 +1174,0,-1.7117775679,2368,0.0778249726,2418,-1.0000000000 +1175,0,-0.2367737740,2369,0.0717907771,2419,-1.0000000000 +1176,0,0.0982874855,2370,0.0753626451,2420,-1.0000000000 +1177,0,-0.0940445662,2371,0.0761000440,2421,-1.0000000000 +1178,0,-0.0428520180,2372,0.0847094953,2422,-1.0000000000 +1179,0,0.5425710678,2373,0.0811219513,2423,-1.0000000000 +1180,0,0.4396020770,2374,0.0789181367,2424,-1.0000000000 +1181,0,0.3062215745,2375,0.0784865990,2425,-1.0000000000 +1182,0,-0.2372326851,2376,0.0754072890,2426,-1.0000000000 +1183,0,0.4145061076,2377,0.0873605311,2427,-1.0000000000 +1184,0,-0.0000000000,2428,1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,-1.0000000000,2433,-1.0000000000,2434,-1.0000000000,2435,1.0000000000,2436,1.0000000000,2437,-1.0000000000,2438,1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,-1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,-1.0000000000,2445,-1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,-1.0000000000,2449,1.0000000000,2450,1.0000000000,2451,-1.0000000000,2452,-1.0000000000,2453,1.0000000000,2454,1.0000000000,2455,1.0000000000,2456,-1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,-1.0000000000,2469,1.0000000000,2470,1.0000000000,2471,-1.0000000000,2472,1.0000000000,2473,1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,1.0000000000,2578,-1.0000000000 +1185,0,-0.0000000000,2428,1.0000000000,2429,-1.0000000000,2430,-1.0000000000,2431,1.0000000000,2432,1.0000000000,2433,-1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,1.0000000000,2441,1.0000000000,2442,-1.0000000000,2443,1.0000000000,2444,1.0000000000,2445,-1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,-1.0000000000,2449,1.0000000000,2450,-1.0000000000,2451,-1.0000000000,2452,1.0000000000,2453,-1.0000000000,2454,-1.0000000000,2455,-1.0000000000,2456,-1.0000000000,2457,-1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,1.0000000000,2462,-1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,1.0000000000,2466,-1.0000000000,2467,-1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,1.0000000000,2473,1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,1.0000000000,2579,-1.0000000000 +1186,0,-0.0000000000,2428,-1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,-1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,-1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,1.0000000000,2440,-1.0000000000,2441,1.0000000000,2442,1.0000000000,2443,-1.0000000000,2444,-1.0000000000,2445,1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,-1.0000000000,2449,-1.0000000000,2450,-1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,-1.0000000000,2454,-1.0000000000,2455,1.0000000000,2456,1.0000000000,2457,1.0000000000,2458,-1.0000000000,2459,-1.0000000000,2460,-1.0000000000,2461,1.0000000000,2462,-1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,-1.0000000000,2473,-1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,-1.0000000000,2580,-1.0000000000 +1187,0,-0.0000000000,2428,-1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,-1.0000000000,2437,-1.0000000000,2438,1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,-1.0000000000,2442,1.0000000000,2443,-1.0000000000,2444,-1.0000000000,2445,1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,-1.0000000000,2449,-1.0000000000,2450,1.0000000000,2451,-1.0000000000,2452,-1.0000000000,2453,1.0000000000,2454,-1.0000000000,2455,1.0000000000,2456,-1.0000000000,2457,1.0000000000,2458,-1.0000000000,2459,-1.0000000000,2460,1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,1.0000000000,2464,-1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,-1.0000000000,2469,-1.0000000000,2470,1.0000000000,2471,-1.0000000000,2472,-1.0000000000,2473,1.0000000000,2474,1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,1.0000000000,2581,-1.0000000000 +1188,0,-0.0000000000,2428,-1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,-1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,1.0000000000,2436,1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,-1.0000000000,2445,1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,-1.0000000000,2449,-1.0000000000,2450,-1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,-1.0000000000,2454,-1.0000000000,2455,1.0000000000,2456,-1.0000000000,2457,-1.0000000000,2458,-1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,-1.0000000000,2464,1.0000000000,2465,1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,1.0000000000,2469,-1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,1.0000000000,2473,-1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,-1.0000000000,2582,-1.0000000000 +1189,0,-0.0000000000,2428,1.0000000000,2429,1.0000000000,2430,-1.0000000000,2431,-1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,1.0000000000,2435,1.0000000000,2436,1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,-1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,-1.0000000000,2445,-1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,1.0000000000,2449,-1.0000000000,2450,1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,1.0000000000,2454,-1.0000000000,2455,-1.0000000000,2456,1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,1.0000000000,2468,1.0000000000,2469,-1.0000000000,2470,-1.0000000000,2471,-1.0000000000,2472,1.0000000000,2473,-1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,-1.0000000000,2583,-1.0000000000 +1190,0,-0.0000000000,2428,1.0000000000,2429,-1.0000000000,2430,-1.0000000000,2431,1.0000000000,2432,1.0000000000,2433,-1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,1.0000000000,2437,-1.0000000000,2438,1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,-1.0000000000,2445,-1.0000000000,2446,1.0000000000,2447,-1.0000000000,2448,-1.0000000000,2449,-1.0000000000,2450,-1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,-1.0000000000,2454,1.0000000000,2455,-1.0000000000,2456,1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,-1.0000000000,2460,-1.0000000000,2461,-1.0000000000,2462,1.0000000000,2463,1.0000000000,2464,-1.0000000000,2465,-1.0000000000,2466,1.0000000000,2467,1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,1.0000000000,2471,1.0000000000,2472,-1.0000000000,2473,-1.0000000000,2474,1.0000000000,2475,-1.0000000000,2476,-1.0000000000,2477,-1.0000000000,2584,-1.0000000000 +1191,0,-0.0000000000,2428,1.0000000000,2429,-1.0000000000,2430,1.0000000000,2431,1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,-1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,1.0000000000,2441,1.0000000000,2442,-1.0000000000,2443,1.0000000000,2444,1.0000000000,2445,-1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,-1.0000000000,2449,1.0000000000,2450,-1.0000000000,2451,-1.0000000000,2452,1.0000000000,2453,-1.0000000000,2454,1.0000000000,2455,-1.0000000000,2456,-1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,1.0000000000,2461,1.0000000000,2462,-1.0000000000,2463,1.0000000000,2464,-1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,-1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,-1.0000000000,2473,1.0000000000,2474,1.0000000000,2475,-1.0000000000,2476,-1.0000000000,2477,1.0000000000,2585,-1.0000000000 +1192,0,-0.0000000000,2428,1.0000000000,2429,1.0000000000,2430,1.0000000000,2431,-1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,1.0000000000,2435,1.0000000000,2436,-1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,1.0000000000,2440,-1.0000000000,2441,1.0000000000,2442,1.0000000000,2443,1.0000000000,2444,1.0000000000,2445,-1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,1.0000000000,2449,1.0000000000,2450,-1.0000000000,2451,1.0000000000,2452,1.0000000000,2453,-1.0000000000,2454,1.0000000000,2455,-1.0000000000,2456,1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,1.0000000000,2462,1.0000000000,2463,-1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,-1.0000000000,2468,1.0000000000,2469,1.0000000000,2470,-1.0000000000,2471,1.0000000000,2472,-1.0000000000,2473,-1.0000000000,2474,1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,-1.0000000000,2586,-1.0000000000 +1193,0,-0.0000000000,2428,1.0000000000,2429,1.0000000000,2430,1.0000000000,2431,-1.0000000000,2432,1.0000000000,2433,1.0000000000,2434,-1.0000000000,2435,-1.0000000000,2436,-1.0000000000,2437,1.0000000000,2438,-1.0000000000,2439,-1.0000000000,2440,-1.0000000000,2441,-1.0000000000,2442,-1.0000000000,2443,1.0000000000,2444,1.0000000000,2445,1.0000000000,2446,-1.0000000000,2447,1.0000000000,2448,1.0000000000,2449,1.0000000000,2450,1.0000000000,2451,1.0000000000,2452,-1.0000000000,2453,1.0000000000,2454,-1.0000000000,2455,1.0000000000,2456,-1.0000000000,2457,1.0000000000,2458,1.0000000000,2459,1.0000000000,2460,-1.0000000000,2461,1.0000000000,2462,-1.0000000000,2463,1.0000000000,2464,1.0000000000,2465,-1.0000000000,2466,-1.0000000000,2467,-1.0000000000,2468,1.0000000000,2469,-1.0000000000,2470,-1.0000000000,2471,-1.0000000000,2472,-1.0000000000,2473,1.0000000000,2474,-1.0000000000,2475,1.0000000000,2476,1.0000000000,2477,1.0000000000,2587,-1.0000000000 +1194,0,-0.2191663980,2578,0.0748265833,2588,-1.0000000000 +1195,0,0.1379462183,2579,0.0680898950,2589,-1.0000000000 +1196,0,0.3651287258,2580,0.0697829127,2590,-1.0000000000 +1197,0,-0.3790612817,2581,0.0699527264,2591,-1.0000000000 +1198,0,0.0887304395,2582,0.0746282265,2592,-1.0000000000 +1199,0,0.1295915544,2583,0.0643937513,2593,-1.0000000000 +1200,0,0.3341619074,2584,0.0683351308,2594,-1.0000000000 +1201,0,-0.0701742172,2585,0.0764223784,2595,-1.0000000000 +1202,0,0.2174075395,2586,0.0778548196,2596,-1.0000000000 +1203,0,0.3690969944,2587,0.0806291550,2597,-1.0000000000 +1204,0,-0.0000000000,2598,1.0000000000,2599,1.0000000000,2600,1.0000000000,2601,-1.0000000000,2602,1.0000000000,2603,1.0000000000,2604,-1.0000000000,2605,-1.0000000000,2606,1.0000000000,2607,1.0000000000,2628,-1.0000000000 +1205,0,-0.0000000000,2598,1.0000000000,2599,-1.0000000000,2600,-1.0000000000,2601,1.0000000000,2602,-1.0000000000,2603,1.0000000000,2604,-1.0000000000,2605,-1.0000000000,2606,-1.0000000000,2607,1.0000000000,2629,-1.0000000000 +1206,0,-0.0000000000,2598,1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,1.0000000000,2602,1.0000000000,2603,-1.0000000000,2604,-1.0000000000,2605,1.0000000000,2606,-1.0000000000,2607,1.0000000000,2630,-1.0000000000 +1207,0,-0.0000000000,2598,1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,1.0000000000,2603,1.0000000000,2604,1.0000000000,2605,-1.0000000000,2606,-1.0000000000,2607,-1.0000000000,2631,-1.0000000000 +1208,0,-0.0000000000,2598,-1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,-1.0000000000,2603,-1.0000000000,2604,-1.0000000000,2605,1.0000000000,2606,-1.0000000000,2607,1.0000000000,2632,-1.0000000000 +1209,0,-0.0000000000,2598,-1.0000000000,2599,1.0000000000,2600,1.0000000000,2601,-1.0000000000,2602,1.0000000000,2603,1.0000000000,2604,-1.0000000000,2605,1.0000000000,2606,1.0000000000,2607,1.0000000000,2633,-1.0000000000 +1210,0,-0.0000000000,2598,-1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,-1.0000000000,2603,-1.0000000000,2604,-1.0000000000,2605,1.0000000000,2606,1.0000000000,2607,-1.0000000000,2634,-1.0000000000 +1211,0,-0.0000000000,2598,1.0000000000,2599,1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,-1.0000000000,2603,1.0000000000,2604,1.0000000000,2605,1.0000000000,2606,-1.0000000000,2607,1.0000000000,2635,-1.0000000000 +1212,0,-0.0000000000,2598,-1.0000000000,2599,-1.0000000000,2600,-1.0000000000,2601,-1.0000000000,2602,-1.0000000000,2603,1.0000000000,2604,-1.0000000000,2605,-1.0000000000,2606,1.0000000000,2607,-1.0000000000,2636,-1.0000000000 +1213,0,-0.0000000000,2598,-1.0000000000,2599,1.0000000000,2600,1.0000000000,2601,1.0000000000,2602,1.0000000000,2603,-1.0000000000,2604,-1.0000000000,2605,-1.0000000000,2606,-1.0000000000,2607,-1.0000000000,2637,-1.0000000000 +1214,0,0.0786820799,2628,0.2380353510,2638,-1.0000000000 +1215,0,0.2452328354,2629,0.2767313421,2639,-1.0000000000 +1216,0,0.4382847250,2630,0.2744768858,2640,-1.0000000000 +1217,0,0.1370536983,2631,0.2933354974,2641,-1.0000000000 +1218,0,-0.0251469873,2632,0.2791853845,2642,-1.0000000000 +1219,0,-0.2257008702,2633,0.2494552583,2643,-1.0000000000 +1220,0,-0.0018014926,2634,0.3040358126,2644,-1.0000000000 +1221,0,-0.0473403111,2635,0.2666788399,2645,-1.0000000000 +1222,0,-0.3460843861,2636,0.2826097310,2646,-1.0000000000 +1223,0,0.0315086767,2637,0.2692045569,2647,-1.0000000000 +1224,0,-0.0000000000,2648,-1.0000000000,2649,-1.0000000000,2650,-1.0000000000,2651,-1.0000000000,2652,1.0000000000,2653,1.0000000000,2654,1.0000000000,2655,1.0000000000,2656,1.0000000000,2657,-1.0000000000,784,-1.0000000000 +1225,0,-0.0000000000,2648,-1.0000000000,2649,-1.0000000000,2650,-1.0000000000,2651,-1.0000000000,2652,-1.0000000000,2653,-1.0000000000,2654,-1.0000000000,2655,-1.0000000000,2656,-1.0000000000,2657,1.0000000000,785,-1.0000000000 +1226,0,-0.0000000000,2648,1.0000000000,2649,-1.0000000000,2650,-1.0000000000,2651,1.0000000000,2652,-1.0000000000,2653,1.0000000000,2654,1.0000000000,2655,-1.0000000000,2656,1.0000000000,2657,1.0000000000,786,-1.0000000000 +1227,0,-0.0000000000,2648,1.0000000000,2649,-1.0000000000,2650,1.0000000000,2651,-1.0000000000,2652,1.0000000000,2653,1.0000000000,2654,-1.0000000000,2655,-1.0000000000,2656,-1.0000000000,2657,1.0000000000,787,-1.0000000000 +1228,0,-0.0000000000,2648,-1.0000000000,2649,1.0000000000,2650,-1.0000000000,2651,1.0000000000,2652,-1.0000000000,2653,-1.0000000000,2654,-1.0000000000,2655,1.0000000000,2656,1.0000000000,2657,1.0000000000,788,-1.0000000000 +1229,0,-0.0000000000,2648,1.0000000000,2649,1.0000000000,2650,1.0000000000,2651,1.0000000000,2652,1.0000000000,2653,1.0000000000,2654,-1.0000000000,2655,1.0000000000,2656,1.0000000000,2657,-1.0000000000,789,-1.0000000000 +1230,0,-0.0000000000,2648,-1.0000000000,2649,-1.0000000000,2650,1.0000000000,2651,1.0000000000,2652,1.0000000000,2653,-1.0000000000,2654,1.0000000000,2655,1.0000000000,2656,-1.0000000000,2657,1.0000000000,790,-1.0000000000 +1231,0,-0.0000000000,2648,-1.0000000000,2649,1.0000000000,2650,1.0000000000,2651,-1.0000000000,2652,1.0000000000,2653,-1.0000000000,2654,1.0000000000,2655,-1.0000000000,2656,1.0000000000,2657,1.0000000000,791,-1.0000000000 +1232,0,-0.0000000000,2648,1.0000000000,2649,-1.0000000000,2650,-1.0000000000,2651,1.0000000000,2652,-1.0000000000,2653,1.0000000000,2654,-1.0000000000,2655,1.0000000000,2656,-1.0000000000,2657,-1.0000000000,792,-1.0000000000 +1233,0,-0.0000000000,2648,1.0000000000,2649,1.0000000000,2650,-1.0000000000,2651,-1.0000000000,2652,-1.0000000000,2653,1.0000000000,2654,-1.0000000000,2655,-1.0000000000,2656,1.0000000000,2657,-1.0000000000,793,-1.0000000000 +1234,2,0,789,-1.0000000000,788,1.0000000000 +0,sign,1678,1628 +1,sign,1679,1629 +2,sign,1680,1630 +3,sign,1681,1631 +4,sign,1682,1632 +5,sign,1683,1633 +6,sign,1684,1634 +7,sign,1685,1635 +8,sign,1686,1636 +9,sign,1687,1637 +10,sign,1688,1638 +11,sign,1689,1639 +12,sign,1690,1640 +13,sign,1691,1641 +14,sign,1692,1642 +15,sign,1693,1643 +16,sign,1694,1644 +17,sign,1695,1645 +18,sign,1696,1646 +19,sign,1697,1647 +20,sign,1698,1648 +21,sign,1699,1649 +22,sign,1700,1650 +23,sign,1701,1651 +24,sign,1702,1652 +25,sign,1703,1653 +26,sign,1704,1654 +27,sign,1705,1655 +28,sign,1706,1656 +29,sign,1707,1657 +30,sign,1708,1658 +31,sign,1709,1659 +32,sign,1710,1660 +33,sign,1711,1661 +34,sign,1712,1662 +35,sign,1713,1663 +36,sign,1714,1664 +37,sign,1715,1665 +38,sign,1716,1666 +39,sign,1717,1667 +40,sign,1718,1668 +41,sign,1719,1669 +42,sign,1720,1670 +43,sign,1721,1671 +44,sign,1722,1672 +45,sign,1723,1673 +46,sign,1724,1674 +47,sign,1725,1675 +48,sign,1726,1676 +49,sign,1727,1677 +50,sign,1928,1878 +51,sign,1929,1879 +52,sign,1930,1880 +53,sign,1931,1881 +54,sign,1932,1882 +55,sign,1933,1883 +56,sign,1934,1884 +57,sign,1935,1885 +58,sign,1936,1886 +59,sign,1937,1887 +60,sign,1938,1888 +61,sign,1939,1889 +62,sign,1940,1890 +63,sign,1941,1891 +64,sign,1942,1892 +65,sign,1943,1893 +66,sign,1944,1894 +67,sign,1945,1895 +68,sign,1946,1896 +69,sign,1947,1897 +70,sign,1948,1898 +71,sign,1949,1899 +72,sign,1950,1900 +73,sign,1951,1901 +74,sign,1952,1902 +75,sign,1953,1903 +76,sign,1954,1904 +77,sign,1955,1905 +78,sign,1956,1906 +79,sign,1957,1907 +80,sign,1958,1908 +81,sign,1959,1909 +82,sign,1960,1910 +83,sign,1961,1911 +84,sign,1962,1912 +85,sign,1963,1913 +86,sign,1964,1914 +87,sign,1965,1915 +88,sign,1966,1916 +89,sign,1967,1917 +90,sign,1968,1918 +91,sign,1969,1919 +92,sign,1970,1920 +93,sign,1971,1921 +94,sign,1972,1922 +95,sign,1973,1923 +96,sign,1974,1924 +97,sign,1975,1925 +98,sign,1976,1926 +99,sign,1977,1927 +100,sign,2178,2128 +101,sign,2179,2129 +102,sign,2180,2130 +103,sign,2181,2131 +104,sign,2182,2132 +105,sign,2183,2133 +106,sign,2184,2134 +107,sign,2185,2135 +108,sign,2186,2136 +109,sign,2187,2137 +110,sign,2188,2138 +111,sign,2189,2139 +112,sign,2190,2140 +113,sign,2191,2141 +114,sign,2192,2142 +115,sign,2193,2143 +116,sign,2194,2144 +117,sign,2195,2145 +118,sign,2196,2146 +119,sign,2197,2147 +120,sign,2198,2148 +121,sign,2199,2149 +122,sign,2200,2150 +123,sign,2201,2151 +124,sign,2202,2152 +125,sign,2203,2153 +126,sign,2204,2154 +127,sign,2205,2155 +128,sign,2206,2156 +129,sign,2207,2157 +130,sign,2208,2158 +131,sign,2209,2159 +132,sign,2210,2160 +133,sign,2211,2161 +134,sign,2212,2162 +135,sign,2213,2163 +136,sign,2214,2164 +137,sign,2215,2165 +138,sign,2216,2166 +139,sign,2217,2167 +140,sign,2218,2168 +141,sign,2219,2169 +142,sign,2220,2170 +143,sign,2221,2171 +144,sign,2222,2172 +145,sign,2223,2173 +146,sign,2224,2174 +147,sign,2225,2175 +148,sign,2226,2176 +149,sign,2227,2177 +150,sign,2428,2378 +151,sign,2429,2379 +152,sign,2430,2380 +153,sign,2431,2381 +154,sign,2432,2382 +155,sign,2433,2383 +156,sign,2434,2384 +157,sign,2435,2385 +158,sign,2436,2386 +159,sign,2437,2387 +160,sign,2438,2388 +161,sign,2439,2389 +162,sign,2440,2390 +163,sign,2441,2391 +164,sign,2442,2392 +165,sign,2443,2393 +166,sign,2444,2394 +167,sign,2445,2395 +168,sign,2446,2396 +169,sign,2447,2397 +170,sign,2448,2398 +171,sign,2449,2399 +172,sign,2450,2400 +173,sign,2451,2401 +174,sign,2452,2402 +175,sign,2453,2403 +176,sign,2454,2404 +177,sign,2455,2405 +178,sign,2456,2406 +179,sign,2457,2407 +180,sign,2458,2408 +181,sign,2459,2409 +182,sign,2460,2410 +183,sign,2461,2411 +184,sign,2462,2412 +185,sign,2463,2413 +186,sign,2464,2414 +187,sign,2465,2415 +188,sign,2466,2416 +189,sign,2467,2417 +190,sign,2468,2418 +191,sign,2469,2419 +192,sign,2470,2420 +193,sign,2471,2421 +194,sign,2472,2422 +195,sign,2473,2423 +196,sign,2474,2424 +197,sign,2475,2425 +198,sign,2476,2426 +199,sign,2477,2427 +200,sign,2598,2588 +201,sign,2599,2589 +202,sign,2600,2590 +203,sign,2601,2591 +204,sign,2602,2592 +205,sign,2603,2593 +206,sign,2604,2594 +207,sign,2605,2595 +208,sign,2606,2596 +209,sign,2607,2597 +210,sign,2648,2638 +211,sign,2649,2639 +212,sign,2650,2640 +213,sign,2651,2641 +214,sign,2652,2642 +215,sign,2653,2643 +216,sign,2654,2644 +217,sign,2655,2645 +218,sign,2656,2646 +219,sign,2657,2647 From 86e1e0dffc9fe451805f0d7da9811a5e5a59c8c3 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Thu, 7 Dec 2023 14:59:28 +0200 Subject: [PATCH 120/165] Minor --- src/engine/AbsoluteValueConstraint.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/AbsoluteValueConstraint.cpp b/src/engine/AbsoluteValueConstraint.cpp index 1c492718bc..63172d9f32 100644 --- a/src/engine/AbsoluteValueConstraint.cpp +++ b/src/engine/AbsoluteValueConstraint.cpp @@ -145,7 +145,7 @@ void AbsoluteValueConstraint::notifyLowerBound( unsigned variable, double bound if ( bound < 0 ) { double fUpperBound = FloatUtils::max( -bound, getUpperBound( _b ) ) ; - // If phase is not fixed, both bonds are stored and checker should check the max of the two + // If phase is not fixed, both bounds are stored and checker should check the max of the two if ( proofs && !phaseFixed() ) _boundManager->addLemmaExplanationAndTightenBound( _f, fUpperBound, BoundType::UPPER, { variable, variable }, BoundType::UPPER, getType() ); From 15e8557e650df5b15603ca7d57a400ff5d437101 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Thu, 7 Dec 2023 15:36:30 +0200 Subject: [PATCH 121/165] Update CHANGELOG.md --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fc6c2d0e04..7adb674dcd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## Version 1.2.0 + +* Added proof producing versions for Sign, Max, Absolute Value and Disjunction constraints + ## Version 1.1.0 * Added support for onnx networks with `tanh` nodes to command-line interface. From a42630240ba6da918e4d1bdfc2d1f91def52d192 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Thu, 7 Dec 2023 16:13:31 +0200 Subject: [PATCH 122/165] Update CHANGELOG.md --- CHANGELOG.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7adb674dcd..8f07883540 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,12 @@ # Changelog -## Version 1.2.0 +## Future Release: Version 1.1.0 -* Added proof producing versions for Sign, Max, Absolute Value and Disjunction constraints +* Added support for onnx networks with `tanh` nodes to command-line interface. -## Version 1.1.0 +## Version 1.0.1 -* Added support for onnx networks with `tanh` nodes to command-line interface. +* Added proof producing versions of Sign, Max, Absolute Value and Disjunction constraints ## Version 1.0.0 From 64df6e259689405d82363a7d4b78f97ff56b0794 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Fri, 8 Dec 2023 16:11:38 +0200 Subject: [PATCH 123/165] Attempt to solve bug --- CHANGELOG.md | 7 +++---- src/engine/Engine.cpp | 7 +++++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f07883540..46d68e719c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,13 +1,12 @@ # Changelog -## Future Release: Version 1.1.0 +## Next Release -* Added support for onnx networks with `tanh` nodes to command-line interface. +* Added support for onnx networks with tanh nodes to command-line interface. -## Version 1.0.1 +## Version 1.1.0 * Added proof producing versions of Sign, Max, Absolute Value and Disjunction constraints ## Version 1.0.0 - * Initial versioned release \ No newline at end of file diff --git a/src/engine/Engine.cpp b/src/engine/Engine.cpp index 03286d19e2..2527381054 100644 --- a/src/engine/Engine.cpp +++ b/src/engine/Engine.cpp @@ -3321,8 +3321,15 @@ bool Engine::certifyInfeasibility( unsigned var ) const if ( contradiction.empty() ) return FloatUtils::isNegative( _groundBoundManager.getUpperBound( var ) - _groundBoundManager.getLowerBound( var ) ); + SparseUnsortedList sparseContradiction = SparseUnsortedList(); + contradiction.empty() ? sparseContradiction.initializeToEmpty() : sparseContradiction.initialize( contradiction.data(), contradiction.size() ); + + // In case contradiction is a vector of zeros + if ( sparseContradiction.empty() ) + return FloatUtils::isNegative( _groundBoundManager.getUpperBound( var ) - _groundBoundManager.getLowerBound( var ) ); + double derivedBound = UNSATCertificateUtils::computeCombinationUpperBound( sparseContradiction, _tableau->getSparseA(), _groundBoundManager.getUpperBounds(), _groundBoundManager.getLowerBounds(), _tableau->getN() ); return FloatUtils::isNegative( derivedBound ); From fd5f6d64572ef0a0375599b6020ff4001115de1b Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Fri, 8 Dec 2023 16:17:48 +0200 Subject: [PATCH 124/165] Update CHANGELOG.md --- CHANGELOG.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 46d68e719c..23230b83e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,7 @@ # Changelog ## Next Release - * Added support for onnx networks with tanh nodes to command-line interface. - -## Version 1.1.0 - * Added proof producing versions of Sign, Max, Absolute Value and Disjunction constraints ## Version 1.0.0 From 1b2b5ed40e146f59f8e6e0b1485d38e955d61000 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Mon, 11 Dec 2023 11:45:01 +0200 Subject: [PATCH 125/165] Minor --- src/engine/Engine.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/engine/Engine.cpp b/src/engine/Engine.cpp index 2527381054..16202a99dc 100644 --- a/src/engine/Engine.cpp +++ b/src/engine/Engine.cpp @@ -3346,6 +3346,10 @@ double Engine::explainBound( unsigned var, bool isUpper ) const SparseUnsortedList explanation = SparseUnsortedList( explanationVec.size() ); explanationVec.empty() ? explanation.initializeToEmpty() : explanation.initialize( explanationVec.data(), explanationVec.size() ); + + if ( explanation.empty() ) + return isUpper ? _groundBoundManager.getUpperBound( var ) : _groundBoundManager.getLowerBound( var ); + return UNSATCertificateUtils::computeBound( var, isUpper, explanation, _tableau->getSparseA(), _groundBoundManager.getUpperBounds(), _groundBoundManager.getLowerBounds(), _tableau->getN() ); From 139501549aeb8890454c505bfde7de03f2804bfc Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 12 Dec 2023 18:08:38 +0200 Subject: [PATCH 126/165] Sparse explanations in BoundExplainer --- src/engine/BoundManager.cpp | 37 ++------ src/engine/BoundManager.h | 6 +- src/engine/Engine.cpp | 37 ++++---- src/engine/EngineState.h | 15 ++- src/engine/TableauState.cpp | 11 +-- src/engine/TableauState.h | 6 +- src/engine/tests/Test_BoundManager.h | 12 ++- src/proofs/BoundExplainer.cpp | 99 +++++++++----------- src/proofs/BoundExplainer.h | 10 +- src/proofs/CMakeLists.txt | 2 +- src/proofs/PlcLemma.cpp | 42 +++------ src/proofs/PlcLemma.h | 2 +- src/proofs/tests/Test_BoundExplainer.h | 19 ++-- src/proofs/tests/Test_UnsatCertificateNode.h | 2 +- 14 files changed, 124 insertions(+), 176 deletions(-) diff --git a/src/engine/BoundManager.cpp b/src/engine/BoundManager.cpp index 9ca61cdde6..bc84185078 100644 --- a/src/engine/BoundManager.cpp +++ b/src/engine/BoundManager.cpp @@ -305,13 +305,10 @@ void BoundManager::registerRowBoundTightener( IRowBoundTightener *ptrRowBoundTig _rowBoundTightener = ptrRowBoundTightener; } -void BoundManager::getExplanation( unsigned variable, bool isUpper, Vector &explanation ) const +const SparseUnsortedList &BoundManager::getExplanation( unsigned variable, bool isUpper ) const { ASSERT( _engine->shouldProduceProofs() && variable < _size ); - auto temp = _boundExplainer->getExplanation( variable, isUpper ); - explanation = Vector( temp.size() ); - for ( unsigned i = 0; i < temp.size(); ++i ) - explanation[i] = *temp[i]; + return _boundExplainer->getExplanation( variable, isUpper ); } bool BoundManager::tightenLowerBound( unsigned variable, double value, const TableauRow &row ) @@ -380,9 +377,8 @@ void BoundManager::resetExplanation( const unsigned var, const bool isUpper ) co _boundExplainer->resetExplanation( var, isUpper ); } -void BoundManager::setExplanation( const Vector &explanation, unsigned var, bool isUpper ) const +void BoundManager::setExplanation( const SparseUnsortedList &explanation, unsigned var, bool isUpper ) const { - ASSERT( explanation.size() == _boundExplainer->getNumberOfRows() || explanation.empty() ); _boundExplainer->setExplanation( explanation, var, isUpper ); } @@ -416,8 +412,7 @@ bool BoundManager::addLemmaExplanationAndTightenBound( unsigned var, double valu ASSERT( var < _tableau->getN() ); // Register new ground bound, update certificate, and reset explanation - Vector explanation( 0 ); - Vector> allExplanations( 0 ); + Vector allExplanations( 0 ); bool tightened = affectedVarBound == BoundType::UPPER ? tightenUpperBound( var, value ) : tightenLowerBound( var, value ); @@ -426,16 +421,12 @@ bool BoundManager::addLemmaExplanationAndTightenBound( unsigned var, double valu if ( constraintType == RELU || constraintType == SIGN ) { ASSERT( causingVars.size() == 1 ); - getExplanation( causingVars.front(), causingVarBound, explanation ); - allExplanations.append( explanation ); + allExplanations.append( getExplanation( causingVars.front(), causingVarBound ) ); } else if ( constraintType == ABSOLUTE_VALUE ) { if ( causingVars.size() == 1 ) - { - getExplanation( causingVars.front(), causingVarBound, explanation ); - allExplanations.append( explanation ); - } + allExplanations.append( getExplanation( causingVars.front(), causingVarBound ) ); else { // Used for two cases: @@ -444,24 +435,14 @@ bool BoundManager::addLemmaExplanationAndTightenBound( unsigned var, double valu // 2. Lemmas of the type lowerBound(f) > -lowerBound(b) or upperBound(b). // Again, two explanations are involved in the proof. // Add zero vectors to maintain consistency of explanations size - getExplanation( causingVars.front(), causingVarBound == BoundType::UPPER, explanation ); - allExplanations.append( explanation.empty() ? Vector( _tableau->getM(), 0 ) : explanation ); - explanation.clear(); + allExplanations.append( getExplanation( causingVars.front(), causingVarBound == BoundType::UPPER ) ); - getExplanation( causingVars.back(), BoundType::LOWER, explanation ); - allExplanations.append( explanation.empty() ? Vector( _tableau->getM(), 0 ) : explanation ); + allExplanations.append( getExplanation( causingVars.back(), BoundType::LOWER ) ); } } else if ( constraintType == MAX ) - { for ( const auto &element : causingVars ) - { - // Add zero vectors to maintain consistency of explanations size - getExplanation( element, BoundType::UPPER, explanation ); - allExplanations.append( explanation.empty() ? Vector( _tableau->getM(), 0 ) : explanation ); - explanation.clear(); - } - } + allExplanations.append( getExplanation( element, BoundType::UPPER ) ); else throw MarabouError( MarabouError::FEATURE_NOT_YET_SUPPORTED ); diff --git a/src/engine/BoundManager.h b/src/engine/BoundManager.h index 1280166592..ceff107f89 100644 --- a/src/engine/BoundManager.h +++ b/src/engine/BoundManager.h @@ -175,14 +175,14 @@ class BoundManager : public IBoundManager void resetExplanation( unsigned var, bool isUpper ) const; /* - Insert the bounds explanation of a variable in the tableau to the argument vector + Return the bounds explanation of a variable in the tableau to the argument vector */ - void getExplanation( unsigned variable, bool isUpper, Vector &explanation ) const; + const SparseUnsortedList &getExplanation( unsigned variable, bool isUpper ) const; /* Artificially update an explanation, without using the recursive rule */ - void setExplanation( const Vector &explanation, unsigned var, bool isUpper ) const; + void setExplanation( const SparseUnsortedList &explanation, unsigned var, bool isUpper ) const; /* Register Engine pointer for callbacks diff --git a/src/engine/Engine.cpp b/src/engine/Engine.cpp index 16202a99dc..eb7f9035fe 100644 --- a/src/engine/Engine.cpp +++ b/src/engine/Engine.cpp @@ -3339,13 +3339,10 @@ double Engine::explainBound( unsigned var, bool isUpper ) const { ASSERT( _produceUNSATProofs ); - Vector explanationVec( 0 ); + SparseUnsortedList explanation( 0 ); - if ( !_boundManager.isExplanationTrivial( var, isUpper ) ) - _boundManager.getExplanation( var, isUpper, explanationVec ); - - SparseUnsortedList explanation = SparseUnsortedList( explanationVec.size() ); - explanationVec.empty() ? explanation.initializeToEmpty() : explanation.initialize( explanationVec.data(), explanationVec.size() ); + if ( !_boundManager.isExplanationTrivial( var, isUpper ) ) + explanation = _boundManager.getExplanation( var, isUpper); if ( explanation.empty() ) return isUpper ? _groundBoundManager.getUpperBound( var ) : _groundBoundManager.getLowerBound( var ); @@ -3483,8 +3480,8 @@ bool Engine::explainAndCheckContradiction( unsigned var, bool isUpper, const Tab { ASSERT( _produceUNSATProofs ); - Vector backup( 0 ); - _boundManager.getExplanation( var, isUpper, backup ); + SparseUnsortedList backup( 0 ); + backup = _boundManager.getExplanation( var, isUpper ); _boundManager.updateBoundExplanation( *row, isUpper, var ); @@ -3502,8 +3499,8 @@ bool Engine::explainAndCheckContradiction( unsigned var, bool isUpper, const Spa { ASSERT( _produceUNSATProofs ); - Vector backup( 0 ); - _boundManager.getExplanation( var, isUpper, backup ); + SparseUnsortedList backup( 0 ); + backup = _boundManager.getExplanation( var, isUpper ); _boundManager.updateBoundExplanationSparse( *row, isUpper, var ); @@ -3607,23 +3604,27 @@ const Vector Engine::computeContradiction( unsigned infeasibleVar ) cons ASSERT( _produceUNSATProofs ); unsigned m = _tableau->getM(); - Vector upperBoundExplanation( 0 ); - Vector lowerBoundExplanation( 0 ); + SparseUnsortedList upperBoundExplanation( 0 ); + SparseUnsortedList lowerBoundExplanation( 0 ); if ( !_boundManager.isExplanationTrivial( infeasibleVar, BoundType::UPPER ) ) - _boundManager.getExplanation( infeasibleVar, BoundType::UPPER, upperBoundExplanation ); + upperBoundExplanation = _boundManager.getExplanation( infeasibleVar, BoundType::UPPER ); - if( !_boundManager.isExplanationTrivial( infeasibleVar, BoundType::LOWER ) ) - _boundManager.getExplanation( infeasibleVar, BoundType::LOWER, lowerBoundExplanation ); + if ( !_boundManager.isExplanationTrivial( infeasibleVar, BoundType::LOWER ) ) + lowerBoundExplanation= _boundManager.getExplanation( infeasibleVar, BoundType::LOWER ); if ( upperBoundExplanation.empty() && lowerBoundExplanation.empty() ) return Vector( 0 ); - Vector contradiction = upperBoundExplanation.empty() ? Vector( m, 0 ) : Vector( upperBoundExplanation ); + Vector contradiction = Vector( m, 0 ); + + if ( !upperBoundExplanation.empty() ) + for ( const auto &entry : upperBoundExplanation ) + contradiction[entry._index] = entry._value; if ( !lowerBoundExplanation.empty() ) - for ( unsigned i = 0; i < m; ++i ) - contradiction[i] -= lowerBoundExplanation[i]; + for ( const auto &entry : lowerBoundExplanation ) + contradiction[entry._index] -= entry._value; return contradiction; } diff --git a/src/engine/EngineState.h b/src/engine/EngineState.h index c9446a6dac..b8229c8136 100644 --- a/src/engine/EngineState.h +++ b/src/engine/EngineState.h @@ -10,7 +10,6 @@ ** directory for licensing information.\endverbatim ** ** [[ Add lengthier description here ]] - **/ #ifndef __EngineState_h__ @@ -25,8 +24,8 @@ class EngineState { public: - EngineState(); - ~EngineState(); + EngineState(); + ~EngineState(); /* The state of the tableau @@ -40,11 +39,11 @@ class EngineState Map _plConstraintToState; unsigned _numPlConstraintsDisabledByValidSplits; - /* - A unique ID allocated to every state that is stored, for - debugging purposes. These are assigned by the SMT core. - */ - unsigned _stateId; + /* + A unique ID allocated to every state that is stored, for + debugging purposes. These are assigned by the SMT core. + */ + unsigned _stateId; }; #endif // __EngineState_h__ diff --git a/src/engine/TableauState.cpp b/src/engine/TableauState.cpp index 4d9dab95d4..b2f08ae53c 100644 --- a/src/engine/TableauState.cpp +++ b/src/engine/TableauState.cpp @@ -205,19 +205,10 @@ void TableauState::setDimensions( unsigned m, unsigned n, const IBasisFactorizat _basisFactorization = BasisFactorizationFactory::createBasisFactorization( m, oracle ); if ( !_basisFactorization ) throw MarabouError( MarabouError::ALLOCATION_FAILED, "TableauState::basisFactorization" ); -} - -void TableauState::initializeBounds( unsigned n ) -{ - _lowerBounds = new double[n]; - if ( !_lowerBounds ) - throw MarabouError( MarabouError::ALLOCATION_FAILED, "TableauState::lowerBounds" ); - _upperBounds = new double[n]; - if ( !_upperBounds ) - throw MarabouError( MarabouError::ALLOCATION_FAILED, "TableauState::upperBounds" ); } + // // Local Variables: // compile-command: "make -C ../.. " diff --git a/src/engine/TableauState.h b/src/engine/TableauState.h index d54d3e4fdf..cb9a92f99c 100644 --- a/src/engine/TableauState.h +++ b/src/engine/TableauState.h @@ -43,11 +43,6 @@ class TableauState void setDimensions( unsigned m, unsigned n, const IBasisFactorization::BasisColumnOracle &oracle ); - /* - Just create the bounds array. - */ - void initializeBounds( unsigned n ); - /* The dimensions of matrix A */ @@ -124,6 +119,7 @@ class TableauState extracting a solution for x, we should read the value of y. */ Map _mergedVariables; + }; #endif // __TableauState_h__ diff --git a/src/engine/tests/Test_BoundManager.h b/src/engine/tests/Test_BoundManager.h index 190cf1f8fd..87e0a4aee8 100644 --- a/src/engine/tests/Test_BoundManager.h +++ b/src/engine/tests/Test_BoundManager.h @@ -280,15 +280,19 @@ class BoundManagerTestSuite : public CxxTest::TestSuite } // Test explanation getting and setting - Vector expl ( numberOfRows, 1 ); - Vector explained ( 0 ); + Vector explVec ( numberOfRows, 1 ); + SparseUnsortedList expl = SparseUnsortedList( explVec.data(), explVec.size() ); + SparseUnsortedList explained = SparseUnsortedList(); boundManager.setExplanation( expl, 0, true ); TS_ASSERT( !boundManager.isExplanationTrivial( 0, true ) ); boundManager.setExplanation( expl, 1, false ); - boundManager.getExplanation( 1, false, explained ); - TS_ASSERT( explained == expl ); + explained = boundManager.getExplanation( 1, false ); + TS_ASSERT( explained.getSize() == expl.getSize() ); + + for ( const auto &entry : expl ) + TS_ASSERT( explained.get( entry._index) == entry._value ); // Test explanation resetting boundManager.resetExplanation( 0, true ); diff --git a/src/proofs/BoundExplainer.cpp b/src/proofs/BoundExplainer.cpp index e00739b658..5954b4f5cf 100644 --- a/src/proofs/BoundExplainer.cpp +++ b/src/proofs/BoundExplainer.cpp @@ -20,33 +20,27 @@ BoundExplainer::BoundExplainer( unsigned numberOfVariables, unsigned numberOfRow : _context( ctx ), _numberOfVariables( numberOfVariables ) , _numberOfRows( numberOfRows ) - , _upperBoundExplanations( _numberOfVariables, Vector *>( 0 ) ) - , _lowerBoundExplanations( _numberOfVariables, Vector *>( 0 ) ) + , _upperBoundExplanations( 0 ) + , _lowerBoundExplanations( 0 ) , _trivialUpperBoundExplanation( 0 ) , _trivialLowerBoundExplanation( 0 ) { - for ( unsigned i = 0; i < _numberOfVariables; ++i ) - { - for ( unsigned j = 0; j < _numberOfRows; ++j ) - { - _upperBoundExplanations[i].append( new ( true ) CDO( &ctx, 0 ) ); - _lowerBoundExplanations[i].append( new ( true ) CDO( &ctx, 0 ) ); - } - - _trivialUpperBoundExplanation.append( new ( true ) CDO( &ctx, true ) ) ; - _trivialLowerBoundExplanation.append( new ( true ) CDO( &ctx, true ) ); - } + for ( unsigned i = 0; i < _numberOfVariables; ++i ) + { + _upperBoundExplanations.append( new ( true ) CDO( &ctx ) ); + _lowerBoundExplanations.append( new ( true ) CDO( &ctx ) ); + + _trivialUpperBoundExplanation.append( new ( true ) CDO( &ctx, true ) ) ; + _trivialLowerBoundExplanation.append( new ( true ) CDO( &ctx, true ) ); + } } BoundExplainer::~BoundExplainer() { for ( unsigned i = 0; i < _numberOfVariables; ++i ) { - for ( unsigned j = 0; j < _numberOfRows; ++j ) - { - _upperBoundExplanations[i][j]->deleteSelf(); - _lowerBoundExplanations[i][j]->deleteSelf(); - } + _upperBoundExplanations[i]->deleteSelf(); + _lowerBoundExplanations[i]->deleteSelf(); _trivialUpperBoundExplanation[i]->deleteSelf(); _trivialLowerBoundExplanation[i]->deleteSelf(); @@ -63,11 +57,9 @@ BoundExplainer &BoundExplainer::operator=( const BoundExplainer &other ) for ( unsigned i = 0; i < _numberOfVariables; ++i ) { - for ( unsigned j = 0; j < _numberOfRows; ++j ) - { - _upperBoundExplanations[i][j]->set( other._upperBoundExplanations[i][j]->get() ); - _lowerBoundExplanations[i][j]->set( other._lowerBoundExplanations[i][j]->get() ); - } + _upperBoundExplanations[i]->set( *other._upperBoundExplanations[i] ); + _lowerBoundExplanations[i]->set( *other._lowerBoundExplanations[i]); + _trivialUpperBoundExplanation[i]->set( other._trivialUpperBoundExplanation[i]->get() ); _trivialLowerBoundExplanation[i]->set( other._trivialLowerBoundExplanation[i]->get() ); } @@ -85,10 +77,10 @@ unsigned BoundExplainer::getNumberOfVariables() const return _numberOfVariables; } -const Vector *> &BoundExplainer::getExplanation( unsigned var, bool isUpper ) +const SparseUnsortedList &BoundExplainer::getExplanation( unsigned var, bool isUpper ) { ASSERT ( var < _numberOfVariables ); - return isUpper ? _upperBoundExplanations[var] : _lowerBoundExplanations[var]; + return isUpper ? _upperBoundExplanations[var]->get() : _lowerBoundExplanations[var]->get(); } void BoundExplainer::updateBoundExplanation( const TableauRow &row, bool isUpper ) @@ -128,7 +120,7 @@ void BoundExplainer::updateBoundExplanation( const TableauRow &row, bool isUpper ASSERT( !FloatUtils::isZero( ci ) ); Vector rowCoefficients = Vector( _numberOfRows, 0 ); Vector sum = Vector( _numberOfRows, 0 ); - Vector *> tempBound; + SparseUnsortedList tempBound; for ( unsigned i = 0; i < row._size; ++i ) { @@ -150,7 +142,7 @@ void BoundExplainer::updateBoundExplanation( const TableauRow &row, bool isUpper if ( ( tempUpper && *_trivialUpperBoundExplanation[curVar] ) || ( !tempUpper && *_trivialLowerBoundExplanation[curVar] ) ) continue; - tempBound = tempUpper ? _upperBoundExplanations[curVar] : _lowerBoundExplanations[curVar]; + tempBound = tempUpper ? *_upperBoundExplanations[curVar] : *_lowerBoundExplanations[curVar]; addVecTimesScalar( sum, tempBound, realCoefficient ); } @@ -163,7 +155,7 @@ void BoundExplainer::updateBoundExplanation( const TableauRow &row, bool isUpper tempUpper = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ); if ( !( tempUpper && *_trivialUpperBoundExplanation[row._lhs] ) && !( !tempUpper && *_trivialLowerBoundExplanation[row._lhs] ) ) { - tempBound = tempUpper ? _upperBoundExplanations[row._lhs] : _lowerBoundExplanations[row._lhs]; + tempBound = tempUpper ? *_upperBoundExplanations[row._lhs] : *_lowerBoundExplanations[row._lhs]; addVecTimesScalar( sum, tempBound, realCoefficient ); } } @@ -199,7 +191,7 @@ void BoundExplainer::updateBoundExplanationSparse( const SparseUnsortedList &row ASSERT( !FloatUtils::isZero( ci ) ); Vector rowCoefficients = Vector( _numberOfRows, 0 ); Vector sum = Vector( _numberOfRows, 0 ); - Vector *> tempBound; + SparseUnsortedList tempBound; for ( const auto &entry : row ) { @@ -219,7 +211,7 @@ void BoundExplainer::updateBoundExplanationSparse( const SparseUnsortedList &row if ( ( tempUpper && *_trivialUpperBoundExplanation[entry._index] ) || ( !tempUpper && *_trivialLowerBoundExplanation[entry._index] ) ) continue; - tempBound = tempUpper ? _upperBoundExplanations[entry._index] : _lowerBoundExplanations[entry._index]; + tempBound = tempUpper ? *_upperBoundExplanations[entry._index] : *_lowerBoundExplanations[entry._index]; addVecTimesScalar( sum, tempBound, realCoefficient ); } @@ -230,15 +222,15 @@ void BoundExplainer::updateBoundExplanationSparse( const SparseUnsortedList &row setExplanation( sum, var, isUpper ); } -void BoundExplainer::addVecTimesScalar( Vector &sum, const Vector *> &input, double scalar ) const +void BoundExplainer::addVecTimesScalar( Vector &sum, const SparseUnsortedList &input, double scalar ) const { if ( input.empty() || FloatUtils::isZero( scalar ) ) return; - ASSERT( sum.size() == _numberOfRows && input.size() == _numberOfRows ); + ASSERT( sum.size() == _numberOfRows ); - for ( unsigned i = 0; i < _numberOfRows; ++i ) - sum[i] += scalar * ( *input[i] ); + for ( const auto &entry : input ) + sum[entry._index] += scalar * ( entry._value ); } void BoundExplainer::addVecTimesScalar( Vector &sum, const Vector &input, double scalar ) const @@ -287,38 +279,22 @@ void BoundExplainer::addVariable() ++_numberOfRows; ++_numberOfVariables; - // Add info to all current explanations - for ( unsigned i = 0; i < _numberOfVariables - 1; ++i ) - { - _upperBoundExplanations[i].append( new ( true ) CDO( &_context, 0 ) ); - _lowerBoundExplanations[i].append( new ( true ) CDO( &_context, 0 ) ); - } - // Add a new explanation for the new variable _trivialUpperBoundExplanation.append( new ( true ) CDO( &_context, true ) ); _trivialLowerBoundExplanation.append( new ( true ) CDO( &_context, true ) ); - _upperBoundExplanations.append( Vector *>( 0 ) ); - _lowerBoundExplanations.append( Vector *>( 0 ) ); + _upperBoundExplanations.append( new ( true ) CDO( &_context ) ); + _lowerBoundExplanations.append( new ( true ) CDO( &_context ) ); - for ( unsigned i = 0; i < _numberOfRows; ++i ) - { - _upperBoundExplanations[_numberOfVariables - 1].append( new ( true ) CDO( &_context, 0 ) ); - _lowerBoundExplanations[_numberOfVariables - 1].append( new ( true ) CDO( &_context, 0 ) ); - } ASSERT( _upperBoundExplanations.size() == _numberOfVariables ); - ASSERT( _upperBoundExplanations[0].size() == _numberOfRows ); ASSERT( _trivialUpperBoundExplanation.size() == _numberOfVariables ); } void BoundExplainer::resetExplanation( unsigned var, bool isUpper ) { ASSERT( var < _numberOfVariables ); - Vector *> temp = isUpper ? _upperBoundExplanations[var] : _lowerBoundExplanations[var]; - - for ( unsigned i = 0; i < _numberOfRows; ++i ) - temp[i]->set( 0 ); + isUpper ? _upperBoundExplanations[var]->set( SparseUnsortedList() ) : _lowerBoundExplanations[var]->set( SparseUnsortedList() ); isUpper ? _trivialUpperBoundExplanation[var]->set( true ) : _trivialLowerBoundExplanation[var]->set( true ); } @@ -326,9 +302,20 @@ void BoundExplainer::resetExplanation( unsigned var, bool isUpper ) void BoundExplainer::setExplanation( const Vector &explanation, unsigned var, bool isUpper ) { ASSERT( var < _numberOfVariables && ( explanation.empty() || explanation.size() == _numberOfRows ) ); - Vector *> temp = isUpper ? _upperBoundExplanations[var] : _lowerBoundExplanations[var]; - for ( unsigned i = 0; i < _numberOfRows; ++i ) - temp[i]->set( explanation[i] ); + CDO *temp = isUpper ? _upperBoundExplanations[var] : _lowerBoundExplanations[var]; + + if ( explanation.empty() ) + temp->set( SparseUnsortedList() ); + else + temp->set( SparseUnsortedList( explanation.data(), explanation.size() ) ); + + isUpper ? _trivialUpperBoundExplanation[var]->set( false ) : _trivialLowerBoundExplanation[var]->set( false ); +} + +void BoundExplainer::setExplanation( const SparseUnsortedList &explanation, unsigned var, bool isUpper ) +{ + ASSERT( var < _numberOfVariables ); + isUpper ? _upperBoundExplanations[var]->set( explanation ) : _lowerBoundExplanations[var]->set( explanation ); isUpper ? _trivialUpperBoundExplanation[var]->set( false ) : _trivialLowerBoundExplanation[var]->set( false ); } diff --git a/src/proofs/BoundExplainer.h b/src/proofs/BoundExplainer.h index fc1a83fcdc..a60bb4eab9 100644 --- a/src/proofs/BoundExplainer.h +++ b/src/proofs/BoundExplainer.h @@ -44,7 +44,7 @@ class BoundExplainer /* Returns a bound explanation */ - const Vector *> &getExplanation( unsigned var, bool isUpper ); + const SparseUnsortedList &getExplanation( unsigned var, bool isUpper ); /* Given a row, updates the values of the bound explanations of its lhs according to the row @@ -76,6 +76,8 @@ class BoundExplainer */ void setExplanation( const Vector &explanation, unsigned var, bool isUpper ); + void setExplanation( const SparseUnsortedList &explanation, unsigned var, bool isUpper ); + /* * Returns true iff an explanation is the zero vector */ @@ -87,8 +89,8 @@ class BoundExplainer unsigned _numberOfVariables; unsigned _numberOfRows; - Vector *>> _upperBoundExplanations; - Vector *>> _lowerBoundExplanations; + Vector *> _upperBoundExplanations; + Vector *> _lowerBoundExplanations; Vector *> _trivialUpperBoundExplanation; Vector *> _trivialLowerBoundExplanation; @@ -96,7 +98,7 @@ class BoundExplainer /* Adds a multiplication of an array by scalar to another array */ - void addVecTimesScalar( Vector &sum, const Vector *> &input, double scalar ) const; + void addVecTimesScalar( Vector &sum, const SparseUnsortedList &input, double scalar ) const; void addVecTimesScalar( Vector &sum, const Vector &input, double scalar ) const; diff --git a/src/proofs/CMakeLists.txt b/src/proofs/CMakeLists.txt index ad7aca42d1..5ff7fc58e1 100644 --- a/src/proofs/CMakeLists.txt +++ b/src/proofs/CMakeLists.txt @@ -22,4 +22,4 @@ proofs_add_unit_test(UnsatCertificateUtils) if (${BUILD_PYTHON}) target_include_directories(${MARABOU_PY} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") -endif() +endif() \ No newline at end of file diff --git a/src/proofs/PlcLemma.cpp b/src/proofs/PlcLemma.cpp index 2ec300fbdd..66b6102df4 100644 --- a/src/proofs/PlcLemma.cpp +++ b/src/proofs/PlcLemma.cpp @@ -19,7 +19,7 @@ PLCLemma::PLCLemma( const List &causingVars, double bound, BoundType causingVarBound, BoundType affectedVarBound, - const Vector> &explanations, + const Vector &explanations, PiecewiseLinearFunctionType constraintType ) : _causingVars( causingVars ) , _affectedVar( affectedVar ) @@ -34,39 +34,23 @@ PLCLemma::PLCLemma( const List &causingVars, { ASSERT( causingVars.size() == explanations.size() ); - bool allEmpty = true; - unsigned proofSize = 0; + unsigned numOfExplanations = explanations.size(); - for ( const auto &expl : explanations ) - if ( !expl.empty() ) - { - proofSize = expl.size(); - allEmpty = false; - break; - } + ASSERT( numOfExplanations == causingVars.size() ); - if ( allEmpty ) - _explanations = List(); - else - { - unsigned numOfExplanations = explanations.size(); - - ASSERT( numOfExplanations == causingVars.size() && proofSize ); - - if ( _constraintType == RELU || _constraintType == SIGN ) - ASSERT( numOfExplanations == 1 ); + if ( _constraintType == RELU || _constraintType == SIGN ) + ASSERT( numOfExplanations == 1 ); - if ( _constraintType == ABSOLUTE_VALUE ) - ASSERT( numOfExplanations == 2 || numOfExplanations == 1 ); + if ( _constraintType == ABSOLUTE_VALUE ) + ASSERT( numOfExplanations == 2 || numOfExplanations == 1 ); - _explanations = List(); + _explanations = List(); - for ( unsigned i = 0; i < numOfExplanations; ++i ) - { - SparseUnsortedList expl = SparseUnsortedList(); - expl.initialize( explanations[i].data(), proofSize ); - _explanations.append( expl ); - } + for ( unsigned i = 0; i < numOfExplanations; ++i ) + { + SparseUnsortedList expl = SparseUnsortedList(); + expl = explanations[i]; + _explanations.append( expl ); } } } diff --git a/src/proofs/PlcLemma.h b/src/proofs/PlcLemma.h index 1e2567eeb5..6b41608c78 100644 --- a/src/proofs/PlcLemma.h +++ b/src/proofs/PlcLemma.h @@ -31,7 +31,7 @@ class PLCLemma double bound, BoundType causingVarBound, BoundType affectedVarBound, - const Vector> &explanation, + const Vector &explanation, PiecewiseLinearFunctionType constraintType ); ~PLCLemma(); diff --git a/src/proofs/tests/Test_BoundExplainer.h b/src/proofs/tests/Test_BoundExplainer.h index 48c611301b..8f726e8a1a 100644 --- a/src/proofs/tests/Test_BoundExplainer.h +++ b/src/proofs/tests/Test_BoundExplainer.h @@ -68,8 +68,10 @@ class BoundsExplainerTestSuite : public CxxTest::TestSuite TS_ASSERT_THROWS_NOTHING( be.setExplanation( Vector( numberOfVariables, value ), 0, true ) ); auto explanation = be.getExplanation( 0, true ); - for ( auto num : explanation ) - TS_ASSERT_EQUALS( num->get(), value ); + for ( const auto &entry : explanation ) + TS_ASSERT_EQUALS( entry._value, value ); + + TS_ASSERT_EQUALS( explanation.getSize(), numberOfVariables ); } /* @@ -90,8 +92,9 @@ class BoundsExplainerTestSuite : public CxxTest::TestSuite for ( unsigned i = 0; i < numberOfVariables; ++ i ) { - TS_ASSERT( be.isExplanationTrivial( i, true ) || ( be.getExplanation( i, true ).last()->get() == 0 && be.getExplanation( i, true ).size() == numberOfVariables + 1 ) ); - TS_ASSERT( be.isExplanationTrivial( i, false ) || ( be.getExplanation( i, false ).last()->get() == 0 && be.getExplanation( i, false ).size() == numberOfVariables + 1 ) ); + // the sizes of explanations should not change + TS_ASSERT( be.isExplanationTrivial( i, true ) || be.getExplanation( i, true ).getSize() == numberOfVariables ); + TS_ASSERT( be.isExplanationTrivial( i, false ) || be.getExplanation( i, false ).getSize() == numberOfVariables ); } TS_ASSERT( be.isExplanationTrivial( numberOfVariables, true ) ); @@ -149,20 +152,20 @@ class BoundsExplainerTestSuite : public CxxTest::TestSuite Vector res1 { 2, -3, 0 }; for ( unsigned i = 0; i < 3; ++i ) - TS_ASSERT_EQUALS( be.getExplanation( 2, true )[i]->get(), res1[i] ); + TS_ASSERT_EQUALS( be.getExplanation( 2, true ).get( i ), res1[i] ); be.updateBoundExplanation( updateTableauRow, false, 3 ); // Result is 2 * { 0, 0, 2.5 } + { -1, 1, 0 } Vector res2 { -1, 2, 5 }; for ( unsigned i = 0; i < 3; ++i ) - TS_ASSERT_EQUALS( be.getExplanation( 3, false )[i]->get(), res2[i] ); + TS_ASSERT_EQUALS( be.getExplanation( 3, false ).get( i ), res2[i] ); be.updateBoundExplanation( updateTableauRow, false, 1 ); // Result is -0.5 * { 1, 0, 0 } + 0.5 * { -1, 2, 5 } - 0.5 * { 1, -1, 0 } Vector res3 { -1.5, 1.5, 2.5 }; for ( unsigned i = 0; i < 3; ++i ) - TS_ASSERT_EQUALS( be.getExplanation( 1, false )[i]->get(), res3[i] ); + TS_ASSERT_EQUALS( be.getExplanation( 1, false ).get( i ), res3[i] ); // row3:= x1 = x5 // Row coefficients are { 0, 0, 2.5 } @@ -174,6 +177,6 @@ class BoundsExplainerTestSuite : public CxxTest::TestSuite // Result is ( 1 / 2.5 ) * ( -2.5 ) * { -1.5, 1.5, 2.5 } + ( 1 / 2.5 ) * { 0, 0, 2.5 } Vector res4 { 1.5, -1.5, -1.5 }; for ( unsigned i = 0; i < 3; ++i) - TS_ASSERT_EQUALS( be.getExplanation( 5, true )[i]->get(), res4[i] ); + TS_ASSERT_EQUALS( be.getExplanation( 5, true ).get( i ), res4[i] ); } }; diff --git a/src/proofs/tests/Test_UnsatCertificateNode.h b/src/proofs/tests/Test_UnsatCertificateNode.h index bbd4f4de75..f4d8d6712b 100644 --- a/src/proofs/tests/Test_UnsatCertificateNode.h +++ b/src/proofs/tests/Test_UnsatCertificateNode.h @@ -79,7 +79,7 @@ class UnsatCertificateNodeTestSuite : public CxxTest::TestSuite void test_plc_explanation_changes() { UnsatCertificateNode root = UnsatCertificateNode( NULL, PiecewiseLinearCaseSplit() ); - Vector> emptyVec; + Vector emptyVec; auto explanation1 = std::shared_ptr( new PLCLemma( { 1 }, 1, 0, BoundType::UPPER, BoundType::UPPER, emptyVec, RELU ) ); auto explanation2 = std::shared_ptr( new PLCLemma( { 1 }, 1, -1, BoundType::UPPER, BoundType::UPPER, emptyVec, RELU ) ); From d1919d02cedfc07f64aa64559cf6f04496c81c57 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 12 Dec 2023 18:23:50 +0200 Subject: [PATCH 127/165] minor --- src/engine/BoundManager.cpp | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/engine/BoundManager.cpp b/src/engine/BoundManager.cpp index bc84185078..109564e0fe 100644 --- a/src/engine/BoundManager.cpp +++ b/src/engine/BoundManager.cpp @@ -421,12 +421,16 @@ bool BoundManager::addLemmaExplanationAndTightenBound( unsigned var, double valu if ( constraintType == RELU || constraintType == SIGN ) { ASSERT( causingVars.size() == 1 ); - allExplanations.append( getExplanation( causingVars.front(), causingVarBound ) ); + SparseUnsortedList expl = getExplanation( causingVars.front(), causingVarBound ); + allExplanations.append( expl ); } else if ( constraintType == ABSOLUTE_VALUE ) { if ( causingVars.size() == 1 ) - allExplanations.append( getExplanation( causingVars.front(), causingVarBound ) ); + { + SparseUnsortedList expl = getExplanation( causingVars.front(), causingVarBound ); + allExplanations.append( expl ); + } else { // Used for two cases: @@ -435,14 +439,21 @@ bool BoundManager::addLemmaExplanationAndTightenBound( unsigned var, double valu // 2. Lemmas of the type lowerBound(f) > -lowerBound(b) or upperBound(b). // Again, two explanations are involved in the proof. // Add zero vectors to maintain consistency of explanations size - allExplanations.append( getExplanation( causingVars.front(), causingVarBound == BoundType::UPPER ) ); + SparseUnsortedList expl = getExplanation( causingVars.front(), causingVarBound == BoundType::UPPER ); + allExplanations.append( expl ); - allExplanations.append( getExplanation( causingVars.back(), BoundType::LOWER ) ); + expl = getExplanation( causingVars.back(), BoundType::LOWER ); + allExplanations.append( expl ); } } else if ( constraintType == MAX ) + { for ( const auto &element : causingVars ) - allExplanations.append( getExplanation( element, BoundType::UPPER ) ); + { + SparseUnsortedList expl = getExplanation( element, BoundType::UPPER ); + allExplanations.append( expl ); + } + } else throw MarabouError( MarabouError::FEATURE_NOT_YET_SUPPORTED ); From 6bf418a5300a03d6598e5032c42662fc51ba93bb Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 12 Dec 2023 18:31:49 +0200 Subject: [PATCH 128/165] Minor --- .../SparseUnsortedList.cpp | 5 +++++ src/basis_factorization/SparseUnsortedList.h | 1 + src/engine/BoundManager.cpp | 21 +++++-------------- 3 files changed, 11 insertions(+), 16 deletions(-) diff --git a/src/basis_factorization/SparseUnsortedList.cpp b/src/basis_factorization/SparseUnsortedList.cpp index 235fe91bb3..7f0af64c00 100644 --- a/src/basis_factorization/SparseUnsortedList.cpp +++ b/src/basis_factorization/SparseUnsortedList.cpp @@ -28,6 +28,11 @@ SparseUnsortedList::SparseUnsortedList( unsigned size ) { } +SparseUnsortedList::SparseUnsortedList( const SparseUnsortedList &other ) +{ + *this = other; +} + SparseUnsortedList::SparseUnsortedList( const double *V, unsigned size ) { initialize( V, size ); diff --git a/src/basis_factorization/SparseUnsortedList.h b/src/basis_factorization/SparseUnsortedList.h index a215c78c51..21e0069be0 100644 --- a/src/basis_factorization/SparseUnsortedList.h +++ b/src/basis_factorization/SparseUnsortedList.h @@ -44,6 +44,7 @@ class SparseUnsortedList SparseUnsortedList(); ~SparseUnsortedList(); SparseUnsortedList( unsigned size ); + SparseUnsortedList( const SparseUnsortedList &other ); SparseUnsortedList( const double *V, unsigned size ); void initialize( const double *V, unsigned size ); void initializeToEmpty(); diff --git a/src/engine/BoundManager.cpp b/src/engine/BoundManager.cpp index 109564e0fe..bc84185078 100644 --- a/src/engine/BoundManager.cpp +++ b/src/engine/BoundManager.cpp @@ -421,16 +421,12 @@ bool BoundManager::addLemmaExplanationAndTightenBound( unsigned var, double valu if ( constraintType == RELU || constraintType == SIGN ) { ASSERT( causingVars.size() == 1 ); - SparseUnsortedList expl = getExplanation( causingVars.front(), causingVarBound ); - allExplanations.append( expl ); + allExplanations.append( getExplanation( causingVars.front(), causingVarBound ) ); } else if ( constraintType == ABSOLUTE_VALUE ) { if ( causingVars.size() == 1 ) - { - SparseUnsortedList expl = getExplanation( causingVars.front(), causingVarBound ); - allExplanations.append( expl ); - } + allExplanations.append( getExplanation( causingVars.front(), causingVarBound ) ); else { // Used for two cases: @@ -439,21 +435,14 @@ bool BoundManager::addLemmaExplanationAndTightenBound( unsigned var, double valu // 2. Lemmas of the type lowerBound(f) > -lowerBound(b) or upperBound(b). // Again, two explanations are involved in the proof. // Add zero vectors to maintain consistency of explanations size - SparseUnsortedList expl = getExplanation( causingVars.front(), causingVarBound == BoundType::UPPER ); - allExplanations.append( expl ); + allExplanations.append( getExplanation( causingVars.front(), causingVarBound == BoundType::UPPER ) ); - expl = getExplanation( causingVars.back(), BoundType::LOWER ); - allExplanations.append( expl ); + allExplanations.append( getExplanation( causingVars.back(), BoundType::LOWER ) ); } } else if ( constraintType == MAX ) - { for ( const auto &element : causingVars ) - { - SparseUnsortedList expl = getExplanation( element, BoundType::UPPER ); - allExplanations.append( expl ); - } - } + allExplanations.append( getExplanation( element, BoundType::UPPER ) ); else throw MarabouError( MarabouError::FEATURE_NOT_YET_SUPPORTED ); From 25d518c8192770fd01e57c708e633d44eecf5535 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 12 Dec 2023 19:03:16 +0200 Subject: [PATCH 129/165] minor --- src/proofs/BoundExplainer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/proofs/BoundExplainer.cpp b/src/proofs/BoundExplainer.cpp index 5954b4f5cf..1bf2852e2f 100644 --- a/src/proofs/BoundExplainer.cpp +++ b/src/proofs/BoundExplainer.cpp @@ -230,7 +230,7 @@ void BoundExplainer::addVecTimesScalar( Vector &sum, const SparseUnsorte ASSERT( sum.size() == _numberOfRows ); for ( const auto &entry : input ) - sum[entry._index] += scalar * ( entry._value ); + sum[entry._index] += scalar * entry._value; } void BoundExplainer::addVecTimesScalar( Vector &sum, const Vector &input, double scalar ) const From 9e01fc9125375184b4b894df91a8ef2aee7a3167 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 12 Dec 2023 19:15:01 +0200 Subject: [PATCH 130/165] =?UTF-8?q?M=D7=9F=D7=9E=D7=9D=D7=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/engine/BoundManager.cpp | 29 ++++---------- src/engine/Engine.cpp | 8 ++-- src/proofs/BoundExplainer.cpp | 2 +- src/proofs/PlcLemma.cpp | 42 ++++++-------------- src/proofs/PlcLemma.h | 2 +- src/proofs/tests/Test_UnsatCertificateNode.h | 2 +- 6 files changed, 27 insertions(+), 58 deletions(-) diff --git a/src/engine/BoundManager.cpp b/src/engine/BoundManager.cpp index 8d9a3725e5..bc84185078 100644 --- a/src/engine/BoundManager.cpp +++ b/src/engine/BoundManager.cpp @@ -412,8 +412,7 @@ bool BoundManager::addLemmaExplanationAndTightenBound( unsigned var, double valu ASSERT( var < _tableau->getN() ); // Register new ground bound, update certificate, and reset explanation - Vector explanation( 0 ); - Vector> allExplanations( 0 ); + Vector allExplanations( 0 ); bool tightened = affectedVarBound == BoundType::UPPER ? tightenUpperBound( var, value ) : tightenLowerBound( var, value ); @@ -422,16 +421,12 @@ bool BoundManager::addLemmaExplanationAndTightenBound( unsigned var, double valu if ( constraintType == RELU || constraintType == SIGN ) { ASSERT( causingVars.size() == 1 ); - getExplanation( causingVars.front(), causingVarBound, explanation ); - allExplanations.append( explanation ); + allExplanations.append( getExplanation( causingVars.front(), causingVarBound ) ); } else if ( constraintType == ABSOLUTE_VALUE ) { if ( causingVars.size() == 1 ) - { - getExplanation( causingVars.front(), causingVarBound, explanation ); - allExplanations.append( explanation ); - } + allExplanations.append( getExplanation( causingVars.front(), causingVarBound ) ); else { // Used for two cases: @@ -440,24 +435,14 @@ bool BoundManager::addLemmaExplanationAndTightenBound( unsigned var, double valu // 2. Lemmas of the type lowerBound(f) > -lowerBound(b) or upperBound(b). // Again, two explanations are involved in the proof. // Add zero vectors to maintain consistency of explanations size - getExplanation( causingVars.front(), causingVarBound == BoundType::UPPER, explanation ); - allExplanations.append( explanation.empty() ? Vector( _tableau->getM(), 0 ) : explanation ); - explanation.clear(); + allExplanations.append( getExplanation( causingVars.front(), causingVarBound == BoundType::UPPER ) ); - getExplanation( causingVars.back(), BoundType::LOWER, explanation ); - allExplanations.append( explanation.empty() ? Vector( _tableau->getM(), 0 ) : explanation ); + allExplanations.append( getExplanation( causingVars.back(), BoundType::LOWER ) ); } } else if ( constraintType == MAX ) - { for ( const auto &element : causingVars ) - { - // Add zero vectors to maintain consistency of explanations size - getExplanation( element, BoundType::UPPER, explanation ); - allExplanations.append( explanation.empty() ? Vector( _tableau->getM(), 0 ) : explanation ); - explanation.clear(); - } - } + allExplanations.append( getExplanation( element, BoundType::UPPER ) ); else throw MarabouError( MarabouError::FEATURE_NOT_YET_SUPPORTED ); @@ -559,4 +544,4 @@ bool BoundManager::isExplanationTrivial( unsigned var, bool isUpper ) const bool BoundManager::shouldProduceProofs() const { return _boundExplainer != nullptr; -} +} \ No newline at end of file diff --git a/src/engine/Engine.cpp b/src/engine/Engine.cpp index a371c35efc..eb7f9035fe 100644 --- a/src/engine/Engine.cpp +++ b/src/engine/Engine.cpp @@ -3608,10 +3608,10 @@ const Vector Engine::computeContradiction( unsigned infeasibleVar ) cons SparseUnsortedList lowerBoundExplanation( 0 ); if ( !_boundManager.isExplanationTrivial( infeasibleVar, BoundType::UPPER ) ) - _boundManager.getExplanation( infeasibleVar, BoundType::UPPER, upperBoundExplanation ); + upperBoundExplanation = _boundManager.getExplanation( infeasibleVar, BoundType::UPPER ); - if( !_boundManager.isExplanationTrivial( infeasibleVar, BoundType::LOWER ) ) - _boundManager.getExplanation( infeasibleVar, BoundType::LOWER, lowerBoundExplanation ); + if ( !_boundManager.isExplanationTrivial( infeasibleVar, BoundType::LOWER ) ) + lowerBoundExplanation= _boundManager.getExplanation( infeasibleVar, BoundType::LOWER ); if ( upperBoundExplanation.empty() && lowerBoundExplanation.empty() ) return Vector( 0 ); @@ -3655,7 +3655,7 @@ void Engine::propagateBoundManagerTightenings() } void Engine::extractBounds( InputQuery &inputQuery ) -{ +{ for ( unsigned i = 0; i < inputQuery.getNumberOfVariables(); ++i ) { if ( _preprocessingEnabled ) diff --git a/src/proofs/BoundExplainer.cpp b/src/proofs/BoundExplainer.cpp index 1bf2852e2f..5954b4f5cf 100644 --- a/src/proofs/BoundExplainer.cpp +++ b/src/proofs/BoundExplainer.cpp @@ -230,7 +230,7 @@ void BoundExplainer::addVecTimesScalar( Vector &sum, const SparseUnsorte ASSERT( sum.size() == _numberOfRows ); for ( const auto &entry : input ) - sum[entry._index] += scalar * entry._value; + sum[entry._index] += scalar * ( entry._value ); } void BoundExplainer::addVecTimesScalar( Vector &sum, const Vector &input, double scalar ) const diff --git a/src/proofs/PlcLemma.cpp b/src/proofs/PlcLemma.cpp index 2ec300fbdd..66b6102df4 100644 --- a/src/proofs/PlcLemma.cpp +++ b/src/proofs/PlcLemma.cpp @@ -19,7 +19,7 @@ PLCLemma::PLCLemma( const List &causingVars, double bound, BoundType causingVarBound, BoundType affectedVarBound, - const Vector> &explanations, + const Vector &explanations, PiecewiseLinearFunctionType constraintType ) : _causingVars( causingVars ) , _affectedVar( affectedVar ) @@ -34,39 +34,23 @@ PLCLemma::PLCLemma( const List &causingVars, { ASSERT( causingVars.size() == explanations.size() ); - bool allEmpty = true; - unsigned proofSize = 0; + unsigned numOfExplanations = explanations.size(); - for ( const auto &expl : explanations ) - if ( !expl.empty() ) - { - proofSize = expl.size(); - allEmpty = false; - break; - } + ASSERT( numOfExplanations == causingVars.size() ); - if ( allEmpty ) - _explanations = List(); - else - { - unsigned numOfExplanations = explanations.size(); - - ASSERT( numOfExplanations == causingVars.size() && proofSize ); - - if ( _constraintType == RELU || _constraintType == SIGN ) - ASSERT( numOfExplanations == 1 ); + if ( _constraintType == RELU || _constraintType == SIGN ) + ASSERT( numOfExplanations == 1 ); - if ( _constraintType == ABSOLUTE_VALUE ) - ASSERT( numOfExplanations == 2 || numOfExplanations == 1 ); + if ( _constraintType == ABSOLUTE_VALUE ) + ASSERT( numOfExplanations == 2 || numOfExplanations == 1 ); - _explanations = List(); + _explanations = List(); - for ( unsigned i = 0; i < numOfExplanations; ++i ) - { - SparseUnsortedList expl = SparseUnsortedList(); - expl.initialize( explanations[i].data(), proofSize ); - _explanations.append( expl ); - } + for ( unsigned i = 0; i < numOfExplanations; ++i ) + { + SparseUnsortedList expl = SparseUnsortedList(); + expl = explanations[i]; + _explanations.append( expl ); } } } diff --git a/src/proofs/PlcLemma.h b/src/proofs/PlcLemma.h index 1e2567eeb5..6b41608c78 100644 --- a/src/proofs/PlcLemma.h +++ b/src/proofs/PlcLemma.h @@ -31,7 +31,7 @@ class PLCLemma double bound, BoundType causingVarBound, BoundType affectedVarBound, - const Vector> &explanation, + const Vector &explanation, PiecewiseLinearFunctionType constraintType ); ~PLCLemma(); diff --git a/src/proofs/tests/Test_UnsatCertificateNode.h b/src/proofs/tests/Test_UnsatCertificateNode.h index bbd4f4de75..f4d8d6712b 100644 --- a/src/proofs/tests/Test_UnsatCertificateNode.h +++ b/src/proofs/tests/Test_UnsatCertificateNode.h @@ -79,7 +79,7 @@ class UnsatCertificateNodeTestSuite : public CxxTest::TestSuite void test_plc_explanation_changes() { UnsatCertificateNode root = UnsatCertificateNode( NULL, PiecewiseLinearCaseSplit() ); - Vector> emptyVec; + Vector emptyVec; auto explanation1 = std::shared_ptr( new PLCLemma( { 1 }, 1, 0, BoundType::UPPER, BoundType::UPPER, emptyVec, RELU ) ); auto explanation2 = std::shared_ptr( new PLCLemma( { 1 }, 1, -1, BoundType::UPPER, BoundType::UPPER, emptyVec, RELU ) ); From ab77bb4e151dbad626e3b10279b4813a8d250ce2 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 12 Dec 2023 19:16:33 +0200 Subject: [PATCH 131/165] Minor --- src/proofs/BoundExplainer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/proofs/BoundExplainer.cpp b/src/proofs/BoundExplainer.cpp index 5954b4f5cf..1bf2852e2f 100644 --- a/src/proofs/BoundExplainer.cpp +++ b/src/proofs/BoundExplainer.cpp @@ -230,7 +230,7 @@ void BoundExplainer::addVecTimesScalar( Vector &sum, const SparseUnsorte ASSERT( sum.size() == _numberOfRows ); for ( const auto &entry : input ) - sum[entry._index] += scalar * ( entry._value ); + sum[entry._index] += scalar * entry._value; } void BoundExplainer::addVecTimesScalar( Vector &sum, const Vector &input, double scalar ) const From cce509a37d35fd7e5b8617c44433ba9ed63796af Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 12 Dec 2023 19:53:56 +0200 Subject: [PATCH 132/165] Minor --- src/engine/Engine.cpp | 2 +- src/engine/EngineState.h | 14 +++++++------- src/engine/TableauState.cpp | 10 ++++++++++ src/engine/TableauState.h | 6 +++++- src/proofs/BoundExplainer.cpp | 16 ++++++++-------- src/proofs/CMakeLists.txt | 2 +- src/proofs/tests/Test_BoundExplainer.h | 2 +- 7 files changed, 33 insertions(+), 19 deletions(-) diff --git a/src/engine/Engine.cpp b/src/engine/Engine.cpp index eb7f9035fe..6f7367dee5 100644 --- a/src/engine/Engine.cpp +++ b/src/engine/Engine.cpp @@ -3611,7 +3611,7 @@ const Vector Engine::computeContradiction( unsigned infeasibleVar ) cons upperBoundExplanation = _boundManager.getExplanation( infeasibleVar, BoundType::UPPER ); if ( !_boundManager.isExplanationTrivial( infeasibleVar, BoundType::LOWER ) ) - lowerBoundExplanation= _boundManager.getExplanation( infeasibleVar, BoundType::LOWER ); + lowerBoundExplanation = _boundManager.getExplanation( infeasibleVar, BoundType::LOWER ); if ( upperBoundExplanation.empty() && lowerBoundExplanation.empty() ) return Vector( 0 ); diff --git a/src/engine/EngineState.h b/src/engine/EngineState.h index b8229c8136..575d13b89d 100644 --- a/src/engine/EngineState.h +++ b/src/engine/EngineState.h @@ -24,8 +24,8 @@ class EngineState { public: - EngineState(); - ~EngineState(); + EngineState(); + ~EngineState(); /* The state of the tableau @@ -39,11 +39,11 @@ class EngineState Map _plConstraintToState; unsigned _numPlConstraintsDisabledByValidSplits; - /* - A unique ID allocated to every state that is stored, for - debugging purposes. These are assigned by the SMT core. - */ - unsigned _stateId; + /* + A unique ID allocated to every state that is stored, for + debugging purposes. These are assigned by the SMT core. + */ + unsigned _stateId; }; #endif // __EngineState_h__ diff --git a/src/engine/TableauState.cpp b/src/engine/TableauState.cpp index b2f08ae53c..e8c2030709 100644 --- a/src/engine/TableauState.cpp +++ b/src/engine/TableauState.cpp @@ -208,6 +208,16 @@ void TableauState::setDimensions( unsigned m, unsigned n, const IBasisFactorizat } +void TableauState::initializeBounds( unsigned n ) +{ + _lowerBounds = new double[n]; + if ( !_lowerBounds ) + throw MarabouError( MarabouError::ALLOCATION_FAILED, "TableauState::lowerBounds" ); + + _upperBounds = new double[n]; + if ( !_upperBounds ) + throw MarabouError( MarabouError::ALLOCATION_FAILED, "TableauState::upperBounds" ); +} // // Local Variables: diff --git a/src/engine/TableauState.h b/src/engine/TableauState.h index cb9a92f99c..d54d3e4fdf 100644 --- a/src/engine/TableauState.h +++ b/src/engine/TableauState.h @@ -43,6 +43,11 @@ class TableauState void setDimensions( unsigned m, unsigned n, const IBasisFactorization::BasisColumnOracle &oracle ); + /* + Just create the bounds array. + */ + void initializeBounds( unsigned n ); + /* The dimensions of matrix A */ @@ -119,7 +124,6 @@ class TableauState extracting a solution for x, we should read the value of y. */ Map _mergedVariables; - }; #endif // __TableauState_h__ diff --git a/src/proofs/BoundExplainer.cpp b/src/proofs/BoundExplainer.cpp index 1bf2852e2f..9d0b5a2d81 100644 --- a/src/proofs/BoundExplainer.cpp +++ b/src/proofs/BoundExplainer.cpp @@ -120,7 +120,7 @@ void BoundExplainer::updateBoundExplanation( const TableauRow &row, bool isUpper ASSERT( !FloatUtils::isZero( ci ) ); Vector rowCoefficients = Vector( _numberOfRows, 0 ); Vector sum = Vector( _numberOfRows, 0 ); - SparseUnsortedList tempBound; + SparseUnsortedList *tempBound; for ( unsigned i = 0; i < row._size; ++i ) { @@ -142,8 +142,8 @@ void BoundExplainer::updateBoundExplanation( const TableauRow &row, bool isUpper if ( ( tempUpper && *_trivialUpperBoundExplanation[curVar] ) || ( !tempUpper && *_trivialLowerBoundExplanation[curVar] ) ) continue; - tempBound = tempUpper ? *_upperBoundExplanations[curVar] : *_lowerBoundExplanations[curVar]; - addVecTimesScalar( sum, tempBound, realCoefficient ); + tempBound = tempUpper ? _upperBoundExplanations[curVar] : _lowerBoundExplanations[curVar]; + addVecTimesScalar( sum, *tempBound, realCoefficient ); } // Include lhs as well, if needed @@ -155,8 +155,8 @@ void BoundExplainer::updateBoundExplanation( const TableauRow &row, bool isUpper tempUpper = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ); if ( !( tempUpper && *_trivialUpperBoundExplanation[row._lhs] ) && !( !tempUpper && *_trivialLowerBoundExplanation[row._lhs] ) ) { - tempBound = tempUpper ? *_upperBoundExplanations[row._lhs] : *_lowerBoundExplanations[row._lhs]; - addVecTimesScalar( sum, tempBound, realCoefficient ); + tempBound = tempUpper ? _upperBoundExplanations[row._lhs] : _lowerBoundExplanations[row._lhs]; + addVecTimesScalar( sum, *tempBound, realCoefficient ); } } } @@ -191,7 +191,7 @@ void BoundExplainer::updateBoundExplanationSparse( const SparseUnsortedList &row ASSERT( !FloatUtils::isZero( ci ) ); Vector rowCoefficients = Vector( _numberOfRows, 0 ); Vector sum = Vector( _numberOfRows, 0 ); - SparseUnsortedList tempBound; + SparseUnsortedList *tempBound; for ( const auto &entry : row ) { @@ -211,8 +211,8 @@ void BoundExplainer::updateBoundExplanationSparse( const SparseUnsortedList &row if ( ( tempUpper && *_trivialUpperBoundExplanation[entry._index] ) || ( !tempUpper && *_trivialLowerBoundExplanation[entry._index] ) ) continue; - tempBound = tempUpper ? *_upperBoundExplanations[entry._index] : *_lowerBoundExplanations[entry._index]; - addVecTimesScalar( sum, tempBound, realCoefficient ); + tempBound = tempUpper ? _upperBoundExplanations[entry._index] : _lowerBoundExplanations[entry._index]; + addVecTimesScalar( sum, *tempBound, realCoefficient ); } // Update according to row coefficients diff --git a/src/proofs/CMakeLists.txt b/src/proofs/CMakeLists.txt index 5ff7fc58e1..ad7aca42d1 100644 --- a/src/proofs/CMakeLists.txt +++ b/src/proofs/CMakeLists.txt @@ -22,4 +22,4 @@ proofs_add_unit_test(UnsatCertificateUtils) if (${BUILD_PYTHON}) target_include_directories(${MARABOU_PY} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") -endif() \ No newline at end of file +endif() diff --git a/src/proofs/tests/Test_BoundExplainer.h b/src/proofs/tests/Test_BoundExplainer.h index 8f726e8a1a..705ed43ca5 100644 --- a/src/proofs/tests/Test_BoundExplainer.h +++ b/src/proofs/tests/Test_BoundExplainer.h @@ -94,7 +94,7 @@ class BoundsExplainerTestSuite : public CxxTest::TestSuite { // the sizes of explanations should not change TS_ASSERT( be.isExplanationTrivial( i, true ) || be.getExplanation( i, true ).getSize() == numberOfVariables ); - TS_ASSERT( be.isExplanationTrivial( i, false ) || be.getExplanation( i, false ).getSize() == numberOfVariables ); + TS_ASSERT( be.isExplanationTrivial( i, false ) || be.getExplanation( i, false ).getSize() == numberOfVariables ); } TS_ASSERT( be.isExplanationTrivial( numberOfVariables, true ) ); From eecedaab2a5a2383312039f2419bb483994372b4 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 12 Dec 2023 19:56:23 +0200 Subject: [PATCH 133/165] Minor --- src/engine/EngineState.h | 1 + src/engine/TableauState.cpp | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/EngineState.h b/src/engine/EngineState.h index 575d13b89d..c9446a6dac 100644 --- a/src/engine/EngineState.h +++ b/src/engine/EngineState.h @@ -10,6 +10,7 @@ ** directory for licensing information.\endverbatim ** ** [[ Add lengthier description here ]] + **/ #ifndef __EngineState_h__ diff --git a/src/engine/TableauState.cpp b/src/engine/TableauState.cpp index e8c2030709..4d9dab95d4 100644 --- a/src/engine/TableauState.cpp +++ b/src/engine/TableauState.cpp @@ -205,7 +205,6 @@ void TableauState::setDimensions( unsigned m, unsigned n, const IBasisFactorizat _basisFactorization = BasisFactorizationFactory::createBasisFactorization( m, oracle ); if ( !_basisFactorization ) throw MarabouError( MarabouError::ALLOCATION_FAILED, "TableauState::basisFactorization" ); - } void TableauState::initializeBounds( unsigned n ) From d657e60aaa29b608d403012e47f3632d6d2aa194 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 12 Dec 2023 20:07:29 +0200 Subject: [PATCH 134/165] Minor --- src/proofs/BoundExplainer.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/proofs/BoundExplainer.cpp b/src/proofs/BoundExplainer.cpp index 9d0b5a2d81..1bf2852e2f 100644 --- a/src/proofs/BoundExplainer.cpp +++ b/src/proofs/BoundExplainer.cpp @@ -120,7 +120,7 @@ void BoundExplainer::updateBoundExplanation( const TableauRow &row, bool isUpper ASSERT( !FloatUtils::isZero( ci ) ); Vector rowCoefficients = Vector( _numberOfRows, 0 ); Vector sum = Vector( _numberOfRows, 0 ); - SparseUnsortedList *tempBound; + SparseUnsortedList tempBound; for ( unsigned i = 0; i < row._size; ++i ) { @@ -142,8 +142,8 @@ void BoundExplainer::updateBoundExplanation( const TableauRow &row, bool isUpper if ( ( tempUpper && *_trivialUpperBoundExplanation[curVar] ) || ( !tempUpper && *_trivialLowerBoundExplanation[curVar] ) ) continue; - tempBound = tempUpper ? _upperBoundExplanations[curVar] : _lowerBoundExplanations[curVar]; - addVecTimesScalar( sum, *tempBound, realCoefficient ); + tempBound = tempUpper ? *_upperBoundExplanations[curVar] : *_lowerBoundExplanations[curVar]; + addVecTimesScalar( sum, tempBound, realCoefficient ); } // Include lhs as well, if needed @@ -155,8 +155,8 @@ void BoundExplainer::updateBoundExplanation( const TableauRow &row, bool isUpper tempUpper = ( isUpper && realCoefficient > 0 ) || ( !isUpper && realCoefficient < 0 ); if ( !( tempUpper && *_trivialUpperBoundExplanation[row._lhs] ) && !( !tempUpper && *_trivialLowerBoundExplanation[row._lhs] ) ) { - tempBound = tempUpper ? _upperBoundExplanations[row._lhs] : _lowerBoundExplanations[row._lhs]; - addVecTimesScalar( sum, *tempBound, realCoefficient ); + tempBound = tempUpper ? *_upperBoundExplanations[row._lhs] : *_lowerBoundExplanations[row._lhs]; + addVecTimesScalar( sum, tempBound, realCoefficient ); } } } @@ -191,7 +191,7 @@ void BoundExplainer::updateBoundExplanationSparse( const SparseUnsortedList &row ASSERT( !FloatUtils::isZero( ci ) ); Vector rowCoefficients = Vector( _numberOfRows, 0 ); Vector sum = Vector( _numberOfRows, 0 ); - SparseUnsortedList *tempBound; + SparseUnsortedList tempBound; for ( const auto &entry : row ) { @@ -211,8 +211,8 @@ void BoundExplainer::updateBoundExplanationSparse( const SparseUnsortedList &row if ( ( tempUpper && *_trivialUpperBoundExplanation[entry._index] ) || ( !tempUpper && *_trivialLowerBoundExplanation[entry._index] ) ) continue; - tempBound = tempUpper ? _upperBoundExplanations[entry._index] : _lowerBoundExplanations[entry._index]; - addVecTimesScalar( sum, *tempBound, realCoefficient ); + tempBound = tempUpper ? *_upperBoundExplanations[entry._index] : *_lowerBoundExplanations[entry._index]; + addVecTimesScalar( sum, tempBound, realCoefficient ); } // Update according to row coefficients From cb3ad63184d521abf50a9468cea4b36b267f193c Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 12 Dec 2023 21:34:47 +0200 Subject: [PATCH 135/165] Minor --- src/engine/Engine.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/Engine.cpp b/src/engine/Engine.cpp index 6f7367dee5..c5f9b80d53 100644 --- a/src/engine/Engine.cpp +++ b/src/engine/Engine.cpp @@ -3342,7 +3342,7 @@ double Engine::explainBound( unsigned var, bool isUpper ) const SparseUnsortedList explanation( 0 ); if ( !_boundManager.isExplanationTrivial( var, isUpper ) ) - explanation = _boundManager.getExplanation( var, isUpper); + explanation = _boundManager.getExplanation( var, isUpper ); if ( explanation.empty() ) return isUpper ? _groundBoundManager.getUpperBound( var ) : _groundBoundManager.getLowerBound( var ); From a4a3cb8194a1dbc6fff95856238fce0e06ed37b1 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 19 Dec 2023 15:12:16 +0200 Subject: [PATCH 136/165] Added option to write proofs as JSON files --- src/configuration/GlobalConfiguration.cpp | 1 + src/configuration/GlobalConfiguration.h | 4 + src/engine/Engine.cpp | 9 +- src/engine/PiecewiseLinearConstraint.h | 8 + src/proofs/JsonWriter.cpp | 353 ++++++++++++++++++++++ src/proofs/JsonWriter.h | 143 +++++++++ 6 files changed, 517 insertions(+), 1 deletion(-) create mode 100644 src/proofs/JsonWriter.cpp create mode 100644 src/proofs/JsonWriter.h diff --git a/src/configuration/GlobalConfiguration.cpp b/src/configuration/GlobalConfiguration.cpp index ecd8bb17eb..e05ae038e9 100644 --- a/src/configuration/GlobalConfiguration.cpp +++ b/src/configuration/GlobalConfiguration.cpp @@ -103,6 +103,7 @@ const unsigned GlobalConfiguration::DNC_DEPTH_THRESHOLD = 5; const double GlobalConfiguration::MINIMAL_COEFFICIENT_FOR_TIGHTENING = 0.01; const double GlobalConfiguration::LEMMA_CERTIFICATION_TOLERANCE = 0.000001; +const bool GlobalConfiguration::WRITE_JSON_PROOF = false; #ifdef ENABLE_GUROBI const unsigned GlobalConfiguration::GUROBI_NUMBER_OF_THREADS = 1; diff --git a/src/configuration/GlobalConfiguration.h b/src/configuration/GlobalConfiguration.h index 1b8d58c995..4722066484 100644 --- a/src/configuration/GlobalConfiguration.h +++ b/src/configuration/GlobalConfiguration.h @@ -243,6 +243,10 @@ class GlobalConfiguration */ static const double LEMMA_CERTIFICATION_TOLERANCE; + /* Denote whether proofs should be written as a JSON file + */ + static const bool WRITE_JSON_PROOF; + #ifdef ENABLE_GUROBI /* The number of threads Gurobi spawns diff --git a/src/engine/Engine.cpp b/src/engine/Engine.cpp index c5f9b80d53..4f6746ed2d 100644 --- a/src/engine/Engine.cpp +++ b/src/engine/Engine.cpp @@ -3555,7 +3555,14 @@ bool Engine::certifyUNSATCertificate() groundLowerBounds[i] = _groundBoundManager.getLowerBound( i ); } - Checker unsatCertificateChecker( _UNSATCertificate, _tableau->getM(), _tableau->getSparseA(), + if ( GlobalConfiguration::WRITE_JSON_PROOF ) + { + File file ( "proof.json" ); + JsonWriter::writeProofToJson( _UNSATCertificate, _tableau->getM(), _tableau->getSparseA(), + groundUpperBounds, groundLowerBounds, _plConstraints, file ); + } + + Checker unsatCertificateChecker( _UNSATCertificate, _tableau->getM(), _tableau->getSparseA(), groundUpperBounds, groundLowerBounds, _plConstraints ); bool certificationSucceeded = unsatCertificateChecker.check(); diff --git a/src/engine/PiecewiseLinearConstraint.h b/src/engine/PiecewiseLinearConstraint.h index 291040a1e6..0f7f1181ef 100644 --- a/src/engine/PiecewiseLinearConstraint.h +++ b/src/engine/PiecewiseLinearConstraint.h @@ -466,6 +466,14 @@ class PiecewiseLinearConstraint : public ITableau::VariableWatcher return {}; } + /* + Get the tableau auxiliary vars + */ + virtual const List &getTableauAuxVars() const + { + return _tableauAuxVars; + } + protected: unsigned _numCases; // Number of possible cases/phases for this constraint // (e.g. 2 for ReLU, ABS, SIGN; >=2 for Max and Disjunction ) diff --git a/src/proofs/JsonWriter.cpp b/src/proofs/JsonWriter.cpp new file mode 100644 index 0000000000..817b7bbca7 --- /dev/null +++ b/src/proofs/JsonWriter.cpp @@ -0,0 +1,353 @@ +/********************* */ +/*! \file JsonWriter.cpp + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2023 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#include +#include "JsonWriter.h" + +const char JsonWriter::AFFECTED_VAR[] = "\"affVar\" : "; +const char JsonWriter::AFFECTED_BOUND[] = "\"affBound\" : "; +const char JsonWriter::BOUND[] = "\"bound\" : "; +const char JsonWriter::CAUSING_VAR[] = "\"causVar\" : "; +const char JsonWriter::CAUSING_VARS[] = "\"causVars\" : "; +const char JsonWriter::CAUSING_BOUND[] = "\"causBound\" : "; +const char JsonWriter::CONTRADICTION[] = "\"contradiction\" : "; +const char JsonWriter::CONSTRAINT[] = "\"constraint\" : "; +const char JsonWriter::CONSTRAINTS[] = "\"constraints\" : "; +const char JsonWriter::CONSTRAINT_TYPE[] = "\"constraintType\" : "; +const char JsonWriter::CHILDREN[] = "\"children\" : "; +const char JsonWriter::EXPLANATION[] = "\"expl\" : "; +const char JsonWriter::EXPLANATIONS[] = "\"expls\" : "; +const char JsonWriter::LEMMAS[] = "\"lemmas\" : "; +const char JsonWriter::LOWER_BOUND[] = "\"L\""; +const char JsonWriter::LOWER_BOUNDS[] = "\"lowerBounds\" : "; +const char JsonWriter::PROOF[] = "\"proof\" : "; +const char JsonWriter::SPLIT[] = "\"split\" : "; +const char JsonWriter::TABLEAU[] = "\"tableau\" : "; +const char JsonWriter::UPPER_BOUND[] = "\"U\""; +const char JsonWriter::UPPER_BOUNDS[] = "\"upperBounds\" : "; +const char JsonWriter::VALUE[] = "\"val\" : "; +const char JsonWriter::VARIABLE[] = "\"var\" : "; +const char JsonWriter::VARIABLES[] = "\"vars\" : "; + +const bool JsonWriter::PROVE_LEMMAS = true; +const unsigned JsonWriter::JSONWRITER_PRECISION = ( unsigned ) std::log10( 1 / GlobalConfiguration::DEFAULT_EPSILON_FOR_COMPARISONS ); + +void JsonWriter::writeProofToJson( const UnsatCertificateNode *root, + unsigned explanationSize, + const SparseMatrix *initialTableau, + const Vector &upperBounds, + const Vector &lowerBounds, + const List &problemConstraints, + IFile &file ) +{ + ASSERT( root ); + ASSERT( upperBounds.size() > 0 ); + ASSERT( lowerBounds.size() > 0 ); + ASSERT( explanationSize > 0 ); + + List jsonLines; + jsonLines.append( "{\n" ); + + // Add initial query information to the instance + writeInitialTableau( initialTableau, explanationSize, jsonLines ); + writeBounds( upperBounds, UPPER, jsonLines ); + writeBounds( lowerBounds, LOWER, jsonLines ); + writePiecewiseLinearConstraints( problemConstraints, jsonLines ); + + // Add UNSAT certificate proof tree object to the instance + jsonLines.append( String( PROOF ) + String( "{ \n" ) ); + writeUnsatCertificateNode( root, explanationSize, jsonLines ); + jsonLines.append( "}\n" ); + + jsonLines.append( "}\n" ); + + // Wrap-up everything and write to a file + writeInstanceToFile( file, jsonLines ); +} + +void JsonWriter::writeBounds( const Vector &bounds, BoundType isUpper, List &instance ) +{ + String boundsString = isUpper == UPPER ? UPPER_BOUNDS : LOWER_BOUNDS; + + boundsString += convertDoubleArrayToString( bounds.data(), bounds.size() ); + + instance.append( boundsString ); + instance.append( String( ",\n" ) ); +} + +void JsonWriter::writeInitialTableau( const SparseMatrix *initialTableau, unsigned explanationSize, List &instance ) +{ + instance.append( String( TABLEAU ) ); + instance.append( "[\n" ); + + SparseUnsortedList tableauRow = SparseUnsortedList(); + + // Write each tableau row separately + for ( unsigned i = 0; i < explanationSize; ++i ) + { + instance.append( "[" ); + initialTableau->getRow( i, &tableauRow ); + instance.append( convertSparseUnsortedListToString( tableauRow ) ); + + // Not adding a comma after the last element + if ( i != explanationSize - 1 ) + instance.append( "],\n" ); + else + instance.append( "]\n" ); + } + + instance.append ( "], \n" ); +} + +void JsonWriter::writePiecewiseLinearConstraints( const List &problemConstraints, List &instance ) +{ + instance.append( CONSTRAINTS ); + instance.append( "[\n" ); + String type = ""; + String vars = ""; + unsigned counter = 0; + unsigned size = problemConstraints.size(); + for ( auto constraint : problemConstraints ) + { + + type = std::to_string( constraint->getType() ); + + // Vars are written in the same order as in the get method + vars = "["; + for ( unsigned var : constraint->getParticipatingVariables() ) + vars += std::to_string( var ) + ", "; + + List tableauVars = constraint->getTableauAuxVars(); + + for ( unsigned var : tableauVars ) + { + vars += std::to_string( var ) ; + if ( var != tableauVars.back() ) + vars += ", "; + } + + vars += "]"; + + instance.append( String( "{" ) + String( CONSTRAINT_TYPE ) + type + String( ", " ) + String( VARIABLES ) + vars ); + + // Not adding a comma after the last element + if (counter != size - 1 ) + instance.append( "},\n" ); + else + instance.append( "}\n" ); + ++counter; + } + instance.append( "],\n" ); +} + +void JsonWriter::writeUnsatCertificateNode( const UnsatCertificateNode *node, unsigned explanationSize ,List &instance ) +{ + + // For SAT examples only (used for debugging) + if ( !node->getVisited() || node->getSATSolutionFlag() ) + return; + + writeHeadSplit( node->getSplit(), instance ); + + writePLCLemmas( node->getPLCLemmas(), instance ); + + if ( node->getChildren().empty() ) + writeContradiction( node->getContradiction(), instance ); + else + { + instance.append( CHILDREN ); + instance.append( "[\n" ); + + unsigned counter = 0; + unsigned size = node->getChildren().size(); + for ( auto child : node->getChildren() ) + { + instance.append("{\n" ); + writeUnsatCertificateNode( child, explanationSize, instance ); + + // Not adding a comma after the last element + if (counter != size - 1) + instance.append("},\n" ); + else + instance.append("}\n" ); + ++counter; + } + + instance.append( "]\n" ); + } +} + +void JsonWriter::writeHeadSplit( const PiecewiseLinearCaseSplit &headSplit, List &instance ) +{ + String boundTypeString; + unsigned counter = 0; + unsigned size = headSplit.getBoundTightenings().size(); + + if ( !size ) + return; + + instance.append( SPLIT ); + instance.append( "[" ); + for ( auto tightening : headSplit.getBoundTightenings() ) + { + instance.append( String ( "{" ) + String( VARIABLE ) + std::to_string( tightening._variable ) + String(", " ) + \ + String ( VALUE ) + convertDoubleToString( tightening._value ) + String(", " ) + \ + String ( BOUND ) ); + boundTypeString = tightening._type == Tightening::UB ? String ( UPPER_BOUND ) : String ( LOWER_BOUND ); + boundTypeString += String( "}" ); + // Not adding a comma after the last element + if ( counter != size - 1 ) + boundTypeString += ", "; + instance.append( boundTypeString ); + ++counter; + } + instance.append( "],\n" ); +} + +void JsonWriter::writeContradiction( const Contradiction *contradiction, List &instance ) +{ + String contradictionString = CONTRADICTION; + const SparseUnsortedList explanation = contradiction->getContradiction(); + contradictionString += "[ "; + contradictionString += explanation.empty() ? std::to_string( contradiction->getVar() ) : convertSparseUnsortedListToString( explanation ); + contradictionString += String( " ]\n" ); + instance.append( contradictionString ); +} + +void JsonWriter::writePLCLemmas( const List> &PLCExplanations, List &instance ) +{ + unsigned counter = 0; + unsigned size = PLCExplanations.size(); + if ( !size ) + return; + String affectedBoundType = ""; + String causingBoundType = ""; + + instance.append( LEMMAS ); + instance.append( "[\n" ); + + // Write all fields of each lemma + for ( auto lemma : PLCExplanations ) + { + instance.append( String( "{" ) ); + instance.append( String( AFFECTED_VAR) + std::to_string( lemma->getAffectedVar() ) + String( ", " ) ); + affectedBoundType = lemma->getAffectedVarBound() == UPPER ? String ( UPPER_BOUND ) : String ( LOWER_BOUND ); + instance.append( String( AFFECTED_BOUND ) + affectedBoundType + String( ", " ) ); + instance.append( String( BOUND ) + convertDoubleToString( lemma->getBound() ) ); + + if ( PROVE_LEMMAS ) + { + instance.append( String( ", " ) ); + List causingVars = lemma->getCausingVars(); + + if ( causingVars.size() == 1 ) + instance.append( String( CAUSING_VAR ) + std::to_string( causingVars.front() ) + String( ", " ) ); + else + { + instance.append( String( CAUSING_VARS ) + "[ "); + for ( unsigned var : causingVars ) + { + instance.append( std::to_string( var ) ); + if ( var != causingVars.back() ) + instance.append( ", " ); + } + instance.append( " ]\n"); + } + + causingBoundType = lemma->getCausingVarBound() == UPPER ? String( UPPER_BOUND ) : String( LOWER_BOUND ); + instance.append( String( CAUSING_BOUND ) + causingBoundType + String( ", " ) ); + instance.append( String( CONSTRAINT ) + std::to_string( lemma->getConstraintType() ) + String( ",\n" ) ); + + List expls = lemma->getExplanations(); + if ( expls.size() == 1 ) + instance.append( String( EXPLANATION ) + "[ " + convertSparseUnsortedListToString( expls.front() ) + " ]"); + else + { + instance.append( String( EXPLANATIONS ) + "[ "); + unsigned innerCounter = 0; + for ( SparseUnsortedList &expl : expls ) + { + instance.append( "[ "); + instance.append( convertSparseUnsortedListToString( expl ) ); + instance.append( " ]"); + if ( innerCounter != expls.size() - 1 ) + instance.append( ",\n" ); + + ++innerCounter; + } + instance.append( " ]\n" ); + } + } + + instance.append( String( "}" ) ); + + // Not adding a comma after the last element + if ( counter != size - 1 ) + instance.append( ",\n" ); + ++counter; + } + + instance.append( "\n],\n" ); +} + +void JsonWriter::writeInstanceToFile( IFile &file, const List &instance ) +{ + file.open( File::MODE_WRITE_TRUNCATE ); + + for ( const String &s : instance ) + file.write( s ); + + file.close(); +} + +String JsonWriter::convertDoubleToString( double value ) +{ + std::stringstream s; + s << std::fixed << std::setprecision( JSONWRITER_PRECISION ) << value; + String str = String ( s.str() ).trimZerosFromRight(); + + // Add .0 for integers for some JSON parsers. + if ( !str.contains( "." ) ) + str += String( ".0" ); + return str; +} + +String JsonWriter::convertDoubleArrayToString( const double *arr, unsigned size ) +{ + String arrString = "["; + for ( unsigned i = 0; i < size - 1; ++i ) + arrString += convertDoubleToString( arr[i] ) + ", "; + + arrString += convertDoubleToString( arr[size -1] ) + "]"; + + return arrString; +} + +String JsonWriter::convertSparseUnsortedListToString( SparseUnsortedList sparseList ) +{ + String sparseListString = ""; + unsigned counter = 0; + unsigned size = sparseList.getNnz(); + for ( auto entry = sparseList.begin() ; entry != sparseList.end(); ++entry ) + { + sparseListString += String( "{" ) + String( VARIABLE ) + std::to_string( entry->_index ) + String(", " ) + + String( VALUE ) + convertDoubleToString( entry->_value ) + String ( "}" ); + + // Not adding a comma after the last element + if ( counter != size - 1 ) + sparseListString += ", " ; + ++counter; + } + return sparseListString; +} \ No newline at end of file diff --git a/src/proofs/JsonWriter.h b/src/proofs/JsonWriter.h new file mode 100644 index 0000000000..ab14a27745 --- /dev/null +++ b/src/proofs/JsonWriter.h @@ -0,0 +1,143 @@ +/********************* */ +/*! \file JsonWriter.h + ** \verbatim + ** Top contributors (to current version): + ** Omri Isac, Guy Katz + ** This file is part of the Marabou project. + ** Copyright (c) 2017-2023 by the authors listed in the file AUTHORS + ** in the top-level source directory) and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** [[ Add lengthier description here ]] + **/ + +#ifndef __JsonWriter_h__ +#define __JsonWriter_h__ + +#include "Contradiction.h" +#include "File.h" +#include "List.h" +#include "MString.h" +#include "PiecewiseLinearConstraint.h" +#include "PlcLemma.h" +#include "SparseUnsortedList.h" +#include "Tightening.h" +#include "Vector.h" +#include "UnsatCertificateNode.h" + +/* + A class responsible for writing Marabou proof instances into JSON format +*/ +class JsonWriter +{ +public: + /* + Write an entire UNSAT proof to a JSON file. + General remark - empty JSON properties (such as empty contradiction for non-leaves) will not be written. + */ + static void writeProofToJson( const UnsatCertificateNode *root, + unsigned explanationSize, + const SparseMatrix *initialTableau, + const Vector &upperBounds, + const Vector &lowerBounds, + const List &problemConstraints, + IFile &file ); + /* + Configure whether lemmas should be written proved as well + */ + static const bool PROVE_LEMMAS; + + /* + Configure writer precision + */ + static const unsigned JSONWRITER_PRECISION; + + + /* + JSON property names + */ + static const char AFFECTED_VAR[]; + static const char AFFECTED_BOUND[]; + static const char BOUND[]; + static const char CAUSING_VAR[]; + static const char CAUSING_VARS[]; + static const char CAUSING_BOUND[]; + static const char CONTRADICTION[]; + static const char CONSTRAINT[]; + static const char CONSTRAINTS[]; + static const char CONSTRAINT_TYPE[]; + static const char CHILDREN[]; + static const char EXPLANATION[]; + static const char EXPLANATIONS[]; + static const char LEMMAS[]; + static const char LOWER_BOUND[]; + static const char LOWER_BOUNDS[]; + static const char PROOF[]; + static const char SPLIT[]; + static const char TABLEAU[]; + static const char UPPER_BOUND[]; + static const char UPPER_BOUNDS[]; + static const char VALUE[]; + static const char VARIABLE[]; + static const char VARIABLES[]; + + +private: + /* + Write the initial tableau to a JSON list of Strings + */ + static void writeInitialTableau( const SparseMatrix *initialTableau, unsigned explanationSize, List &instance ); + + /* + Write variables bounds to a JSON String + */ + static void writeBounds( const Vector &bounds, BoundType isUpper, List &instance ); + + /* + Write a list a piecewise-linear constraints to a JSON String + */ + static void writePiecewiseLinearConstraints( const List &problemConstraints, List &instance ); + + /* + Write an UNSAT certificate node to a JSON String + */ + static void writeUnsatCertificateNode( const UnsatCertificateNode *node, unsigned explanationSize, List &instance ); + + /* + Write a list of PLCLemmas to a JSON String + */ + static void writePLCLemmas( const List> &PLCLemma, List &instance ); + + /* + Write a contradiction object to a JSON String + */ + static void writeContradiction( const Contradiction *contradiction, List &instance ); + + /* + Write a PiecewiseLinearCaseSplit to a JSON String + */ + static void writeHeadSplit( const PiecewiseLinearCaseSplit &headSplit, List &instance ); + + /* + Write an instance to a file + */ + static void writeInstanceToFile( IFile &file, const List &instance ); + + /* + Convert a double to a string + */ + static String convertDoubleToString( double value ); + + /* + Write an array of doubles to a JSON String + */ + static String convertDoubleArrayToString( const double *arr, unsigned size ); + + /* + Write a SparseUnsortedList object to a JSON String + */ + static String convertSparseUnsortedListToString( SparseUnsortedList sparseList ); +}; + +#endif //__JsonWriter_h__ \ No newline at end of file From f574e5afc2333cdb88b1661e07e06e9ef6124bb9 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 19 Dec 2023 15:48:36 +0200 Subject: [PATCH 137/165] Minor --- src/engine/Engine.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/engine/Engine.h b/src/engine/Engine.h index 259e09adf6..54fb883e02 100644 --- a/src/engine/Engine.h +++ b/src/engine/Engine.h @@ -30,6 +30,7 @@ #include "GurobiWrapper.h" #include "IEngine.h" #include "InputQuery.h" +#include "JsonWriter.h" #include "LinearExpression.h" #include "LPSolverType.h" #include "Map.h" From 38d12b93a67da33dfbe8b1f27403beeb5007bc3d Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Wed, 20 Dec 2023 10:47:13 +0200 Subject: [PATCH 138/165] Minor --- src/engine/Engine.cpp | 2 +- src/proofs/JsonWriter.cpp | 3 +-- src/proofs/JsonWriter.h | 5 ++++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/engine/Engine.cpp b/src/engine/Engine.cpp index 4f6746ed2d..a9a97f1824 100644 --- a/src/engine/Engine.cpp +++ b/src/engine/Engine.cpp @@ -3557,7 +3557,7 @@ bool Engine::certifyUNSATCertificate() if ( GlobalConfiguration::WRITE_JSON_PROOF ) { - File file ( "proof.json" ); + File file( JsonWriter::PROOF_FILENAME ); JsonWriter::writeProofToJson( _UNSATCertificate, _tableau->getM(), _tableau->getSparseA(), groundUpperBounds, groundLowerBounds, _plConstraints, file ); } diff --git a/src/proofs/JsonWriter.cpp b/src/proofs/JsonWriter.cpp index 817b7bbca7..f6427ab31d 100644 --- a/src/proofs/JsonWriter.cpp +++ b/src/proofs/JsonWriter.cpp @@ -42,6 +42,7 @@ const char JsonWriter::VARIABLES[] = "\"vars\" : "; const bool JsonWriter::PROVE_LEMMAS = true; const unsigned JsonWriter::JSONWRITER_PRECISION = ( unsigned ) std::log10( 1 / GlobalConfiguration::DEFAULT_EPSILON_FOR_COMPARISONS ); +const char PROOF_FILENAME[] = "proof.json" void JsonWriter::writeProofToJson( const UnsatCertificateNode *root, unsigned explanationSize, @@ -120,7 +121,6 @@ void JsonWriter::writePiecewiseLinearConstraints( const ListgetType() ); // Vars are written in the same order as in the get method @@ -153,7 +153,6 @@ void JsonWriter::writePiecewiseLinearConstraints( const List &instance ) { - // For SAT examples only (used for debugging) if ( !node->getVisited() || node->getSATSolutionFlag() ) return; diff --git a/src/proofs/JsonWriter.h b/src/proofs/JsonWriter.h index ab14a27745..b93083ad6d 100644 --- a/src/proofs/JsonWriter.h +++ b/src/proofs/JsonWriter.h @@ -53,6 +53,10 @@ class JsonWriter */ static const unsigned JSONWRITER_PRECISION; + /* + Configure proof file name + */ + static const char PROOF_FILENAME[]; /* JSON property names @@ -82,7 +86,6 @@ class JsonWriter static const char VARIABLE[]; static const char VARIABLES[]; - private: /* Write the initial tableau to a JSON list of Strings From 5e93df62449131c5ba391441f67ba872379d0689 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Wed, 20 Dec 2023 10:56:29 +0200 Subject: [PATCH 139/165] Update JsonWriter.cpp --- src/proofs/JsonWriter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/proofs/JsonWriter.cpp b/src/proofs/JsonWriter.cpp index f6427ab31d..d0a37a82a5 100644 --- a/src/proofs/JsonWriter.cpp +++ b/src/proofs/JsonWriter.cpp @@ -42,7 +42,7 @@ const char JsonWriter::VARIABLES[] = "\"vars\" : "; const bool JsonWriter::PROVE_LEMMAS = true; const unsigned JsonWriter::JSONWRITER_PRECISION = ( unsigned ) std::log10( 1 / GlobalConfiguration::DEFAULT_EPSILON_FOR_COMPARISONS ); -const char PROOF_FILENAME[] = "proof.json" +const char JsonWriter::PROOF_FILENAME[] = "proof.json"; void JsonWriter::writeProofToJson( const UnsatCertificateNode *root, unsigned explanationSize, From c73d0f89e96d729510e2fd7112a7d39e594c8a75 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 5 Mar 2024 20:24:24 +0200 Subject: [PATCH 140/165] LeakyRelu Proofs --- src/engine/AbsoluteValueConstraint.cpp | 22 +- src/engine/AbsoluteValueConstraint.h | 8 +- src/engine/BoundManager.cpp | 36 +- src/engine/Engine.cpp | 32 +- src/engine/IBoundManager.h | 10 +- src/engine/ITableau.h | 1 + src/engine/LeakyReluConstraint.cpp | 150 +++++- src/engine/LeakyReluConstraint.h | 17 + src/engine/MaxConstraint.cpp | 5 +- src/engine/PrecisionRestorer.cpp | 4 +- src/engine/ReluConstraint.cpp | 39 +- src/engine/SignConstraint.cpp | 12 +- src/engine/Tightening.h | 2 +- src/engine/tests/MockBoundManager.h | 4 +- src/nlr/LayerOwner.h | 1 + src/proofs/Checker.cpp | 483 +++++++++++++------ src/proofs/Checker.h | 15 +- src/proofs/JsonWriter.cpp | 18 +- src/proofs/JsonWriter.h | 7 +- src/proofs/PlcLemma.cpp | 8 +- src/proofs/PlcLemma.h | 13 +- src/proofs/SmtLibWriter.cpp | 23 +- src/proofs/SmtLibWriter.h | 11 + src/proofs/UnsatCertificateUtils.cpp | 2 +- src/proofs/tests/Test_UnsatCertificateNode.h | 6 +- 25 files changed, 621 insertions(+), 308 deletions(-) diff --git a/src/engine/AbsoluteValueConstraint.cpp b/src/engine/AbsoluteValueConstraint.cpp index 0d6055a392..cd4535dfc8 100644 --- a/src/engine/AbsoluteValueConstraint.cpp +++ b/src/engine/AbsoluteValueConstraint.cpp @@ -149,9 +149,9 @@ void AbsoluteValueConstraint::notifyLowerBound( unsigned variable, double bound if ( proofs && !phaseFixed() ) _boundManager->addLemmaExplanationAndTightenBound( _f, fUpperBound, - BoundType::UPPER, + Tightening::UB, { variable, variable }, - BoundType::UPPER, + Tightening::UB, getType() ); else if ( proofs && phaseFixed() ) { @@ -229,9 +229,9 @@ void AbsoluteValueConstraint::notifyUpperBound( unsigned variable, double bound if ( proofs && !phaseFixed() ) _boundManager->addLemmaExplanationAndTightenBound( _f, fUpperBound, - BoundType::UPPER, + Tightening::UB, { variable, variable }, - BoundType::UPPER, + Tightening::UB, getType() ); else if ( proofs && phaseFixed() ) { @@ -826,7 +826,7 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() setPhaseStatus( ABS_PHASE_POSITIVE ); if ( proofs ) _boundManager->addLemmaExplanationAndTightenBound( - _posAux, 0, BoundType::UPPER, { _b }, BoundType::LOWER, getType() ); + _posAux, 0, Tightening::UB, { _b }, Tightening::LB, getType() ); return; } @@ -836,7 +836,7 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() setPhaseStatus( ABS_PHASE_NEGATIVE ); if ( proofs ) _boundManager->addLemmaExplanationAndTightenBound( - _negAux, 0, BoundType::UPPER, { _b }, BoundType::UPPER, getType() ); + _negAux, 0, Tightening::UB, { _b }, Tightening::UB, getType() ); return; } @@ -850,7 +850,7 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() setPhaseStatus( ABS_PHASE_NEGATIVE ); if ( proofs ) _boundManager->addLemmaExplanationAndTightenBound( - _negAux, 0, BoundType::UPPER, { _b, _f }, BoundType::UPPER, getType() ); + _negAux, 0, Tightening::UB, { _b, _f }, Tightening::UB, getType() ); return; } @@ -861,7 +861,7 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() setPhaseStatus( ABS_PHASE_POSITIVE ); if ( proofs ) _boundManager->addLemmaExplanationAndTightenBound( - _posAux, 0, BoundType::UPPER, { _b, _f }, BoundType::LOWER, getType() ); + _posAux, 0, Tightening::UB, { _b, _f }, Tightening::LB, getType() ); return; } @@ -880,7 +880,7 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() setPhaseStatus( ABS_PHASE_NEGATIVE ); if ( proofs ) _boundManager->addLemmaExplanationAndTightenBound( - _negAux, 0, BoundType::UPPER, { _posAux }, BoundType::LOWER, getType() ); + _negAux, 0, Tightening::UB, { _posAux }, Tightening::LB, getType() ); return; } @@ -897,7 +897,7 @@ void AbsoluteValueConstraint::fixPhaseIfNeeded() setPhaseStatus( ABS_PHASE_POSITIVE ); if ( proofs ) _boundManager->addLemmaExplanationAndTightenBound( - _posAux, 0, BoundType::UPPER, { _negAux }, BoundType::LOWER, getType() ); + _posAux, 0, Tightening::UB, { _negAux }, Tightening::LB, getType() ); return; } } @@ -934,6 +934,7 @@ void AbsoluteValueConstraint::createPosTighteningRow() _posTighteningRow->_row[0] = TableauRow::Entry( _b, 1 ); _posTighteningRow->_row[1] = TableauRow::Entry( _posAux, 1 ); _posTighteningRow->_row[2] = TableauRow::Entry( _tableauAuxVars.front(), 1 ); + _posTighteningRow->_scalar = 0; } void AbsoluteValueConstraint::createNegTighteningRow() @@ -950,6 +951,7 @@ void AbsoluteValueConstraint::createNegTighteningRow() _negTighteningRow->_row[0] = TableauRow::Entry( _b, -1 ); _negTighteningRow->_row[1] = TableauRow::Entry( _negAux, 1 ); _negTighteningRow->_row[2] = TableauRow::Entry( _tableauAuxVars.back(), 1 ); + _negTighteningRow->_scalar = 0; } const List AbsoluteValueConstraint::getNativeAuxVars() const diff --git a/src/engine/AbsoluteValueConstraint.h b/src/engine/AbsoluteValueConstraint.h index 95228f46b5..d67b44edb5 100644 --- a/src/engine/AbsoluteValueConstraint.h +++ b/src/engine/AbsoluteValueConstraint.h @@ -251,14 +251,14 @@ class AbsoluteValueConstraint : public PiecewiseLinearConstraint std::shared_ptr _negTighteningRow; /* - Create a the tableau row used for explaining bound tightening caused by the constraint - stored in _posTighteningRow + Create a tableau row used for explaining bound tightening caused by the constraint's positive + phase, stored in _posTighteningRow */ void createPosTighteningRow(); /* - Create a the tableau row used for explaining bound tightening caused by the constraint - Stored in _negTighteningRow + Create a tableau row used for explaining bound tightening caused by the constraint's negative + phase, stored in _negTighteningRow */ void createNegTighteningRow(); diff --git a/src/engine/BoundManager.cpp b/src/engine/BoundManager.cpp index 7b167778e0..4af3f2297a 100644 --- a/src/engine/BoundManager.cpp +++ b/src/engine/BoundManager.cpp @@ -319,8 +319,8 @@ bool BoundManager::tightenLowerBound( unsigned variable, double value, const Tab if ( tightened ) { - if ( _engine->shouldProduceProofs() ) - _boundExplainer->updateBoundExplanation( row, BoundType::LOWER, variable ); + if ( shouldProduceProofs() ) + _boundExplainer->updateBoundExplanation( row, Tightening::LB, variable ); if ( _tableau != nullptr ) _tableau->updateVariableToComplyWithLowerBoundUpdate( variable, value ); @@ -334,8 +334,8 @@ bool BoundManager::tightenUpperBound( unsigned variable, double value, const Tab if ( tightened ) { - if ( _engine->shouldProduceProofs() ) - _boundExplainer->updateBoundExplanation( row, BoundType::UPPER, variable ); + if ( shouldProduceProofs() ) + _boundExplainer->updateBoundExplanation( row, Tightening::UB, variable ); if ( _tableau != nullptr ) _tableau->updateVariableToComplyWithUpperBoundUpdate( variable, value ); @@ -351,8 +351,8 @@ bool BoundManager::tightenLowerBound( unsigned variable, if ( tightened ) { - if ( _engine->shouldProduceProofs() ) - _boundExplainer->updateBoundExplanationSparse( row, BoundType::LOWER, variable ); + if ( shouldProduceProofs() ) + _boundExplainer->updateBoundExplanationSparse( row, Tightening::LB, variable ); if ( _tableau != nullptr ) _tableau->updateVariableToComplyWithLowerBoundUpdate( variable, value ); @@ -368,8 +368,8 @@ bool BoundManager::tightenUpperBound( unsigned variable, if ( tightened ) { - if ( _engine->shouldProduceProofs() ) - _boundExplainer->updateBoundExplanationSparse( row, BoundType::UPPER, variable ); + if ( shouldProduceProofs() ) + _boundExplainer->updateBoundExplanationSparse( row, Tightening::UB, variable ); if ( _tableau != nullptr ) _tableau->updateVariableToComplyWithUpperBoundUpdate( variable, value ); @@ -414,9 +414,9 @@ void BoundManager::updateBoundExplanationSparse( const SparseUnsortedList &row, bool BoundManager::addLemmaExplanationAndTightenBound( unsigned var, double value, - BoundType affectedVarBound, + Tightening::BoundType affectedVarBound, const List &causingVars, - BoundType causingVarBound, + Tightening::BoundType causingVarBound, PiecewiseLinearFunctionType constraintType ) { if ( !shouldProduceProofs() ) @@ -427,12 +427,12 @@ bool BoundManager::addLemmaExplanationAndTightenBound( unsigned var, // Register new ground bound, update certificate, and reset explanation Vector allExplanations( 0 ); - bool tightened = affectedVarBound == BoundType::UPPER ? tightenUpperBound( var, value ) - : tightenLowerBound( var, value ); + bool tightened = affectedVarBound == Tightening::UB ? tightenUpperBound( var, value ) + : tightenLowerBound( var, value ); if ( tightened ) { - if ( constraintType == RELU || constraintType == SIGN ) + if ( constraintType == RELU || constraintType == SIGN || constraintType == LEAKY_RELU ) { ASSERT( causingVars.size() == 1 ); allExplanations.append( getExplanation( causingVars.front(), causingVarBound ) ); @@ -451,14 +451,14 @@ bool BoundManager::addLemmaExplanationAndTightenBound( unsigned var, // Again, two explanations are involved in the proof. // Add zero vectors to maintain consistency of explanations size allExplanations.append( - getExplanation( causingVars.front(), causingVarBound == BoundType::UPPER ) ); + getExplanation( causingVars.front(), causingVarBound == Tightening::UB ) ); - allExplanations.append( getExplanation( causingVars.back(), BoundType::LOWER ) ); + allExplanations.append( getExplanation( causingVars.back(), Tightening::LB ) ); } } else if ( constraintType == MAX ) for ( const auto &element : causingVars ) - allExplanations.append( getExplanation( element, BoundType::UPPER ) ); + allExplanations.append( getExplanation( element, Tightening::UB ) ); else throw MarabouError( MarabouError::FEATURE_NOT_YET_SUPPORTED ); @@ -470,8 +470,8 @@ bool BoundManager::addLemmaExplanationAndTightenBound( unsigned var, allExplanations, constraintType ); _engine->getUNSATCertificateCurrentPointer()->addPLCLemma( PLCExpl ); - affectedVarBound == BoundType::UPPER ? _engine->updateGroundUpperBound( var, value ) - : _engine->updateGroundLowerBound( var, value ); + affectedVarBound == Tightening::UB ? _engine->updateGroundUpperBound( var, value ) + : _engine->updateGroundLowerBound( var, value ); resetExplanation( var, affectedVarBound ); } return true; diff --git a/src/engine/Engine.cpp b/src/engine/Engine.cpp index b2710cdd3a..8b559ab2a5 100644 --- a/src/engine/Engine.cpp +++ b/src/engine/Engine.cpp @@ -1591,9 +1591,6 @@ bool Engine::processInputQuery( InputQuery &inputQuery, bool preprocess ) void Engine::performMILPSolverBoundedTightening( InputQuery *inputQuery ) { - if ( _produceUNSATProofs ) - return; - if ( _networkLevelReasoner && Options::get()->gurobiEnabled() ) { // Obtain from and store bounds into inputquery if it is not null. @@ -2098,7 +2095,7 @@ void Engine::applySplit( const PiecewiseLinearCaseSplit &split ) if ( _produceUNSATProofs && FloatUtils::gt( bound._value, _boundManager.getLowerBound( bound._variable ) ) ) { - _boundManager.resetExplanation( variable, BoundType::LOWER ); + _boundManager.resetExplanation( variable, Tightening::LB ); updateGroundLowerBound( variable, bound._value ); _boundManager.tightenLowerBound( variable, bound._value ); } @@ -2112,7 +2109,7 @@ void Engine::applySplit( const PiecewiseLinearCaseSplit &split ) if ( _produceUNSATProofs && FloatUtils::lt( bound._value, _boundManager.getUpperBound( bound._variable ) ) ) { - _boundManager.resetExplanation( variable, BoundType::UPPER ); + _boundManager.resetExplanation( variable, Tightening::UB ); updateGroundUpperBound( variable, bound._value ); _boundManager.tightenUpperBound( variable, bound._value ); } @@ -2195,6 +2192,7 @@ bool Engine::applyValidConstraintCaseSplit( PiecewiseLinearConstraint *constrain PiecewiseLinearCaseSplit validSplit = constraint->getValidCaseSplit(); _smtCore.recordImpliedValidSplit( validSplit ); applySplit( validSplit ); + if ( _soiManager ) _soiManager->removeCostComponentFromHeuristicCost( constraint ); ++_numPlConstraintsDisabledByValidSplits; @@ -3467,8 +3465,8 @@ bool Engine::validateAllBounds( double epsilon ) const bool res = true; for ( unsigned var = 0; var < _tableau->getN(); ++var ) - if ( !validateBounds( var, epsilon, BoundType::UPPER ) || - !validateBounds( var, epsilon, BoundType::LOWER ) ) + if ( !validateBounds( var, epsilon, Tightening::UB ) || + !validateBounds( var, epsilon, Tightening::LB ) ) res = false; return res; @@ -3507,14 +3505,14 @@ unsigned Engine::explainFailureWithTableau() _tableau->getTableauRow( i, &boundUpdateRow ); basicVar = boundUpdateRow._lhs; - if ( FloatUtils::gt( _boundManager.computeRowBound( boundUpdateRow, BoundType::LOWER ), + if ( FloatUtils::gt( _boundManager.computeRowBound( boundUpdateRow, Tightening::LB ), _boundManager.getUpperBound( basicVar ) ) && - explainAndCheckContradiction( basicVar, BoundType::LOWER, &boundUpdateRow ) ) + explainAndCheckContradiction( basicVar, Tightening::LB, &boundUpdateRow ) ) return basicVar; - if ( FloatUtils::lt( _boundManager.computeRowBound( boundUpdateRow, BoundType::UPPER ), + if ( FloatUtils::lt( _boundManager.computeRowBound( boundUpdateRow, Tightening::UB ), _boundManager.getLowerBound( basicVar ) ) && - explainAndCheckContradiction( basicVar, BoundType::UPPER, &boundUpdateRow ) ) + explainAndCheckContradiction( basicVar, Tightening::UB, &boundUpdateRow ) ) return basicVar; } } @@ -3545,10 +3543,10 @@ unsigned Engine::explainFailureWithCostFunction() // Check the basic variable has no slack if ( !( !curUpper && FloatUtils::gt( _boundManager.computeSparseRowBound( - *costRow, BoundType::LOWER, curBasicVar ), + *costRow, Tightening::LB, curBasicVar ), _boundManager.getUpperBound( curBasicVar ) ) ) && !( curUpper && FloatUtils::lt( _boundManager.computeSparseRowBound( - *costRow, BoundType::UPPER, curBasicVar ), + *costRow, Tightening::UB, curBasicVar ), _boundManager.getLowerBound( curBasicVar ) ) ) ) continue; @@ -3722,11 +3720,11 @@ const Vector Engine::computeContradiction( unsigned infeasibleVar ) cons SparseUnsortedList upperBoundExplanation( 0 ); SparseUnsortedList lowerBoundExplanation( 0 ); - if ( !_boundManager.isExplanationTrivial( infeasibleVar, BoundType::UPPER ) ) - upperBoundExplanation = _boundManager.getExplanation( infeasibleVar, BoundType::UPPER ); + if ( !_boundManager.isExplanationTrivial( infeasibleVar, Tightening::UB ) ) + upperBoundExplanation = _boundManager.getExplanation( infeasibleVar, Tightening::UB ); - if ( !_boundManager.isExplanationTrivial( infeasibleVar, BoundType::LOWER ) ) - lowerBoundExplanation = _boundManager.getExplanation( infeasibleVar, BoundType::LOWER ); + if ( !_boundManager.isExplanationTrivial( infeasibleVar, Tightening::LB ) ) + lowerBoundExplanation = _boundManager.getExplanation( infeasibleVar, Tightening::LB ); if ( upperBoundExplanation.empty() && lowerBoundExplanation.empty() ) return Vector( 0 ); diff --git a/src/engine/IBoundManager.h b/src/engine/IBoundManager.h index b72b481dea..1451c6f2cf 100644 --- a/src/engine/IBoundManager.h +++ b/src/engine/IBoundManager.h @@ -28,18 +28,14 @@ #include "List.h" #include "PiecewiseLinearFunctionType.h" +#include "Tightening.h" #include "Vector.h" #include -enum BoundType : unsigned { - LOWER = 0, - UPPER = 1, -}; class BoundExplainer; class SparseUnsortedList; class TableauRow; -class Tightening; class ITableau; class IRowBoundTightener; class IBoundManager @@ -134,9 +130,9 @@ class IBoundManager virtual bool addLemmaExplanationAndTightenBound( unsigned var, double value, - BoundType affectedVarBound, + Tightening::BoundType affectedVarBound, const List &causingVars, - BoundType causingVarBound, + Tightening::BoundType causingVarBound, PiecewiseLinearFunctionType constraintType ) = 0; /* diff --git a/src/engine/ITableau.h b/src/engine/ITableau.h index ca4d9dc1c3..b23c79ccec 100644 --- a/src/engine/ITableau.h +++ b/src/engine/ITableau.h @@ -25,6 +25,7 @@ class EntrySelectionStrategy; class Equation; class GurobiWrapper; +class IBoundManager; class ICostFunctionManager; class PiecewiseLinearCaseSplit; class SparseMatrix; diff --git a/src/engine/LeakyReluConstraint.cpp b/src/engine/LeakyReluConstraint.cpp index a09bda7cff..57d2beb297 100644 --- a/src/engine/LeakyReluConstraint.cpp +++ b/src/engine/LeakyReluConstraint.cpp @@ -38,6 +38,8 @@ LeakyReluConstraint::LeakyReluConstraint( unsigned b, unsigned f, double slope ) , _f( f ) , _slope( slope ) , _auxVarsInUse( false ) + , _activeTighteningRow( NULL ) + , _inactiveTighteningRow( NULL ) , _direction( PHASE_NOT_FIXED ) , _haveEliminatedVariables( false ) { @@ -46,7 +48,9 @@ LeakyReluConstraint::LeakyReluConstraint( unsigned b, unsigned f, double slope ) } LeakyReluConstraint::LeakyReluConstraint( const String &serializedLeakyRelu ) - : _haveEliminatedVariables( false ) + : _activeTighteningRow( NULL ) + , _inactiveTighteningRow( NULL ) + , _haveEliminatedVariables( false ) { String constraintType = serializedLeakyRelu.substring( 0, 10 ); ASSERT( constraintType == String( "leaky_relu" ) ); @@ -171,52 +175,71 @@ void LeakyReluConstraint::notifyLowerBound( unsigned variable, double bound ) !FloatUtils::gt( bound, getLowerBound( variable ) ) ) return; setLowerBound( variable, bound ); - checkIfLowerBoundUpdateFixesPhase( variable, bound ); if ( isActive() && _boundManager && !phaseFixed() ) { + bool proofs = _boundManager->shouldProduceProofs(); + + if ( proofs ) + { + createActiveTighteningRow(); + createInactiveTighteningRow(); + } + // A positive lower bound is always propagated between f and b if ( variable == _f || variable == _b ) { if ( FloatUtils::gte( bound, 0 ) ) { - // If we're in the active phase, aux should be 0 - if ( _auxVarsInUse ) + // If we're in the active phase, activeAux should be 0 + if ( proofs ) + _boundManager->addLemmaExplanationAndTightenBound( + _activeAux, 0, Tightening::UB, { variable }, Tightening::LB, getType() ); + else if ( !proofs && _auxVarsInUse ) _boundManager->tightenUpperBound( _activeAux, 0 ); // After updating to active phase unsigned partner = ( variable == _f ) ? _b : _f; - _boundManager->tightenLowerBound( partner, bound ); + _boundManager->tightenLowerBound( partner, bound, *_activeTighteningRow ); } - else if ( variable == _b ) + else if ( variable == _b && FloatUtils::isNegative( bound ) ) { - _boundManager->tightenLowerBound( _f, _slope * bound ); + _boundManager->tightenLowerBound( _f, _slope * bound, *_inactiveTighteningRow ); } - else if ( variable == _f ) + else if ( variable == _f && FloatUtils::isNegative( bound ) ) { - _boundManager->tightenLowerBound( _b, bound / _slope ); + if ( proofs ) + _boundManager->addLemmaExplanationAndTightenBound( + _b, bound / _slope, Tightening::LB, { _f }, Tightening::LB, getType() ); + else + _boundManager->tightenLowerBound( _b, bound / _slope, *_inactiveTighteningRow ); } } // A positive lower bound for activeAux means we're inactive: _inactiveAux <= 0 else if ( _auxVarsInUse && variable == _activeAux && bound > 0 ) { - _boundManager->tightenUpperBound( _inactiveAux, 0 ); + // Inactive phase + if ( proofs ) + _boundManager->addLemmaExplanationAndTightenBound( + _inactiveAux, 0, Tightening::UB, { _activeAux }, Tightening::LB, getType() ); + else + _boundManager->tightenUpperBound( _inactiveAux, 0 ); } // A positive lower bound for inactiveAux means we're active: _activeAux <= 0 else if ( _auxVarsInUse && variable == _inactiveAux && bound > 0 ) { - _boundManager->tightenUpperBound( _activeAux, 0 ); - } - - // Also, if for some reason we only know a negative lower bound for - // f, we attempt to tighten it to 0 - else if ( bound < 0 && variable == _f ) - { - _boundManager->tightenLowerBound( _f, 0 ); + // Active phase + if ( proofs ) + _boundManager->addLemmaExplanationAndTightenBound( + _activeAux, 0, Tightening::UB, { _inactiveAux }, Tightening::LB, getType() ); + else + _boundManager->tightenUpperBound( _activeAux, 0 ); } } + + checkIfLowerBoundUpdateFixesPhase( variable, bound ); } void LeakyReluConstraint::notifyUpperBound( unsigned variable, double bound ) @@ -229,28 +252,51 @@ void LeakyReluConstraint::notifyUpperBound( unsigned variable, double bound ) return; setUpperBound( variable, bound ); - checkIfUpperBoundUpdateFixesPhase( variable, bound ); if ( isActive() && _boundManager && !phaseFixed() ) { - // A positive lower bound is always propagated between f and b + bool proofs = _boundManager->shouldProduceProofs(); + + if ( proofs ) + { + createActiveTighteningRow(); + createInactiveTighteningRow(); + } + + // A positive upper bound is always propagated between f and b if ( variable == _f || variable == _b ) { if ( !FloatUtils::isNegative( bound ) ) { unsigned partner = ( variable == _f ) ? _b : _f; - _boundManager->tightenUpperBound( partner, bound ); + if ( proofs ) + _boundManager->addLemmaExplanationAndTightenBound( + partner, bound, Tightening::UB, { variable }, Tightening::UB, getType() ); + else + _boundManager->tightenUpperBound( partner, bound ); } else if ( variable == _b ) { - _boundManager->tightenUpperBound( _f, _slope * bound ); + // A negative upper bound of b implies inactive phase + if ( proofs && _auxVarsInUse ) + _boundManager->addLemmaExplanationAndTightenBound( + _inactiveAux, 0, Tightening::UB, { _b }, Tightening::UB, getType() ); + + _boundManager->tightenUpperBound( _f, _slope * bound, *_inactiveTighteningRow ); } else if ( variable == _f ) { - _boundManager->tightenUpperBound( _b, bound / _slope ); + // A negative upper bound of f implies inactive phase as well + if ( proofs && _auxVarsInUse ) + _boundManager->addLemmaExplanationAndTightenBound( + _inactiveAux, 0, Tightening::UB, { _f }, Tightening::UB, getType() ); + + _boundManager->tightenUpperBound( _b, bound / _slope, *_inactiveTighteningRow ); } } } + + checkIfUpperBoundUpdateFixesPhase( variable, bound ); } bool LeakyReluConstraint::participatingVariable( unsigned variable ) const @@ -904,8 +950,60 @@ void LeakyReluConstraint::updateScoreBasedOnPolarity() _score = std::abs( computePolarity() ); } -// Not supporting proof production yet -void LeakyReluConstraint::addTableauAuxVar( unsigned /* tableauAuxVar */, - unsigned /* constraintAuxVar */ ) +const List LeakyReluConstraint::getNativeAuxVars() const +{ + if ( _auxVarsInUse ) + return { _activeAux, _inactiveAux }; + return {}; +} + +void LeakyReluConstraint::addTableauAuxVar( unsigned tableauAuxVar, unsigned constraintAuxVar ) { + ASSERT( constraintAuxVar == _inactiveAux || constraintAuxVar == _activeAux ); + if ( _tableauAuxVars.size() == 2 ) + return; + + if ( constraintAuxVar == _inactiveAux ) + { + _tableauAuxVars.append( tableauAuxVar ); + ASSERT( _tableauAuxVars.back() == tableauAuxVar ); + } + else + { + _tableauAuxVars.appendHead( tableauAuxVar ); + ASSERT( _tableauAuxVars.front() == tableauAuxVar ); + } +} + +void LeakyReluConstraint::createActiveTighteningRow() +{ + // Create the row only when needed and when not already created + if ( !_boundManager->getBoundExplainer() || _activeTighteningRow || !_auxVarsInUse || + _tableauAuxVars.empty() ) + return; + _activeTighteningRow = std::unique_ptr( new TableauRow( 3 ) ); + + // f = b + aux + counterpart (an additional aux variable of tableau) + _activeTighteningRow->_lhs = _f; + _activeTighteningRow->_row[0] = TableauRow::Entry( _b, 1 ); + _activeTighteningRow->_row[1] = TableauRow::Entry( _activeAux, 1 ); + _activeTighteningRow->_row[2] = TableauRow::Entry( _tableauAuxVars.front(), 1 ); + _activeTighteningRow->_scalar = 0; +} + +void LeakyReluConstraint::createInactiveTighteningRow() +{ + // Create the row only when needed and when not already created + if ( !_boundManager->getBoundExplainer() || _inactiveTighteningRow || !_auxVarsInUse || + _tableauAuxVars.empty() ) + return; + + _inactiveTighteningRow = std::unique_ptr( new TableauRow( 3 ) ); + + // f = b + aux + counterpart (an additional aux variable of tableau) + _inactiveTighteningRow->_lhs = _f; + _inactiveTighteningRow->_row[0] = TableauRow::Entry( _b, _slope ); + _inactiveTighteningRow->_row[1] = TableauRow::Entry( _inactiveAux, 1 ); + _inactiveTighteningRow->_row[2] = TableauRow::Entry( _tableauAuxVars.back(), 1 ); + _inactiveTighteningRow->_scalar = 0; } diff --git a/src/engine/LeakyReluConstraint.h b/src/engine/LeakyReluConstraint.h index 11737510a4..08cbc4ac18 100644 --- a/src/engine/LeakyReluConstraint.h +++ b/src/engine/LeakyReluConstraint.h @@ -246,6 +246,9 @@ class LeakyReluConstraint : public PiecewiseLinearConstraint unsigned _activeAux; unsigned _inactiveAux; + std::shared_ptr _activeTighteningRow; + std::shared_ptr _inactiveTighteningRow; + /* Denotes which case split to handle first. And which phase status to repair a LeakyRelu into. @@ -265,6 +268,20 @@ class LeakyReluConstraint : public PiecewiseLinearConstraint bool haveOutOfBoundVariables() const; void addTableauAuxVar( unsigned tableauAuxVar, unsigned constraintAuxVar ) override; + + const List getNativeAuxVars() const override; + + /* + Create a the tableau row used for explaining bound tightening caused by the constraint's active + phase stored in _activeTighteningRow + */ + void createActiveTighteningRow(); + + /* + Create a the tableau row used for explaining bound tightening caused by the constraint's + inactive phase stored in _inactiveTighteningRow + */ + void createInactiveTighteningRow(); }; #endif // __LeakyReluConstraint_h__ diff --git a/src/engine/MaxConstraint.cpp b/src/engine/MaxConstraint.cpp index 232e2790d5..5c8060e9bd 100644 --- a/src/engine/MaxConstraint.cpp +++ b/src/engine/MaxConstraint.cpp @@ -720,6 +720,7 @@ void MaxConstraint::createElementTighteningRow( unsigned element ) _elementToTighteningRow[element]->_row[1] = TableauRow::Entry( _elementToAux[element], 1 ); _elementToTighteningRow[element]->_row[2] = TableauRow::Entry( _elementToTableauAux[element], 1 ); + _elementToTighteningRow[element]->_scalar = 0; } const List MaxConstraint::getNativeAuxVars() const @@ -777,9 +778,9 @@ void MaxConstraint::applyTightenings( const List &tightenings ) cons if ( tightening._variable == _f ) _boundManager->addLemmaExplanationAndTightenBound( _f, tightening._value, - BoundType::UPPER, + Tightening::UB, getElements(), - BoundType::UPPER, + Tightening::UB, getType() ); else { diff --git a/src/engine/PrecisionRestorer.cpp b/src/engine/PrecisionRestorer.cpp index aa1b1f6254..35e1c9a8e9 100644 --- a/src/engine/PrecisionRestorer.cpp +++ b/src/engine/PrecisionRestorer.cpp @@ -70,8 +70,8 @@ void PrecisionRestorer::restorePrecision( IEngine &engine, lowerBoundsBackup[i] = tableau.getLowerBound( i ); upperBoundsBackup[i] = tableau.getUpperBound( i ); - groundUpperBoundsBackup[i] = engine.getGroundBound( i, BoundType::UPPER ); - groundLowerBoundsBackup[i] = engine.getGroundBound( i, BoundType::LOWER ); + groundUpperBoundsBackup[i] = engine.getGroundBound( i, Tightening::UB ); + groundLowerBoundsBackup[i] = engine.getGroundBound( i, Tightening::LB ); } } diff --git a/src/engine/ReluConstraint.cpp b/src/engine/ReluConstraint.cpp index 539db6c919..b58ced7157 100644 --- a/src/engine/ReluConstraint.cpp +++ b/src/engine/ReluConstraint.cpp @@ -173,7 +173,7 @@ void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) // If we're in the active phase, aux should be 0 if ( proofs && _auxVarInUse ) _boundManager->addLemmaExplanationAndTightenBound( - _aux, 0, BoundType::UPPER, { variable }, BoundType::LOWER, getType() ); + _aux, 0, Tightening::UB, { variable }, Tightening::LB, getType() ); else if ( !proofs && _auxVarInUse ) _boundManager->tightenUpperBound( _aux, 0 ); @@ -187,7 +187,7 @@ void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) { if ( proofs && _auxVarInUse ) _boundManager->addLemmaExplanationAndTightenBound( - _aux, 0, BoundType::UPPER, { variable }, BoundType::LOWER, getType() ); + _aux, 0, Tightening::UB, { variable }, Tightening::LB, getType() ); else if ( !proofs && _auxVarInUse ) _boundManager->tightenUpperBound( _aux, 0 ); } @@ -198,7 +198,7 @@ void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) { if ( proofs ) _boundManager->addLemmaExplanationAndTightenBound( - _f, 0, BoundType::UPPER, { variable }, BoundType::LOWER, getType() ); + _f, 0, Tightening::UB, { variable }, Tightening::LB, getType() ); else _boundManager->tightenUpperBound( _f, 0 ); @@ -215,12 +215,8 @@ void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) if ( _phaseStatus == RELU_PHASE_INACTIVE ) _boundManager->tightenUpperBound( _aux, -bound, *_tighteningRow ); else if ( _phaseStatus == PHASE_NOT_FIXED ) - _boundManager->addLemmaExplanationAndTightenBound( _aux, - -bound, - BoundType::UPPER, - { variable }, - BoundType::LOWER, - getType() ); + _boundManager->addLemmaExplanationAndTightenBound( + _aux, -bound, Tightening::UB, { variable }, Tightening::LB, getType() ); } else _boundManager->tightenUpperBound( _aux, -bound ); @@ -232,7 +228,7 @@ void ReluConstraint::notifyLowerBound( unsigned variable, double newBound ) { if ( proofs ) _boundManager->addLemmaExplanationAndTightenBound( - _f, 0, BoundType::LOWER, { variable }, BoundType::LOWER, getType() ); + _f, 0, Tightening::LB, { variable }, Tightening::LB, getType() ); else _boundManager->tightenLowerBound( _f, 0 ); } @@ -276,12 +272,8 @@ void ReluConstraint::notifyUpperBound( unsigned variable, double newBound ) else { if ( FloatUtils::isZero( bound ) ) - _boundManager->addLemmaExplanationAndTightenBound( _b, - 0, - BoundType::UPPER, - { variable }, - BoundType::UPPER, - getType() ); + _boundManager->addLemmaExplanationAndTightenBound( + _b, 0, Tightening::UB, { variable }, Tightening::UB, getType() ); // Bound cannot be negative if ReLU is inactive else if ( FloatUtils::isNegative( bound ) ) throw InfeasibleQueryException(); @@ -297,7 +289,7 @@ void ReluConstraint::notifyUpperBound( unsigned variable, double newBound ) // If b has a non-positive upper bound, f's upper bound is 0 if ( proofs ) _boundManager->addLemmaExplanationAndTightenBound( - _f, 0, BoundType::UPPER, { variable }, BoundType::UPPER, getType() ); + _f, 0, Tightening::UB, { variable }, Tightening::UB, getType() ); else _boundManager->tightenUpperBound( _f, 0 ); @@ -317,9 +309,9 @@ void ReluConstraint::notifyUpperBound( unsigned variable, double newBound ) else if ( _phaseStatus == PHASE_NOT_FIXED ) _boundManager->addLemmaExplanationAndTightenBound( _f, bound, - BoundType::UPPER, + Tightening::UB, { variable }, - BoundType::UPPER, + Tightening::UB, getType() ); } else @@ -335,12 +327,8 @@ void ReluConstraint::notifyUpperBound( unsigned variable, double newBound ) else { if ( FloatUtils::isZero( bound ) ) - _boundManager->addLemmaExplanationAndTightenBound( _b, - 0, - BoundType::LOWER, - { variable }, - BoundType::UPPER, - getType() ); + _boundManager->addLemmaExplanationAndTightenBound( + _b, 0, Tightening::LB, { variable }, Tightening::UB, getType() ); // Bound cannot be negative if ReLU is active else if ( FloatUtils::isNegative( bound ) ) throw InfeasibleQueryException(); @@ -1083,6 +1071,7 @@ void ReluConstraint::createTighteningRow() _tighteningRow->_row[0] = TableauRow::Entry( _b, 1 ); _tighteningRow->_row[1] = TableauRow::Entry( _aux, 1 ); _tighteningRow->_row[2] = TableauRow::Entry( _tableauAuxVars.back(), 1 ); + _tighteningRow->_scalar = 0; } const List ReluConstraint::getNativeAuxVars() const diff --git a/src/engine/SignConstraint.cpp b/src/engine/SignConstraint.cpp index 4ab8f6b7d9..bb39b1cd29 100644 --- a/src/engine/SignConstraint.cpp +++ b/src/engine/SignConstraint.cpp @@ -403,9 +403,9 @@ void SignConstraint::notifyLowerBound( unsigned variable, double bound ) throw InfeasibleQueryException(); _boundManager->addLemmaExplanationAndTightenBound( - _f, 1, BoundType::LOWER, { variable }, BoundType::LOWER, getType() ); + _f, 1, Tightening::LB, { variable }, Tightening::LB, getType() ); _boundManager->addLemmaExplanationAndTightenBound( - _b, 0, BoundType::LOWER, { variable }, BoundType::LOWER, getType() ); + _b, 0, Tightening::LB, { variable }, Tightening::LB, getType() ); } else { @@ -421,7 +421,7 @@ void SignConstraint::notifyLowerBound( unsigned variable, double bound ) { if ( _boundManager->shouldProduceProofs() ) _boundManager->addLemmaExplanationAndTightenBound( - _f, 1, BoundType::LOWER, { variable }, BoundType::LOWER, getType() ); + _f, 1, Tightening::LB, { variable }, Tightening::LB, getType() ); else _boundManager->tightenLowerBound( _f, 1 ); } @@ -453,9 +453,9 @@ void SignConstraint::notifyUpperBound( unsigned variable, double bound ) throw InfeasibleQueryException(); _boundManager->addLemmaExplanationAndTightenBound( - _f, -1, BoundType::UPPER, { variable }, BoundType::UPPER, getType() ); + _f, -1, Tightening::UB, { variable }, Tightening::UB, getType() ); _boundManager->addLemmaExplanationAndTightenBound( - _b, 0, BoundType::UPPER, { variable }, BoundType::UPPER, getType() ); + _b, 0, Tightening::UB, { variable }, Tightening::UB, getType() ); } else { @@ -471,7 +471,7 @@ void SignConstraint::notifyUpperBound( unsigned variable, double bound ) { if ( _boundManager->shouldProduceProofs() ) _boundManager->addLemmaExplanationAndTightenBound( - _f, -1, BoundType::UPPER, { variable }, BoundType::UPPER, getType() ); + _f, -1, Tightening::UB, { variable }, Tightening::UB, getType() ); else _boundManager->tightenUpperBound( _f, -1 ); } diff --git a/src/engine/Tightening.h b/src/engine/Tightening.h index b2ff1952d5..2a6baf1bac 100644 --- a/src/engine/Tightening.h +++ b/src/engine/Tightening.h @@ -16,7 +16,7 @@ #ifndef __Tightening_h__ #define __Tightening_h__ -#include "ITableau.h" +#include class Tightening { diff --git a/src/engine/tests/MockBoundManager.h b/src/engine/tests/MockBoundManager.h index d98b3993f5..f9f6362c40 100644 --- a/src/engine/tests/MockBoundManager.h +++ b/src/engine/tests/MockBoundManager.h @@ -265,9 +265,9 @@ class MockBoundManager : public IBoundManager bool addLemmaExplanationAndTightenBound( unsigned /* var */, double /* value */, - BoundType /* affectedVarBound */, + Tightening::BoundType /* affectedVarBound */, const List & /* causingVar */, - BoundType /* causingVarBound */, + Tightening::BoundType /* causingVarBound */, PiecewiseLinearFunctionType /* constraintType */ ) { return true; diff --git a/src/nlr/LayerOwner.h b/src/nlr/LayerOwner.h index 9799c9474d..c4c5502080 100644 --- a/src/nlr/LayerOwner.h +++ b/src/nlr/LayerOwner.h @@ -16,6 +16,7 @@ #ifndef __LayerOwner_h__ #define __LayerOwner_h__ +#include "ITableau.h" #include "Tightening.h" namespace NLR { diff --git a/src/proofs/Checker.cpp b/src/proofs/Checker.cpp index 7f6c9b2d55..3efdfab9a3 100644 --- a/src/proofs/Checker.cpp +++ b/src/proofs/Checker.cpp @@ -108,8 +108,7 @@ bool Checker::checkNode( const UnsatCertificateNode *node ) if ( childrenSplitConstraint ) childrenSplitConstraint->setPhaseStatus( PHASE_NOT_FIXED ); - if ( childrenSplitConstraint && - childrenSplitConstraint->getType() == PiecewiseLinearFunctionType::DISJUNCTION ) + if ( childrenSplitConstraint && childrenSplitConstraint->getType() == DISJUNCTION ) { for ( const auto &child : node->getChildren() ) ( (DisjunctionConstraint *)childrenSplitConstraint ) @@ -132,8 +131,7 @@ bool Checker::checkNode( const UnsatCertificateNode *node ) void Checker::fixChildSplitPhase( UnsatCertificateNode *child, PiecewiseLinearConstraint *childrenSplitConstraint ) { - if ( childrenSplitConstraint && - childrenSplitConstraint->getType() == PiecewiseLinearFunctionType::RELU ) + if ( childrenSplitConstraint && childrenSplitConstraint->getType() == RELU ) { List tightenings = child->getSplit().getBoundTightenings(); if ( tightenings.front()._type == Tightening::LB || @@ -142,8 +140,7 @@ void Checker::fixChildSplitPhase( UnsatCertificateNode *child, else childrenSplitConstraint->setPhaseStatus( RELU_PHASE_INACTIVE ); } - else if ( childrenSplitConstraint && - childrenSplitConstraint->getType() == PiecewiseLinearFunctionType::SIGN ) + else if ( childrenSplitConstraint && childrenSplitConstraint->getType() == SIGN ) { List tightenings = child->getSplit().getBoundTightenings(); if ( tightenings.front()._type == Tightening::LB ) @@ -151,8 +148,7 @@ void Checker::fixChildSplitPhase( UnsatCertificateNode *child, else childrenSplitConstraint->setPhaseStatus( SIGN_PHASE_NEGATIVE ); } - else if ( childrenSplitConstraint && - childrenSplitConstraint->getType() == PiecewiseLinearFunctionType::ABSOLUTE_VALUE ) + else if ( childrenSplitConstraint && childrenSplitConstraint->getType() == ABSOLUTE_VALUE ) { List tightenings = child->getSplit().getBoundTightenings(); if ( tightenings.front()._type == Tightening::LB ) @@ -160,8 +156,7 @@ void Checker::fixChildSplitPhase( UnsatCertificateNode *child, else childrenSplitConstraint->setPhaseStatus( ABS_PHASE_NEGATIVE ); } - else if ( childrenSplitConstraint && - childrenSplitConstraint->getType() == PiecewiseLinearFunctionType::MAX ) + else if ( childrenSplitConstraint && childrenSplitConstraint->getType() == MAX ) { List tightenings = child->getSplit().getBoundTightenings(); if ( tightenings.size() == 2 ) @@ -173,10 +168,18 @@ void Checker::fixChildSplitPhase( UnsatCertificateNode *child, childrenSplitConstraint->setPhaseStatus( phase ); } } - else if ( childrenSplitConstraint && - childrenSplitConstraint->getType() == PiecewiseLinearFunctionType::DISJUNCTION ) + else if ( childrenSplitConstraint && childrenSplitConstraint->getType() == DISJUNCTION ) ( (DisjunctionConstraint *)childrenSplitConstraint ) ->removeFeasibleDisjunct( child->getSplit() ); + else if ( childrenSplitConstraint && childrenSplitConstraint->getType() == LEAKY_RELU ) + { + List tightenings = child->getSplit().getBoundTightenings(); + if ( tightenings.front()._type == Tightening::LB && + tightenings.back()._type == Tightening::LB ) + childrenSplitConstraint->setPhaseStatus( RELU_PHASE_ACTIVE ); + else + childrenSplitConstraint->setPhaseStatus( RELU_PHASE_INACTIVE ); + } } bool Checker::checkContradiction( const UnsatCertificateNode *node ) const @@ -209,10 +212,9 @@ bool Checker::checkAllPLCExplanations( const UnsatCertificateNode *node, double for ( const auto &plcLemma : node->getPLCLemmas() ) { PiecewiseLinearConstraint *matchedConstraint = NULL; - BoundType affectedVarBound = plcLemma->getAffectedVarBound(); - double explainedBound = affectedVarBound == BoundType::UPPER - ? FloatUtils::infinity() - : FloatUtils::negativeInfinity(); + Tightening::BoundType affectedVarBound = plcLemma->getAffectedVarBound(); + double explainedBound = affectedVarBound == Tightening::UB ? FloatUtils::infinity() + : FloatUtils::negativeInfinity(); const List causingVars = plcLemma->getCausingVars(); unsigned affectedVar = plcLemma->getAffectedVar(); List participatingVars; @@ -253,21 +255,23 @@ bool Checker::checkAllPLCExplanations( const UnsatCertificateNode *node, double explainedBound = checkAbsLemma( *plcLemma, *matchedConstraint, epsilon ); else if ( constraintType == MAX ) explainedBound = checkMaxLemma( *plcLemma, *matchedConstraint ); + else if ( constraintType == LEAKY_RELU ) + explainedBound = checkLeakyReluLemma( *plcLemma, *matchedConstraint, epsilon ); else return false; // If so, update the ground bounds and continue - auto &temp = affectedVarBound == BoundType::UPPER ? _groundUpperBounds : _groundLowerBounds; - bool isTighter = affectedVarBound == BoundType::UPPER + auto &temp = affectedVarBound == Tightening::UB ? _groundUpperBounds : _groundLowerBounds; + bool isTighter = affectedVarBound == Tightening::UB ? FloatUtils::lt( explainedBound, temp[affectedVar] ) : FloatUtils::gt( explainedBound, temp[affectedVar] ); if ( isTighter ) { temp[affectedVar] = explainedBound; ASSERT( !_upperBoundChanges.empty() && !_lowerBoundChanges.empty() ); - affectedVarBound == BoundType::UPPER ? _upperBoundChanges.top().insert( affectedVar ) - : _lowerBoundChanges.top().insert( affectedVar ); + affectedVarBound == Tightening::UB ? _upperBoundChanges.top().insert( affectedVar ) + : _lowerBoundChanges.top().insert( affectedVar ); } } return true; @@ -297,6 +301,8 @@ Checker::getCorrespondingConstraint( const List &split constraint = getCorrespondingMaxConstraint( splits ); if ( !constraint ) constraint = getCorrespondingDisjunctionConstraint( splits ); + if ( !constraint ) + constraint = getCorrespondingLeakyReluConstraint( splits ); return constraint; } @@ -332,23 +338,24 @@ void Checker::writeToFile() for ( auto &constraint : _problemConstraints ) { auto vars = constraint->getParticipatingVariables(); + Vector conVars( vars.begin(), vars.end() ); + if ( constraint->getType() == RELU ) { - b = vars.front(); - vars.popBack(); - f = vars.back(); + b = conVars[0]; + f = conVars[1]; SmtLibWriter::addReLUConstraint( b, f, constraint->getPhaseStatus(), leafInstance ); } else if ( constraint->getType() == SIGN ) { - b = vars.front(); - f = vars.back(); + b = conVars[0]; + f = conVars[1]; SmtLibWriter::addSignConstraint( b, f, constraint->getPhaseStatus(), leafInstance ); } else if ( constraint->getType() == ABSOLUTE_VALUE ) { - b = vars.front(); - f = vars.back(); + b = conVars[0]; + f = conVars[1]; SmtLibWriter::addAbsConstraint( b, f, constraint->getPhaseStatus(), leafInstance ); } else if ( constraint->getType() == MAX ) @@ -375,6 +382,14 @@ void Checker::writeToFile() else if ( constraint->getType() == DISJUNCTION ) SmtLibWriter::addDisjunctionConstraint( ( (DisjunctionConstraint *)constraint )->getFeasibleDisjuncts(), leafInstance ); + else if ( constraint->getType() == LEAKY_RELU ) + { + b = conVars[0]; + f = conVars[1]; + double slope = ( (LeakyReluConstraint *)constraint )->getSlope(); + SmtLibWriter::addLeakyReLUConstraint( + b, f, slope, constraint->getPhaseStatus(), leafInstance ); + } } SmtLibWriter::addFooter( leafInstance ); @@ -432,33 +447,31 @@ Checker::getCorrespondingReluConstraint( const List &s ? secondSplitTightenings : firstSplitTightenings; - unsigned b = activeSplit.front()._variable; - unsigned aux = activeSplit.back()._variable; - unsigned f = inactiveSplit.back()._variable; - // Aux var may or may not be used if ( ( activeSplit.size() != 2 && activeSplit.size() != 1 ) || inactiveSplit.size() != 2 ) return NULL; - if ( FloatUtils::areDisequal( inactiveSplit.back()._value, 0.0 ) || - FloatUtils::areDisequal( inactiveSplit.front()._value, 0.0 ) || - FloatUtils::areDisequal( activeSplit.back()._value, 0.0 ) || - FloatUtils::areDisequal( activeSplit.front()._value, 0.0 ) ) - return NULL; - // Check that f = b + aux corresponds to a problem constraints - PiecewiseLinearConstraint *correspondingConstraint = NULL; for ( auto &constraint : _problemConstraints ) { - auto constraintVars = constraint->getParticipatingVariables(); - if ( constraint->getType() == PiecewiseLinearFunctionType::RELU && - constraintVars.front() == b && constraintVars.exists( f ) && - ( activeSplit.size() == 1 || constraintVars.back() == aux ) ) - correspondingConstraint = constraint; + if ( constraint->getType() == RELU ) + { + auto constraintVars = constraint->getParticipatingVariables(); + unsigned b = constraintVars.front(); + unsigned aux = constraintVars.back(); + constraintVars.popBack(); + unsigned f = constraintVars.back(); + if ( inactiveSplit.exists( Tightening( b, 0.0, Tightening::UB ) ) && + inactiveSplit.exists( Tightening( f, 0.0, Tightening::UB ) ) && + activeSplit.exists( Tightening( b, 0.0, Tightening::LB ) ) && + ( activeSplit.size() == 1 || + activeSplit.exists( Tightening( aux, 0.0, Tightening::UB ) ) ) ) + // Return the constraint for which f=relu(b) + return constraint; + } } - // Return the constraint for which f=relu(b) - return correspondingConstraint; + return NULL; } PiecewiseLinearConstraint * @@ -496,17 +509,16 @@ Checker::getCorrespondingSignConstraint( const List &s return NULL; // Check that f=sign(b) corresponds to a problem constraints - PiecewiseLinearConstraint *correspondingConstraint = NULL; for ( auto &constraint : _problemConstraints ) { auto constraintVars = constraint->getParticipatingVariables(); - if ( constraint->getType() == PiecewiseLinearFunctionType::SIGN && - constraintVars.back() == b && constraintVars.front() == f ) - correspondingConstraint = constraint; + if ( constraint->getType() == SIGN && constraintVars.back() == b && + constraintVars.front() == f ) + // Return the constraint for which f=sign(b) + return constraint; } - // Return the constraint for which f=sign(b) - return correspondingConstraint; + return NULL; } PiecewiseLinearConstraint * @@ -545,18 +557,16 @@ Checker::getCorrespondingAbsConstraint( const List &sp return NULL; // Check that f=sign(b) corresponds to a problem constraints - PiecewiseLinearConstraint *correspondingConstraint = NULL; for ( auto &constraint : _problemConstraints ) { auto constraintVars = constraint->getParticipatingVariables(); - if ( constraint->getType() == PiecewiseLinearFunctionType::ABSOLUTE_VALUE && - constraintVars.front() == b && constraintVars.back() == negAux && - constraintVars.exists( posAux ) ) - correspondingConstraint = constraint; + if ( constraint->getType() == ABSOLUTE_VALUE && constraintVars.front() == b && + constraintVars.back() == negAux && constraintVars.exists( posAux ) ) + // Return the constraint for which f=abs(b) + return constraint; } - // Return the constraint for which f=abs(b) - return correspondingConstraint; + return NULL; } PiecewiseLinearConstraint * @@ -627,6 +637,57 @@ Checker::getCorrespondingDisjunctionConstraint( const List &splits ) +{ + if ( splits.size() != 2 ) + return NULL; + + auto firstSplitTightenings = splits.front().getBoundTightenings(); + auto secondSplitTightenings = splits.back().getBoundTightenings(); + + // Find the LB tightening, its var is b + auto &activeSplit = firstSplitTightenings.front()._type == Tightening::LB + ? firstSplitTightenings + : secondSplitTightenings; + auto &inactiveSplit = firstSplitTightenings.front()._type == Tightening::LB + ? secondSplitTightenings + : firstSplitTightenings; + + // Aux var may or may not be used in either splits, but sizes are always the same + if ( !( activeSplit.size() == 3 && inactiveSplit.size() == 3 ) && + !( activeSplit.size() == 2 && inactiveSplit.size() == 2 ) ) + return NULL; + + // Check that f=LeakyRelu(b) corresponds to a problem constraints + for ( auto &constraint : _problemConstraints ) + { + if ( constraint->getType() == LEAKY_RELU ) + { + auto constraintVars = constraint->getParticipatingVariables(); + unsigned b = constraintVars.front(); + unsigned inactiveAux = constraintVars.back(); + constraintVars.popBack(); + unsigned activeAux = constraintVars.back(); + constraintVars.popBack(); + unsigned f = constraintVars.back(); + if ( inactiveSplit.exists( Tightening( b, 0.0, Tightening::UB ) ) && + inactiveSplit.exists( Tightening( f, 0.0, Tightening::UB ) ) && + ( incativeSplit.size() == 2 || + inactiveSplit.exists( Tightening( inactiveAux, 0.0, Tightening::UB ) ) ) && + activeSplit.exists( Tightening( b, 0.0, Tightening::LB ) ) && + activeSplit.exists( Tightening( f, 0.0, Tightening::LB ) ) && + ( activeSplit.size() == 2 || + activeSplit.exists( Tightening( activeAux, 0.0, Tightening::UB ) ) ) ) + + // Return the constraint for which f = LeakyRelu(b) + return constraint; + } + } + + return NULL; +} + double Checker::checkReluLemma( const PLCLemma &expl, PiecewiseLinearConstraint &constraint, double epsilon ) @@ -638,18 +699,17 @@ double Checker::checkReluLemma( const PLCLemma &expl, unsigned affectedVar = expl.getAffectedVar(); double bound = expl.getBound(); const List &explanations = expl.getExplanations(); - BoundType causingVarBound = expl.getCausingVarBound(); - BoundType affectedVarBound = expl.getAffectedVarBound(); + Tightening::BoundType causingVarBound = expl.getCausingVarBound(); + Tightening::BoundType affectedVarBound = expl.getAffectedVarBound(); ASSERT( explanations.size() == 1 ); - double explainedBound = - UNSATCertificateUtils::computeBound( causingVar, - causingVarBound == BoundType::UPPER, - explanations.back(), - _initialTableau, - _groundUpperBounds.data(), - _groundLowerBounds.data(), - _groundUpperBounds.size() ); + double explainedBound = UNSATCertificateUtils::computeBound( causingVar, + causingVarBound == Tightening::UB, + explanations.back(), + _initialTableau, + _groundUpperBounds.data(), + _groundLowerBounds.data(), + _groundUpperBounds.size() ); List constraintVars = constraint.getParticipatingVariables(); ASSERT( constraintVars.size() == 3 ); @@ -660,14 +720,14 @@ double Checker::checkReluLemma( const PLCLemma &expl, unsigned aux = conVec[2]; // If explanation is phase fixing, mark it - if ( ( affectedVarBound == BoundType::LOWER && affectedVar == f && + if ( ( affectedVarBound == Tightening::LB && affectedVar == f && FloatUtils::isPositive( bound ) ) || - ( affectedVarBound == BoundType::UPPER && affectedVar == aux && + ( affectedVarBound == Tightening::UB && affectedVar == aux && FloatUtils::isZero( bound ) ) ) constraint.setPhaseStatus( RELU_PHASE_ACTIVE ); - else if ( ( affectedVarBound == BoundType::LOWER && affectedVar == aux && + else if ( ( affectedVarBound == Tightening::LB && affectedVar == aux && FloatUtils::isPositive( bound ) ) || - ( affectedVarBound == BoundType::UPPER && affectedVar == f && + ( affectedVarBound == Tightening::UB && affectedVar == f && FloatUtils::isZero( bound ) ) ) constraint.setPhaseStatus( RELU_PHASE_INACTIVE ); @@ -676,66 +736,65 @@ double Checker::checkReluLemma( const PLCLemma &expl, // (since an explanation can explain tighter bounds), and an epsilon sized error is tolerated. // If lb of b is non negative, then ub of aux is 0 - if ( causingVar == b && causingVarBound == BoundType::LOWER && affectedVar == aux && - affectedVarBound == BoundType::UPPER && - !FloatUtils::isNegative( explainedBound + epsilon ) ) + if ( causingVar == b && causingVarBound == Tightening::LB && affectedVar == aux && + affectedVarBound == Tightening::UB && !FloatUtils::isNegative( explainedBound + epsilon ) ) return 0; // If lb of f is positive, then ub if aux is 0 - else if ( causingVar == f && causingVarBound == BoundType::LOWER && affectedVar == aux && - affectedVarBound == BoundType::UPPER && + else if ( causingVar == f && causingVarBound == Tightening::LB && affectedVar == aux && + affectedVarBound == Tightening::UB && FloatUtils::isPositive( explainedBound + epsilon ) ) return 0; // If lb of b is negative x, then ub of aux is -x - else if ( causingVar == b && causingVarBound == BoundType::LOWER && affectedVar == aux && - affectedVarBound == BoundType::UPPER && + else if ( causingVar == b && causingVarBound == Tightening::LB && affectedVar == aux && + affectedVarBound == Tightening::UB && FloatUtils::isNegative( explainedBound - epsilon ) ) return -explainedBound; // If lb of aux is positive, then ub of f is 0 - else if ( causingVar == aux && causingVarBound == BoundType::LOWER && affectedVar == f && - affectedVarBound == BoundType::UPPER && + else if ( causingVar == aux && causingVarBound == Tightening::LB && affectedVar == f && + affectedVarBound == Tightening::UB && FloatUtils::isPositive( explainedBound + epsilon ) ) return 0; // If lb of f is negative, then it is 0 - else if ( causingVar == f && causingVarBound == BoundType::LOWER && affectedVar == f && - affectedVarBound == BoundType::LOWER && + else if ( causingVar == f && causingVarBound == Tightening::LB && affectedVar == f && + affectedVarBound == Tightening::LB && FloatUtils::isNegative( explainedBound - epsilon ) ) return 0; // Propagate ub from f to b - else if ( causingVar == f && causingVarBound == BoundType::UPPER && affectedVar == b && - affectedVarBound == BoundType::UPPER ) + else if ( causingVar == f && causingVarBound == Tightening::UB && affectedVar == b && + affectedVarBound == Tightening::UB ) return explainedBound; // If ub of b is non positive, then ub of f is 0 - else if ( causingVar == b && causingVarBound == BoundType::UPPER && affectedVar == f && - affectedVarBound == BoundType::UPPER && + else if ( causingVar == b && causingVarBound == Tightening::UB && affectedVar == f && + affectedVarBound == Tightening::UB && !FloatUtils::isPositive( explainedBound - epsilon ) ) return 0; // If ub of b is non positive x, then lb of aux is -x - else if ( causingVar == b && causingVarBound == BoundType::UPPER && affectedVar == aux && - affectedVarBound == BoundType::LOWER && + else if ( causingVar == b && causingVarBound == Tightening::UB && affectedVar == aux && + affectedVarBound == Tightening::LB && !FloatUtils::isPositive( explainedBound - epsilon ) ) return -explainedBound; // If ub of b is positive, then propagate to f ( positivity of explained bound is not checked // since negative explained ub can always explain positive bound ) - else if ( causingVar == b && causingVarBound == BoundType::UPPER && affectedVar == f && - affectedVarBound == BoundType::UPPER && + else if ( causingVar == b && causingVarBound == Tightening::UB && affectedVar == f && + affectedVarBound == Tightening::UB && FloatUtils::isPositive( explainedBound + epsilon ) ) return explainedBound; // If ub of aux is x, then lb of b is -x - else if ( causingVar == aux && causingVarBound == BoundType::UPPER && affectedVar == b && - affectedVarBound == BoundType::LOWER ) + else if ( causingVar == aux && causingVarBound == Tightening::UB && affectedVar == b && + affectedVarBound == Tightening::LB ) return -explainedBound; - return affectedVarBound == BoundType::UPPER ? FloatUtils::infinity() - : FloatUtils::negativeInfinity(); + return affectedVarBound == Tightening::UB ? FloatUtils::infinity() + : FloatUtils::negativeInfinity(); } double Checker::checkSignLemma( const PLCLemma &expl, @@ -749,18 +808,17 @@ double Checker::checkSignLemma( const PLCLemma &expl, unsigned affectedVar = expl.getAffectedVar(); double bound = expl.getBound(); const List &explanations = expl.getExplanations(); - BoundType causingVarBound = expl.getCausingVarBound(); - BoundType affectedVarBound = expl.getAffectedVarBound(); + Tightening::BoundType causingVarBound = expl.getCausingVarBound(); + Tightening::BoundType affectedVarBound = expl.getAffectedVarBound(); ASSERT( explanations.size() == 1 ); - double explainedBound = - UNSATCertificateUtils::computeBound( causingVar, - causingVarBound == BoundType::UPPER, - explanations.front(), - _initialTableau, - _groundUpperBounds.data(), - _groundLowerBounds.data(), - _groundUpperBounds.size() ); + double explainedBound = UNSATCertificateUtils::computeBound( causingVar, + causingVarBound == Tightening::UB, + explanations.front(), + _initialTableau, + _groundUpperBounds.data(), + _groundLowerBounds.data(), + _groundUpperBounds.size() ); List constraintVars = constraint.getParticipatingVariables(); ASSERT( constraintVars.size() == 2 ); @@ -768,14 +826,14 @@ double Checker::checkSignLemma( const PLCLemma &expl, unsigned f = constraintVars.back(); // Any explanation is phase fixing - if ( ( affectedVarBound == BoundType::LOWER && affectedVar == f && + if ( ( affectedVarBound == Tightening::LB && affectedVar == f && FloatUtils::gt( bound, -1 ) ) || - ( affectedVarBound == BoundType::LOWER && affectedVar == b && + ( affectedVarBound == Tightening::LB && affectedVar == b && !FloatUtils::isNegative( bound ) ) ) constraint.setPhaseStatus( SIGN_PHASE_POSITIVE ); - else if ( ( affectedVarBound == BoundType::UPPER && affectedVar == f && + else if ( ( affectedVarBound == Tightening::UB && affectedVar == f && FloatUtils::gt( bound, 1 ) ) || - ( affectedVarBound == BoundType::UPPER && affectedVar == b && + ( affectedVarBound == Tightening::UB && affectedVar == b && FloatUtils::isNegative( bound ) ) ) constraint.setPhaseStatus( SIGN_PHASE_NEGATIVE ); @@ -784,43 +842,43 @@ double Checker::checkSignLemma( const PLCLemma &expl, // (since an explanation can explain tighter bounds), and an epsilon sized error is tolerated. // If lb of f is > -1, then lb of f is 1 - if ( causingVar == f && causingVarBound == BoundType::LOWER && affectedVar == f && - affectedVarBound == BoundType::LOWER && FloatUtils::areEqual( bound, 1 ) && + if ( causingVar == f && causingVarBound == Tightening::LB && affectedVar == f && + affectedVarBound == Tightening::LB && FloatUtils::areEqual( bound, 1 ) && FloatUtils::gte( explainedBound + epsilon, -1 ) ) return 1; // If lb of f is > -1, then lb of b is 0 - else if ( causingVar == f && causingVarBound == BoundType::LOWER && affectedVar == b && - affectedVarBound == BoundType::LOWER && FloatUtils::isZero( bound ) && + else if ( causingVar == f && causingVarBound == Tightening::LB && affectedVar == b && + affectedVarBound == Tightening::LB && FloatUtils::isZero( bound ) && FloatUtils::gte( explainedBound + epsilon, -1 ) ) return 0; // If lb of b is non negative, then lb of f is 1 - else if ( causingVar == b && causingVarBound == BoundType::LOWER && affectedVar == f && - affectedVarBound == BoundType::LOWER && FloatUtils::areEqual( bound, 1 ) && + else if ( causingVar == b && causingVarBound == Tightening::LB && affectedVar == f && + affectedVarBound == Tightening::LB && FloatUtils::areEqual( bound, 1 ) && !FloatUtils::isNegative( explainedBound + epsilon ) ) return 1; // If ub of f is < 1, then ub of f is -1 - else if ( causingVar == f && causingVarBound == BoundType::UPPER && affectedVar == f && - affectedVarBound == BoundType::UPPER && FloatUtils::areEqual( bound, -1 ) && + else if ( causingVar == f && causingVarBound == Tightening::UB && affectedVar == f && + affectedVarBound == Tightening::UB && FloatUtils::areEqual( bound, -1 ) && FloatUtils::lte( explainedBound - epsilon, 1 ) ) return -1; // If ub of f is < 1, then ub of b is 0 - else if ( causingVar == f && causingVarBound == BoundType::UPPER && affectedVar == b && - affectedVarBound == BoundType::UPPER && FloatUtils::isZero( bound ) && + else if ( causingVar == f && causingVarBound == Tightening::UB && affectedVar == b && + affectedVarBound == Tightening::UB && FloatUtils::isZero( bound ) && FloatUtils::lte( explainedBound - epsilon, 1 ) ) return 0; // If ub of b is negative, then ub of f is -1 - else if ( causingVar == b && causingVarBound == BoundType::UPPER && affectedVar == f && - affectedVarBound == BoundType::UPPER && FloatUtils::areEqual( bound, -1 ) && + else if ( causingVar == b && causingVarBound == Tightening::UB && affectedVar == f && + affectedVarBound == Tightening::UB && FloatUtils::areEqual( bound, -1 ) && FloatUtils::isNegative( explainedBound - epsilon ) ) return -1; - return affectedVarBound == BoundType::UPPER ? FloatUtils::infinity() - : FloatUtils::negativeInfinity(); + return affectedVarBound == Tightening::UB ? FloatUtils::infinity() + : FloatUtils::negativeInfinity(); } double Checker::checkAbsLemma( const PLCLemma &expl, @@ -830,8 +888,8 @@ double Checker::checkAbsLemma( const PLCLemma &expl, ASSERT( constraint.getType() == ABSOLUTE_VALUE && expl.getConstraintType() == ABSOLUTE_VALUE ); ASSERT( expl.getCausingVars().size() == 2 || expl.getCausingVars().size() == 1 ); - BoundType causingVarBound = expl.getCausingVarBound(); - BoundType affectedVarBound = expl.getAffectedVarBound(); + Tightening::BoundType causingVarBound = expl.getCausingVarBound(); + Tightening::BoundType affectedVarBound = expl.getAffectedVarBound(); unsigned affectedVar = expl.getAffectedVar(); double bound = expl.getBound(); List constraintVars = constraint.getParticipatingVariables(); @@ -860,7 +918,7 @@ double Checker::checkAbsLemma( const PLCLemma &expl, { double explainedUpperBound = UNSATCertificateUtils::computeBound( firstCausingVar, - BoundType::UPPER, + Tightening::UB, firstExplanation, _initialTableau, _groundUpperBounds.data(), @@ -868,7 +926,7 @@ double Checker::checkAbsLemma( const PLCLemma &expl, _groundUpperBounds.size() ); double explainedLowerBound = UNSATCertificateUtils::computeBound( secondCausingVar, - BoundType::LOWER, + Tightening::LB, secondExplanation, _initialTableau, _groundUpperBounds.data(), @@ -876,12 +934,12 @@ double Checker::checkAbsLemma( const PLCLemma &expl, _groundUpperBounds.size() ); // b is always the causing var, affecting the ub of f - if ( affectedVar == f && firstCausingVar == b && affectedVarBound == BoundType::UPPER && + if ( affectedVar == f && firstCausingVar == b && affectedVarBound == Tightening::UB && bound > 0 ) return FloatUtils::max( explainedUpperBound, -explainedLowerBound ); - return affectedVarBound == BoundType::UPPER ? FloatUtils::infinity() - : FloatUtils::negativeInfinity(); + return affectedVarBound == Tightening::UB ? FloatUtils::infinity() + : FloatUtils::negativeInfinity(); } // Cases of a phase-fixing lemma else @@ -889,7 +947,7 @@ double Checker::checkAbsLemma( const PLCLemma &expl, ASSERT( firstCausingVar == b && secondCausingVar == f ); double explainedBBound = UNSATCertificateUtils::computeBound( firstCausingVar, - causingVarBound == BoundType::UPPER, + causingVarBound == Tightening::UB, firstExplanation, _initialTableau, _groundUpperBounds.data(), @@ -897,28 +955,28 @@ double Checker::checkAbsLemma( const PLCLemma &expl, _groundUpperBounds.size() ); double explainedFBound = UNSATCertificateUtils::computeBound( secondCausingVar, - BoundType::LOWER, + Tightening::LB, secondExplanation, _initialTableau, _groundUpperBounds.data(), _groundLowerBounds.data(), _groundUpperBounds.size() ); - if ( affectedVar == neg && causingVarBound == BoundType::UPPER && + if ( affectedVar == neg && causingVarBound == Tightening::UB && explainedFBound > explainedBBound - epsilon && bound == 0 ) { constraint.setPhaseStatus( ABS_PHASE_NEGATIVE ); return 0; } - else if ( affectedVar == pos && causingVarBound == BoundType::LOWER && + else if ( affectedVar == pos && causingVarBound == Tightening::LB && explainedFBound > -explainedBBound - epsilon && bound == 0 ) { constraint.setPhaseStatus( ABS_PHASE_POSITIVE ); return 0; } - return affectedVarBound == BoundType::UPPER ? FloatUtils::infinity() - : FloatUtils::negativeInfinity(); + return affectedVarBound == Tightening::UB ? FloatUtils::infinity() + : FloatUtils::negativeInfinity(); } } @@ -926,42 +984,41 @@ double Checker::checkAbsLemma( const PLCLemma &expl, const List &explanation = expl.getExplanations(); unsigned causingVar = expl.getCausingVars().front(); - double explainedBound = - UNSATCertificateUtils::computeBound( causingVar, - causingVarBound == BoundType::UPPER, - explanation.front(), - _initialTableau, - _groundUpperBounds.data(), - _groundLowerBounds.data(), - _groundUpperBounds.size() ); + double explainedBound = UNSATCertificateUtils::computeBound( causingVar, + causingVarBound == Tightening::UB, + explanation.front(), + _initialTableau, + _groundUpperBounds.data(), + _groundLowerBounds.data(), + _groundUpperBounds.size() ); - if ( affectedVar == pos && causingVar == b && causingVarBound == BoundType::LOWER && + if ( affectedVar == pos && causingVar == b && causingVarBound == Tightening::LB && !FloatUtils::isNegative( explainedBound + epsilon ) && bound == 0 ) { constraint.setPhaseStatus( ABS_PHASE_POSITIVE ); return 0; } - else if ( affectedVar == neg && causingVar == b && causingVarBound == BoundType::UPPER && + else if ( affectedVar == neg && causingVar == b && causingVarBound == Tightening::UB && !FloatUtils::isPositive( explainedBound - epsilon ) && bound == 0 ) { constraint.setPhaseStatus( ABS_PHASE_NEGATIVE ); return 0; } - else if ( affectedVar == neg && causingVar == pos && causingVarBound == BoundType::LOWER && + else if ( affectedVar == neg && causingVar == pos && causingVarBound == Tightening::LB && FloatUtils::isPositive( explainedBound + epsilon ) && bound == 0 ) { constraint.setPhaseStatus( ABS_PHASE_NEGATIVE ); return 0; } - else if ( affectedVar == pos && causingVar == neg && causingVarBound == BoundType::LOWER && + else if ( affectedVar == pos && causingVar == neg && causingVarBound == Tightening::LB && FloatUtils::isPositive( explainedBound + epsilon ) && bound == 0 ) { constraint.setPhaseStatus( ABS_PHASE_POSITIVE ); return 0; } - return affectedVarBound == BoundType::UPPER ? FloatUtils::infinity() - : FloatUtils::negativeInfinity(); + return affectedVarBound == Tightening::UB ? FloatUtils::infinity() + : FloatUtils::negativeInfinity(); } double Checker::checkMaxLemma( const PLCLemma &expl, PiecewiseLinearConstraint &constraint ) @@ -973,10 +1030,10 @@ double Checker::checkMaxLemma( const PLCLemma &expl, PiecewiseLinearConstraint & const List causingVars = expl.getCausingVars(); unsigned affectedVar = expl.getAffectedVar(); const List &allExplanations = expl.getExplanations(); - BoundType causingVarBound = expl.getCausingVarBound(); - BoundType affectedVarBound = expl.getAffectedVarBound(); - double explainedBound = affectedVarBound == BoundType::UPPER ? FloatUtils::infinity() - : FloatUtils::negativeInfinity(); + Tightening::BoundType causingVarBound = expl.getCausingVarBound(); + Tightening::BoundType affectedVarBound = expl.getAffectedVarBound(); + double explainedBound = affectedVarBound == Tightening::UB ? FloatUtils::infinity() + : FloatUtils::negativeInfinity(); unsigned f = maxConstraint->getF(); @@ -997,7 +1054,7 @@ double Checker::checkMaxLemma( const PLCLemma &expl, PiecewiseLinearConstraint & for ( const auto &explanation : allExplanations ) { explainedBound = UNSATCertificateUtils::computeBound( causingVarsVec[counter], - BoundType::UPPER, + Tightening::UB, explanation, _initialTableau, _groundUpperBounds.data(), @@ -1007,10 +1064,116 @@ double Checker::checkMaxLemma( const PLCLemma &expl, PiecewiseLinearConstraint & ++counter; } - if ( causingVarBound == BoundType::UPPER && affectedVar == f && - affectedVarBound == BoundType::UPPER ) + if ( causingVarBound == Tightening::UB && affectedVar == f && + affectedVarBound == Tightening::UB ) return maxBound; - return affectedVarBound == BoundType::UPPER ? FloatUtils::infinity() - : FloatUtils::negativeInfinity(); -} \ No newline at end of file + return affectedVarBound == Tightening::UB ? FloatUtils::infinity() + : FloatUtils::negativeInfinity(); +} + + +double Checker::checkLeakyReluLemma( const PLCLemma &expl, + PiecewiseLinearConstraint &constraint, + double epsilon ) +{ + ASSERT( constraint.getType() == LEAKY_RELU && expl.getConstraintType() == LEAKY_RELU && + epsilon > 0 ); + ASSERT( expl.getCausingVars().size() == 1 ); + + unsigned causingVar = expl.getCausingVars().front(); + unsigned affectedVar = expl.getAffectedVar(); + double bound = expl.getBound(); + const List &explanations = expl.getExplanations(); + Tightening::BoundType causingVarBound = expl.getCausingVarBound(); + Tightening::BoundType affectedVarBound = expl.getAffectedVarBound(); + ASSERT( explanations.size() == 1 ); + + double explainedBound = UNSATCertificateUtils::computeBound( causingVar, + causingVarBound == Tightening::UB, + explanations.back(), + _initialTableau, + _groundUpperBounds.data(), + _groundLowerBounds.data(), + _groundUpperBounds.size() ); + + List constraintVars = constraint.getParticipatingVariables(); + ASSERT( constraintVars.size() == 4 ); + + Vector conVec( constraintVars.begin(), constraintVars.end() ); + unsigned b = conVec[0]; + unsigned f = conVec[1]; + unsigned activeAux = conVec[2]; + unsigned inactiveAux = conVec[3]; + + double slope = ( (LeakyReluConstraint *)&constraint )->getSlope(); + + // If explanation is phase fixing, mark it + if ( ( affectedVarBound == Tightening::LB && affectedVar == f && + !FloatUtils::isNegative( bound ) ) || + ( affectedVarBound == Tightening::LB && affectedVar == b && + !FloatUtils::isNegative( bound ) ) || + ( affectedVarBound == Tightening::LB && affectedVar == inactiveAux && + FloatUtils::isPositive( bound ) ) || + ( affectedVarBound == Tightening::UB && affectedVar == activeAux && + FloatUtils::isZero( bound ) ) ) + constraint.setPhaseStatus( RELU_PHASE_ACTIVE ); + else if ( ( affectedVarBound == Tightening::UB && affectedVar == f && + FloatUtils::isNegative( bound ) ) || + ( affectedVarBound == Tightening::UB && affectedVar == b && + FloatUtils::isNegative( bound ) ) || + ( affectedVarBound == Tightening::LB && affectedVar == activeAux && + FloatUtils::isPositive( bound ) ) || + ( affectedVarBound == Tightening::UB && affectedVar == inactiveAux && + FloatUtils::isZero( bound ) ) ) + constraint.setPhaseStatus( RELU_PHASE_INACTIVE ); + + // Make sure the explanation is explained using a LeakyReLU bound tightening. Cases are matching + // each rule in ReluConstraint.cpp We allow explained bound to be tighter than the ones recorded + // (since an explanation can explain tighter bounds), and an epsilon sized error is tolerated. + + // If lb of b or f is positive, then ub of active aux is 0 + if ( ( causingVar == b || causingVar == f ) && causingVarBound == Tightening::LB && + affectedVar == activeAux && affectedVarBound == Tightening::UB && + FloatUtils::isPositive( explainedBound + epsilon ) ) + return 0; + + // If lb of f is negative, then lb of b is bound / slope + if ( causingVar == f && causingVarBound == Tightening::LB && affectedVar == b && + affectedVarBound == Tightening::LB && FloatUtils::isNegative( bound ) && + FloatUtils::gte( explainedBound + epsilon, bound * slope ) ) + return explainedBound / slope; + + // If lb of active aux is positive, then ub of inactive aux is 0 + if ( causingVar == activeAux && causingVarBound == Tightening::LB && + affectedVar == inactiveAux && affectedVarBound == Tightening::UB && + FloatUtils::isPositive( explainedBound + epsilon ) ) + return 0; + + // ... and vice versa + if ( causingVar == inactiveAux && causingVarBound == Tightening::LB && + affectedVar == activeAux && affectedVarBound == Tightening::UB && + FloatUtils::isPositive( explainedBound + epsilon ) ) + return 0; + + // If ub of f is positive, propagate to b + if ( causingVar == f && causingVarBound == Tightening::UB && affectedVar == b && + affectedVarBound == Tightening::UB && FloatUtils::isPositive( bound ) && + FloatUtils::lte( explainedBound - epsilon, bound ) ) + return explainedBound; + + // ... and vice versa + if ( causingVar == b && causingVarBound == Tightening::UB && affectedVar == f && + affectedVarBound == Tightening::UB && FloatUtils::isPositive( bound ) && + FloatUtils::lte( explainedBound - epsilon, bound ) ) + return explainedBound; + + // If ub of f or b is negative, then ub of inactive aux is 0 + if ( ( causingVar == b || causingVar == f ) && causingVarBound == Tightening::UB && + affectedVar == inactiveAux && affectedVarBound == Tightening::UB && + FloatUtils::isNegative( explainedBound - epsilon ) ) + return 0; + + return affectedVarBound == Tightening::UB ? FloatUtils::infinity() + : FloatUtils::negativeInfinity(); +} diff --git a/src/proofs/Checker.h b/src/proofs/Checker.h index b3d1bf09ad..e6ebcce0ef 100644 --- a/src/proofs/Checker.h +++ b/src/proofs/Checker.h @@ -17,9 +17,11 @@ #include "AbsoluteValueConstraint.h" #include "DisjunctionConstraint.h" +#include "LeakyReluConstraint.h" #include "MaxConstraint.h" #include "Set.h" #include "Stack.h" +#include "Tightening.h" #include "UnsatCertificateNode.h" /* @@ -95,7 +97,12 @@ class Checker Return a change in the ground bounds caused by a Max constraint. */ double checkMaxLemma( const PLCLemma &expl, PiecewiseLinearConstraint &constraint ); - + /* + Return a change in the ground bounds caused by a ReLU constraint. + */ + double checkLeakyReluLemma( const PLCLemma &expl, + PiecewiseLinearConstraint &constraint, + double epsilon ); /* Checks a contradiction */ @@ -147,6 +154,12 @@ class Checker PiecewiseLinearConstraint * getCorrespondingDisjunctionConstraint( const List &splits ); + /* + Return a pointer to a LeakyReLU problem constraint representing the split + */ + PiecewiseLinearConstraint * + getCorrespondingLeakyReluConstraint( const List &splits ); + /* Return true iff a list of splits represents a splits over a single variable */ diff --git a/src/proofs/JsonWriter.cpp b/src/proofs/JsonWriter.cpp index a82dadde99..78020a14f6 100644 --- a/src/proofs/JsonWriter.cpp +++ b/src/proofs/JsonWriter.cpp @@ -14,7 +14,6 @@ #include "JsonWriter.h" -#include const char JsonWriter::AFFECTED_VAR[] = "\"affVar\" : "; const char JsonWriter::AFFECTED_BOUND[] = "\"affBound\" : "; @@ -64,8 +63,8 @@ void JsonWriter::writeProofToJson( const UnsatCertificateNode *root, // Add initial query information to the instance writeInitialTableau( initialTableau, explanationSize, jsonLines ); - writeBounds( upperBounds, UPPER, jsonLines ); - writeBounds( lowerBounds, LOWER, jsonLines ); + writeBounds( upperBounds, Tightening::UB, jsonLines ); + writeBounds( lowerBounds, Tightening::LB, jsonLines ); writePiecewiseLinearConstraints( problemConstraints, jsonLines ); // Add UNSAT certificate proof tree object to the instance @@ -80,10 +79,10 @@ void JsonWriter::writeProofToJson( const UnsatCertificateNode *root, } void JsonWriter::writeBounds( const Vector &bounds, - BoundType isUpper, + Tightening::BoundType isUpper, List &instance ) { - String boundsString = isUpper == UPPER ? UPPER_BOUNDS : LOWER_BOUNDS; + String boundsString = isUpper == Tightening::UB ? UPPER_BOUNDS : LOWER_BOUNDS; boundsString += convertDoubleArrayToString( bounds.data(), bounds.size() ); @@ -257,8 +256,8 @@ void JsonWriter::writePLCLemmas( const List> &PLCExpla instance.append( String( "{" ) ); instance.append( String( AFFECTED_VAR ) + std::to_string( lemma->getAffectedVar() ) + String( ", " ) ); - affectedBoundType = - lemma->getAffectedVarBound() == UPPER ? String( UPPER_BOUND ) : String( LOWER_BOUND ); + affectedBoundType = lemma->getAffectedVarBound() == Tightening::UB ? String( UPPER_BOUND ) + : String( LOWER_BOUND ); instance.append( String( AFFECTED_BOUND ) + affectedBoundType + String( ", " ) ); instance.append( String( BOUND ) + convertDoubleToString( lemma->getBound() ) ); @@ -282,8 +281,9 @@ void JsonWriter::writePLCLemmas( const List> &PLCExpla instance.append( " ]\n" ); } - causingBoundType = lemma->getCausingVarBound() == UPPER ? String( UPPER_BOUND ) - : String( LOWER_BOUND ); + causingBoundType = lemma->getCausingVarBound() == Tightening::UB + ? String( UPPER_BOUND ) + : String( LOWER_BOUND ); instance.append( String( CAUSING_BOUND ) + causingBoundType + String( ", " ) ); instance.append( String( CONSTRAINT ) + std::to_string( lemma->getConstraintType() ) + String( ",\n" ) ); diff --git a/src/proofs/JsonWriter.h b/src/proofs/JsonWriter.h index cff6bc4cbe..65747f59b8 100644 --- a/src/proofs/JsonWriter.h +++ b/src/proofs/JsonWriter.h @@ -26,6 +26,8 @@ #include "UnsatCertificateNode.h" #include "Vector.h" +#include + /* A class responsible for writing Marabou proof instances into JSON format */ @@ -98,8 +100,9 @@ class JsonWriter /* Write variables bounds to a JSON String */ - static void - writeBounds( const Vector &bounds, BoundType isUpper, List &instance ); + static void writeBounds( const Vector &bounds, + Tightening::BoundType isUpper, + List &instance ); /* Write a list a piecewise-linear constraints to a JSON String diff --git a/src/proofs/PlcLemma.cpp b/src/proofs/PlcLemma.cpp index 57e04e4672..c4edcca92d 100644 --- a/src/proofs/PlcLemma.cpp +++ b/src/proofs/PlcLemma.cpp @@ -17,8 +17,8 @@ PLCLemma::PLCLemma( const List &causingVars, unsigned affectedVar, double bound, - BoundType causingVarBound, - BoundType affectedVarBound, + Tightening::BoundType causingVarBound, + Tightening::BoundType affectedVarBound, const Vector &explanations, PiecewiseLinearFunctionType constraintType ) : _causingVars( causingVars ) @@ -77,12 +77,12 @@ double PLCLemma::getBound() const return _bound; } -BoundType PLCLemma::getCausingVarBound() const +Tightening::BoundType PLCLemma::getCausingVarBound() const { return _causingVarBound; } -BoundType PLCLemma::getAffectedVarBound() const +Tightening::BoundType PLCLemma::getAffectedVarBound() const { return _affectedVarBound; } diff --git a/src/proofs/PlcLemma.h b/src/proofs/PlcLemma.h index 6b41608c78..909752489e 100644 --- a/src/proofs/PlcLemma.h +++ b/src/proofs/PlcLemma.h @@ -18,6 +18,7 @@ #include "PiecewiseLinearConstraint.h" #include "PiecewiseLinearFunctionType.h" #include "SparseUnsortedList.h" +#include "Tightening.h" #include "Vector.h" /* @@ -29,8 +30,8 @@ class PLCLemma PLCLemma( const List &causingVars, unsigned affectedVar, double bound, - BoundType causingVarBound, - BoundType affectedVarBound, + Tightening::BoundType causingVarBound, + Tightening::BoundType affectedVarBound, const Vector &explanation, PiecewiseLinearFunctionType constraintType ); @@ -42,8 +43,8 @@ class PLCLemma const List &getCausingVars() const; unsigned getAffectedVar() const; double getBound() const; - BoundType getCausingVarBound() const; - BoundType getAffectedVarBound() const; + Tightening::BoundType getCausingVarBound() const; + Tightening::BoundType getAffectedVarBound() const; const List &getExplanations() const; PiecewiseLinearFunctionType getConstraintType() const; @@ -51,8 +52,8 @@ class PLCLemma const List _causingVars; unsigned _affectedVar; double _bound; - BoundType _causingVarBound; - BoundType _affectedVarBound; + Tightening::BoundType _causingVarBound; + Tightening::BoundType _affectedVarBound; List _explanations; PiecewiseLinearFunctionType _constraintType; }; diff --git a/src/proofs/SmtLibWriter.cpp b/src/proofs/SmtLibWriter.cpp index f4ef0db1b2..e81bb8d833 100644 --- a/src/proofs/SmtLibWriter.cpp +++ b/src/proofs/SmtLibWriter.cpp @@ -14,8 +14,6 @@ #include "SmtLibWriter.h" -#include - const unsigned SmtLibWriter::SMTLIBWRITER_PRECISION = (unsigned)std::log10( 1 / GlobalConfiguration::DEFAULT_EPSILON_FOR_COMPARISONS ); @@ -186,6 +184,27 @@ void SmtLibWriter::addDisjunctionConstraint( const List &instance ) +{ + if ( status == PHASE_NOT_FIXED ) + instance.append( String( "( assert ( = x" + std::to_string( f ) + " ( ite ( >= x" + + std::to_string( b ) + " 0 ) x" + std::to_string( b ) + " (* x" + + std::to_string( b ) + " " ) + + signedValue( slope ) + ") ) ) )\n" ); + else if ( status == RELU_PHASE_ACTIVE ) + instance.append( "( assert ( = x" + std::to_string( f ) + " x" + std::to_string( b ) + + " ) )\n" ); + else if ( status == RELU_PHASE_INACTIVE ) + instance.append( + String( "( assert ( = x" + std::to_string( f ) + " x" + std::to_string( b ) ) + + signedValue( slope ) + ") )\n" ); +} + void SmtLibWriter::addTableauRow( const SparseUnsortedList &row, List &instance ) { unsigned size = row.getSize(); diff --git a/src/proofs/SmtLibWriter.h b/src/proofs/SmtLibWriter.h index 7bb0a564bf..e3d3bf0d80 100644 --- a/src/proofs/SmtLibWriter.h +++ b/src/proofs/SmtLibWriter.h @@ -22,6 +22,8 @@ #include "SparseUnsortedList.h" #include "Vector.h" +#include + /* * A class responsible for writing instances of LP+PLC into SMTLIB format */ @@ -76,6 +78,15 @@ class SmtLibWriter static void addDisjunctionConstraint( const List &disjuncts, List &instance ); + /* + Adds a line representing a LeakyReLU constraint, in SMTLIB format, to the SMTLIB instance + */ + static void addLeakyReLUConstraint( unsigned b, + unsigned f, + double slope, + const PhaseStatus status, + List &instance ); + /* Adds a line representing a Tableau Row, in SMTLIB format, to the SMTLIB instance */ diff --git a/src/proofs/UnsatCertificateUtils.cpp b/src/proofs/UnsatCertificateUtils.cpp index f82dfe8377..88f4569451 100644 --- a/src/proofs/UnsatCertificateUtils.cpp +++ b/src/proofs/UnsatCertificateUtils.cpp @@ -153,5 +153,5 @@ double UNSATCertificateUtils::computeCombinationUpperBound( const SparseUnsorted const Set UNSATCertificateUtils::getSupportedActivations() { - return { RELU, SIGN, ABSOLUTE_VALUE, MAX, DISJUNCTION }; + return { RELU, SIGN, ABSOLUTE_VALUE, MAX, DISJUNCTION, LEAKY_RELU }; } diff --git a/src/proofs/tests/Test_UnsatCertificateNode.h b/src/proofs/tests/Test_UnsatCertificateNode.h index db778cb373..75a1d250a2 100644 --- a/src/proofs/tests/Test_UnsatCertificateNode.h +++ b/src/proofs/tests/Test_UnsatCertificateNode.h @@ -83,11 +83,11 @@ class UnsatCertificateNodeTestSuite : public CxxTest::TestSuite Vector emptyVec; auto explanation1 = std::shared_ptr( - new PLCLemma( { 1 }, 1, 0, BoundType::UPPER, BoundType::UPPER, emptyVec, RELU ) ); + new PLCLemma( { 1 }, 1, 0, Tightening::UB, Tightening::UB, emptyVec, RELU ) ); auto explanation2 = std::shared_ptr( - new PLCLemma( { 1 }, 1, -1, BoundType::UPPER, BoundType::UPPER, emptyVec, RELU ) ); + new PLCLemma( { 1 }, 1, -1, Tightening::UB, Tightening::UB, emptyVec, RELU ) ); auto explanation3 = std::shared_ptr( - new PLCLemma( { 1 }, 1, -4, BoundType::UPPER, BoundType::UPPER, emptyVec, RELU ) ); + new PLCLemma( { 1 }, 1, -4, Tightening::UB, Tightening::UB, emptyVec, RELU ) ); TS_ASSERT( root.getPLCLemmas().empty() ); From cd0c64e3d70f536f7a3e8666026c2a4c8f9a0df1 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 5 Mar 2024 20:29:19 +0200 Subject: [PATCH 141/165] Minor --- .clang-format | 1 - src/proofs/Checker.cpp | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.clang-format b/.clang-format index 75e127a2a7..a81ea37061 100644 --- a/.clang-format +++ b/.clang-format @@ -26,7 +26,6 @@ BraceWrapping: BeforeCatch: 'true' BeforeElse: 'true' BeforeWhile: 'true' -BreakInheritanceList: 'BeforeComma' ColumnLimit: '100' CompactNamespaces: 'false' ConstructorInitializerAllOnOneLineOrOnePerLine: 'false' diff --git a/src/proofs/Checker.cpp b/src/proofs/Checker.cpp index 3efdfab9a3..53586eb164 100644 --- a/src/proofs/Checker.cpp +++ b/src/proofs/Checker.cpp @@ -674,11 +674,11 @@ Checker::getCorrespondingLeakyReluConstraint( const List Date: Tue, 5 Mar 2024 20:32:04 +0200 Subject: [PATCH 142/165] smtlibTest --- src/proofs/SmtLibWriter.cpp | 6 +++--- src/proofs/tests/Test_SmtLibWriter.h | 6 ++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/proofs/SmtLibWriter.cpp b/src/proofs/SmtLibWriter.cpp index e81bb8d833..0d5e7250b8 100644 --- a/src/proofs/SmtLibWriter.cpp +++ b/src/proofs/SmtLibWriter.cpp @@ -193,16 +193,16 @@ void SmtLibWriter::addLeakyReLUConstraint( unsigned b, { if ( status == PHASE_NOT_FIXED ) instance.append( String( "( assert ( = x" + std::to_string( f ) + " ( ite ( >= x" + - std::to_string( b ) + " 0 ) x" + std::to_string( b ) + " (* x" + + std::to_string( b ) + " 0 ) x" + std::to_string( b ) + " ( * x" + std::to_string( b ) + " " ) + - signedValue( slope ) + ") ) ) )\n" ); + signedValue( -slope ) + ") ) ) )\n" ); else if ( status == RELU_PHASE_ACTIVE ) instance.append( "( assert ( = x" + std::to_string( f ) + " x" + std::to_string( b ) + " ) )\n" ); else if ( status == RELU_PHASE_INACTIVE ) instance.append( String( "( assert ( = x" + std::to_string( f ) + " x" + std::to_string( b ) ) + - signedValue( slope ) + ") )\n" ); + signedValue( -slope ) + ") )\n" ); } void SmtLibWriter::addTableauRow( const SparseUnsortedList &row, List &instance ) diff --git a/src/proofs/tests/Test_SmtLibWriter.h b/src/proofs/tests/Test_SmtLibWriter.h index 05f035d58a..dc5b433d8a 100644 --- a/src/proofs/tests/Test_SmtLibWriter.h +++ b/src/proofs/tests/Test_SmtLibWriter.h @@ -43,6 +43,7 @@ class SmtLibWriterTestSuite : public CxxTest::TestSuite SmtLibWriter::addReLUConstraint( 0, 1, PHASE_NOT_FIXED, instance ); SmtLibWriter::addSignConstraint( 0, 1, PHASE_NOT_FIXED, instance ); SmtLibWriter::addAbsConstraint( 0, 1, PHASE_NOT_FIXED, instance ); + SmtLibWriter::addLeakyReluConstraint( 0, 1, 0.1, PHASE_NOT_FIXED, instance ); SmtLibWriter::addMaxConstraint( 1, { 2, 3, 4 }, PHASE_NOT_FIXED, 0, instance ); @@ -156,6 +157,11 @@ class SmtLibWriterTestSuite : public CxxTest::TestSuite expectedLine = "( assert ( = x1 ( ite ( >= x0 0 ) x0 ( - x0 ) ) ) )"; TS_ASSERT_EQUALS( line, expectedLine ); + // LeakyRelu + line = file->readLine( '\n' ); + expectedLine = "( assert ( = x1 ( ite ( >= x0 0 ) x0 ( * x0 ( - 0.1 ) ) ) ) ) ) )"; + TS_ASSERT_EQUALS( line, expectedLine ); + // Max line = file->readLine( '\n' ); expectedLine = String( "( assert ( => ( and ( >= x2 x3 ) ( >= x2 x4 ) ) ( = x1 x2 ) ) )" ); From c223b22d71dabe77a17c03c1e39bacf30e8e9ff5 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 5 Mar 2024 20:48:24 +0200 Subject: [PATCH 143/165] minor --- src/engine/BoundManager.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/engine/BoundManager.h b/src/engine/BoundManager.h index 54aabe4783..03308d1a5d 100644 --- a/src/engine/BoundManager.h +++ b/src/engine/BoundManager.h @@ -257,9 +257,9 @@ class BoundManager : public IBoundManager */ bool addLemmaExplanationAndTightenBound( unsigned var, double value, - BoundType affectedVarBound, + Tightening::BoundType affectedVarBound, const List &causingVars, - BoundType causingVarBound, + Tightening::BoundType causingVarBound, PiecewiseLinearFunctionType constraintType ); /* From 592c8b4fbbd7f36b4c8c35f59c54d716d0f7247c Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 5 Mar 2024 20:56:47 +0200 Subject: [PATCH 144/165] Update Checker.cpp --- src/proofs/Checker.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/proofs/Checker.cpp b/src/proofs/Checker.cpp index 53586eb164..8d14e4113c 100644 --- a/src/proofs/Checker.cpp +++ b/src/proofs/Checker.cpp @@ -673,7 +673,7 @@ Checker::getCorrespondingLeakyReluConstraint( const List Date: Tue, 5 Mar 2024 21:19:37 +0200 Subject: [PATCH 145/165] minor --- src/proofs/tests/Test_SmtLibWriter.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/proofs/tests/Test_SmtLibWriter.h b/src/proofs/tests/Test_SmtLibWriter.h index dc5b433d8a..d08f65189c 100644 --- a/src/proofs/tests/Test_SmtLibWriter.h +++ b/src/proofs/tests/Test_SmtLibWriter.h @@ -43,7 +43,7 @@ class SmtLibWriterTestSuite : public CxxTest::TestSuite SmtLibWriter::addReLUConstraint( 0, 1, PHASE_NOT_FIXED, instance ); SmtLibWriter::addSignConstraint( 0, 1, PHASE_NOT_FIXED, instance ); SmtLibWriter::addAbsConstraint( 0, 1, PHASE_NOT_FIXED, instance ); - SmtLibWriter::addLeakyReluConstraint( 0, 1, 0.1, PHASE_NOT_FIXED, instance ); + SmtLibWriter::addLeakyReLUConstraint( 0, 1, 0.1, PHASE_NOT_FIXED, instance ); SmtLibWriter::addMaxConstraint( 1, { 2, 3, 4 }, PHASE_NOT_FIXED, 0, instance ); From 28af0c9ab933ca3f96806d32fe050698f9e4d092 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 5 Mar 2024 21:34:24 +0200 Subject: [PATCH 146/165] Update Test_SmtLibWriter.h --- src/proofs/tests/Test_SmtLibWriter.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/proofs/tests/Test_SmtLibWriter.h b/src/proofs/tests/Test_SmtLibWriter.h index d08f65189c..898d728345 100644 --- a/src/proofs/tests/Test_SmtLibWriter.h +++ b/src/proofs/tests/Test_SmtLibWriter.h @@ -159,7 +159,7 @@ class SmtLibWriterTestSuite : public CxxTest::TestSuite // LeakyRelu line = file->readLine( '\n' ); - expectedLine = "( assert ( = x1 ( ite ( >= x0 0 ) x0 ( * x0 ( - 0.1 ) ) ) ) ) ) )"; + expectedLine = "( assert ( = x1 ( ite ( >= x0 0 ) x0 ( * x0 ( - 0.1 ) ) ) ) )"; TS_ASSERT_EQUALS( line, expectedLine ); // Max From 4b67729f2a4eec88fcc84fa2a141fc97ae39e45d Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 5 Mar 2024 21:35:02 +0200 Subject: [PATCH 147/165] Update SmtLibWriter.cpp --- src/proofs/SmtLibWriter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/proofs/SmtLibWriter.cpp b/src/proofs/SmtLibWriter.cpp index 0d5e7250b8..49d862b6f4 100644 --- a/src/proofs/SmtLibWriter.cpp +++ b/src/proofs/SmtLibWriter.cpp @@ -195,7 +195,7 @@ void SmtLibWriter::addLeakyReLUConstraint( unsigned b, instance.append( String( "( assert ( = x" + std::to_string( f ) + " ( ite ( >= x" + std::to_string( b ) + " 0 ) x" + std::to_string( b ) + " ( * x" + std::to_string( b ) + " " ) + - signedValue( -slope ) + ") ) ) )\n" ); + signedValue( slope ) + ") ) ) )\n" ); else if ( status == RELU_PHASE_ACTIVE ) instance.append( "( assert ( = x" + std::to_string( f ) + " x" + std::to_string( b ) + " ) )\n" ); From 61a33d317b412ba807c5ef14698aa1d9e411b36f Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 5 Mar 2024 21:35:42 +0200 Subject: [PATCH 148/165] Update SmtLibWriter.cpp --- src/proofs/SmtLibWriter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/proofs/SmtLibWriter.cpp b/src/proofs/SmtLibWriter.cpp index 49d862b6f4..bb9cf4c187 100644 --- a/src/proofs/SmtLibWriter.cpp +++ b/src/proofs/SmtLibWriter.cpp @@ -195,7 +195,7 @@ void SmtLibWriter::addLeakyReLUConstraint( unsigned b, instance.append( String( "( assert ( = x" + std::to_string( f ) + " ( ite ( >= x" + std::to_string( b ) + " 0 ) x" + std::to_string( b ) + " ( * x" + std::to_string( b ) + " " ) + - signedValue( slope ) + ") ) ) )\n" ); + signedValue( slope ) + " ) ) ) )\n" ); else if ( status == RELU_PHASE_ACTIVE ) instance.append( "( assert ( = x" + std::to_string( f ) + " x" + std::to_string( b ) + " ) )\n" ); From e2948aedf1a9518dfdde68a05c4a2fad5127491b Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 5 Mar 2024 21:51:51 +0200 Subject: [PATCH 149/165] minor --- src/proofs/SmtLibWriter.cpp | 5 ++--- src/proofs/tests/Test_SmtLibWriter.h | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/proofs/SmtLibWriter.cpp b/src/proofs/SmtLibWriter.cpp index bb9cf4c187..20a0a6f814 100644 --- a/src/proofs/SmtLibWriter.cpp +++ b/src/proofs/SmtLibWriter.cpp @@ -193,9 +193,8 @@ void SmtLibWriter::addLeakyReLUConstraint( unsigned b, { if ( status == PHASE_NOT_FIXED ) instance.append( String( "( assert ( = x" + std::to_string( f ) + " ( ite ( >= x" + - std::to_string( b ) + " 0 ) x" + std::to_string( b ) + " ( * x" + - std::to_string( b ) + " " ) + - signedValue( slope ) + " ) ) ) )\n" ); + std::to_string( b ) + " 0 ) x" + std::to_string( b ) + " ( * " + + signedValue( slope ) + "x" + std::to_string( b ) + " ) ) ) )\n" ); else if ( status == RELU_PHASE_ACTIVE ) instance.append( "( assert ( = x" + std::to_string( f ) + " x" + std::to_string( b ) + " ) )\n" ); diff --git a/src/proofs/tests/Test_SmtLibWriter.h b/src/proofs/tests/Test_SmtLibWriter.h index 898d728345..0f66ddb017 100644 --- a/src/proofs/tests/Test_SmtLibWriter.h +++ b/src/proofs/tests/Test_SmtLibWriter.h @@ -159,7 +159,7 @@ class SmtLibWriterTestSuite : public CxxTest::TestSuite // LeakyRelu line = file->readLine( '\n' ); - expectedLine = "( assert ( = x1 ( ite ( >= x0 0 ) x0 ( * x0 ( - 0.1 ) ) ) ) )"; + expectedLine = "( assert ( = x1 ( ite ( >= x0 0 ) x0 ( * 0.1 x0 ) ) ) )"; TS_ASSERT_EQUALS( line, expectedLine ); // Max From 1b36dcd10e99a722f885123ddd1e7eeab7901592 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 5 Mar 2024 22:06:52 +0200 Subject: [PATCH 150/165] Update SmtLibWriter.cpp --- src/proofs/SmtLibWriter.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/proofs/SmtLibWriter.cpp b/src/proofs/SmtLibWriter.cpp index 20a0a6f814..d0539fd816 100644 --- a/src/proofs/SmtLibWriter.cpp +++ b/src/proofs/SmtLibWriter.cpp @@ -193,8 +193,8 @@ void SmtLibWriter::addLeakyReLUConstraint( unsigned b, { if ( status == PHASE_NOT_FIXED ) instance.append( String( "( assert ( = x" + std::to_string( f ) + " ( ite ( >= x" + - std::to_string( b ) + " 0 ) x" + std::to_string( b ) + " ( * " + - signedValue( slope ) + "x" + std::to_string( b ) + " ) ) ) )\n" ); + std::to_string( b ) + " 0 ) x" + std::to_string( b ) + " ( * " ) + + signedValue( slope ) + "x" + std::to_string( b ) + " ) ) ) )\n" ); else if ( status == RELU_PHASE_ACTIVE ) instance.append( "( assert ( = x" + std::to_string( f ) + " x" + std::to_string( b ) + " ) )\n" ); From ebd178fc8b1f330c8d75304c28ac85206c8884c0 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 5 Mar 2024 22:25:57 +0200 Subject: [PATCH 151/165] Update SmtLibWriter.cpp --- src/proofs/SmtLibWriter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/proofs/SmtLibWriter.cpp b/src/proofs/SmtLibWriter.cpp index d0539fd816..ed05f92d3a 100644 --- a/src/proofs/SmtLibWriter.cpp +++ b/src/proofs/SmtLibWriter.cpp @@ -194,7 +194,7 @@ void SmtLibWriter::addLeakyReLUConstraint( unsigned b, if ( status == PHASE_NOT_FIXED ) instance.append( String( "( assert ( = x" + std::to_string( f ) + " ( ite ( >= x" + std::to_string( b ) + " 0 ) x" + std::to_string( b ) + " ( * " ) + - signedValue( slope ) + "x" + std::to_string( b ) + " ) ) ) )\n" ); + signedValue( slope ) + " x" + std::to_string( b ) + " ) ) ) )\n" ); else if ( status == RELU_PHASE_ACTIVE ) instance.append( "( assert ( = x" + std::to_string( f ) + " x" + std::to_string( b ) + " ) )\n" ); From 2f37c951cbbec1995c2c0d27af6916a68673be0d Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 12 Mar 2024 22:27:24 +0200 Subject: [PATCH 152/165] Disable updateFeasibleDisjuncts() on proof production mode to avoid bug --- src/engine/DisjunctionConstraint.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/engine/DisjunctionConstraint.cpp b/src/engine/DisjunctionConstraint.cpp index a8cfbab6b4..b89b4c8133 100644 --- a/src/engine/DisjunctionConstraint.cpp +++ b/src/engine/DisjunctionConstraint.cpp @@ -156,7 +156,9 @@ void DisjunctionConstraint::notifyLowerBound( unsigned variable, double bound ) setLowerBound( variable, bound ); - updateFeasibleDisjuncts(); + // Proofs are currenly not supporting case elimination + if ( !_boundManager || !_boundManager->shouldProduceProofs() ) + updateFeasibleDisjuncts(); } void DisjunctionConstraint::notifyUpperBound( unsigned variable, double bound ) @@ -170,7 +172,9 @@ void DisjunctionConstraint::notifyUpperBound( unsigned variable, double bound ) setUpperBound( variable, bound ); - updateFeasibleDisjuncts(); + // Proofs are currenly not supporting case elimination + if ( !_boundManager || !_boundManager->shouldProduceProofs() ) + updateFeasibleDisjuncts(); } bool DisjunctionConstraint::participatingVariable( unsigned variable ) const From 766af0ac52c8773429db0d0b95ab39b17209302e Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Thu, 14 Mar 2024 14:50:44 +0200 Subject: [PATCH 153/165] Minor --- src/engine/DisjunctionConstraint.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/engine/DisjunctionConstraint.cpp b/src/engine/DisjunctionConstraint.cpp index b89b4c8133..7eba394890 100644 --- a/src/engine/DisjunctionConstraint.cpp +++ b/src/engine/DisjunctionConstraint.cpp @@ -156,7 +156,7 @@ void DisjunctionConstraint::notifyLowerBound( unsigned variable, double bound ) setLowerBound( variable, bound ); - // Proofs are currenly not supporting case elimination + // Proofs currently don't support case elimination if ( !_boundManager || !_boundManager->shouldProduceProofs() ) updateFeasibleDisjuncts(); } @@ -172,7 +172,7 @@ void DisjunctionConstraint::notifyUpperBound( unsigned variable, double bound ) setUpperBound( variable, bound ); - // Proofs are currenly not supporting case elimination + // Proofs currently don't support case elimination if ( !_boundManager || !_boundManager->shouldProduceProofs() ) updateFeasibleDisjuncts(); } From f93fb3ebddf0e320828c728797148af6a08bc539 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Wed, 27 Mar 2024 21:41:25 +0200 Subject: [PATCH 154/165] Minor --- CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 228a4793c3..18e125c89a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -82,7 +82,7 @@ include_directories(SYSTEM ${CVC4_DIR} ${CVC4_DIR}/include) # Avoid using deprecated operations add_definitions(-DBOOST_NO_CXX98_FUNCTION_BASE) -set(BOOST_VERSION 1.80.0) +set(BOOST_VERSION 1.74.0) set(BOOST_DIR "${TOOLS_DIR}/boost-${BOOST_VERSION}") if (MSVC) set(BOOST_ROOT "${BOOST_DIR}/win_installed") @@ -482,4 +482,3 @@ add_dependencies(build_input_parsers ${MPS_PARSER} ${ACAS_PARSER} add_subdirectory(${SRC_DIR}) add_subdirectory(${TOOLS_DIR}) add_subdirectory(${REGRESS_DIR}) - From 47e920b781b00cea884ee1cab4efe06a9baea61d Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Wed, 27 Mar 2024 22:25:41 +0200 Subject: [PATCH 155/165] minor --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 18e125c89a..f144148c0c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -82,7 +82,7 @@ include_directories(SYSTEM ${CVC4_DIR} ${CVC4_DIR}/include) # Avoid using deprecated operations add_definitions(-DBOOST_NO_CXX98_FUNCTION_BASE) -set(BOOST_VERSION 1.74.0) +set(BOOST_VERSION 1.84.0) set(BOOST_DIR "${TOOLS_DIR}/boost-${BOOST_VERSION}") if (MSVC) set(BOOST_ROOT "${BOOST_DIR}/win_installed") From 58a4ed032c8f88ca4e763f42d53f0bd3a2865000 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 24 Sep 2024 22:27:46 +0300 Subject: [PATCH 156/165] write queries to SMTLIB files --- maraboupy/MarabouCore.cpp | 16 +++++ src/engine/InputQuery.cpp | 7 ++ src/engine/InputQuery.h | 1 + src/engine/Query.cpp | 31 +++++++++ src/engine/Query.h | 1 + src/proofs/Checker.cpp | 96 +++------------------------ src/proofs/SmtLibWriter.cpp | 126 ++++++++++++++++++++++++++++++++++-- src/proofs/SmtLibWriter.h | 17 ++++- 8 files changed, 200 insertions(+), 95 deletions(-) diff --git a/maraboupy/MarabouCore.cpp b/maraboupy/MarabouCore.cpp index 52c232c3b7..8d35646b13 100644 --- a/maraboupy/MarabouCore.cpp +++ b/maraboupy/MarabouCore.cpp @@ -525,6 +525,11 @@ void saveQuery( InputQuery &inputQuery, std::string filename ) inputQuery.saveQuery( String( filename ) ); } +void saveQueryAsSmtLib( InputQuery &query, std::string filename ) +{ + query.saveQueryAsSmtLib( String( filename ) ); +} + void loadQuery( std::string filename, InputQuery &inputQuery ) { return QueryLoader::loadQuery( String( filename ), inputQuery ); @@ -610,6 +615,17 @@ PYBIND11_MODULE( MarabouCore, m ) R"pbdoc( Serializes the inputQuery in the given filename + Args: + inputQuery (:class:`~maraboupy.MarabouCore.InputQuery`): Marabou input query to be saved + filename (str): Name of file to save query + )pbdoc", + py::arg( "inputQuery" ), + py::arg( "filename" ) ); + m.def( "saveQueryAsSmtLib", + &saveQueryAsSmtLib, + R"pbdoc( + Serializes the inputQuery in the given filename as an SMTLIB file + Args: inputQuery (:class:`~maraboupy.MarabouCore.InputQuery`): Marabou input query to be saved filename (str): Name of file to save query diff --git a/src/engine/InputQuery.cpp b/src/engine/InputQuery.cpp index ba16ac3eac..d275646b06 100644 --- a/src/engine/InputQuery.cpp +++ b/src/engine/InputQuery.cpp @@ -339,6 +339,13 @@ void InputQuery::saveQuery( const String &fileName ) delete query; } +void InputQuery::saveQueryAsSmtLib( const String &fileName ) const +{ + Query *query = generateQuery(); + query->saveQueryAsSmtLib( fileName ); + delete query; +} + Query *InputQuery::generateQuery() const { Query *query = new Query(); diff --git a/src/engine/InputQuery.h b/src/engine/InputQuery.h index 9b5a1036d4..083161ee0d 100644 --- a/src/engine/InputQuery.h +++ b/src/engine/InputQuery.h @@ -135,6 +135,7 @@ class InputQuery : public IQuery Serializes the query to a file which can then be loaded using QueryLoader. */ void saveQuery( const String &fileName ); + void saveQueryAsSmtLib( const String &filename ) const; /* Generate a non-context-dependent version of the Query diff --git a/src/engine/Query.cpp b/src/engine/Query.cpp index 199d3f6309..77b22c9c9f 100644 --- a/src/engine/Query.cpp +++ b/src/engine/Query.cpp @@ -581,6 +581,37 @@ void Query::saveQuery( const String &fileName ) queryFile->close(); } +void Query::saveQueryAsSmtLib( const String &fileName ) const +{ + if ( !_nlConstraints.empty() ) + { + printf( "SMTLIB conversion does not support nonlinear constraints yet. Aborting " + "Conversion.\n" ); + return; + } + + List equations; + + Vector upperBounds( _numberOfVariables, 0 ); + Vector lowerBounds( _numberOfVariables, 0 ); + + for ( unsigned i = 0; i < _numberOfVariables; ++i ) + { + upperBounds[i] = _upperBounds.exists( i ) ? _upperBounds[i] : FloatUtils::infinity(); + lowerBounds[i] = + _lowerBounds.exists( i ) ? _lowerBounds[i] : FloatUtils::negativeInfinity(); + } + + SmtLibWriter::writeToSmtLibFile( fileName, + 0, + _numberOfVariables, + upperBounds, + lowerBounds, + NULL, + _equations, + _plConstraints ); +} + void Query::markInputVariable( unsigned variable, unsigned inputIndex ) { _variableToInputIndex[variable] = inputIndex; diff --git a/src/engine/Query.h b/src/engine/Query.h index ca7536e17a..48fa1740de 100644 --- a/src/engine/Query.h +++ b/src/engine/Query.h @@ -125,6 +125,7 @@ class Query : public IQuery Serializes the query to a file which can then be loaded using QueryLoader. */ void saveQuery( const String &fileName ); + void saveQueryAsSmtLib( const String &fileName ) const; /* Print input and output bounds diff --git a/src/proofs/Checker.cpp b/src/proofs/Checker.cpp index 8d14e4113c..c153de7feb 100644 --- a/src/proofs/Checker.cpp +++ b/src/proofs/Checker.cpp @@ -309,92 +309,16 @@ Checker::getCorrespondingConstraint( const List &split void Checker::writeToFile() { - List leafInstance; - - // Write with SmtLibWriter - unsigned b, f; - unsigned m = _proofSize; - unsigned n = _groundUpperBounds.size(); - - SmtLibWriter::addHeader( n, leafInstance ); - SmtLibWriter::addGroundUpperBounds( _groundUpperBounds, leafInstance ); - SmtLibWriter::addGroundLowerBounds( _groundLowerBounds, leafInstance ); - - auto tableauRow = SparseUnsortedList(); - - for ( unsigned i = 0; i < m; ++i ) - { - tableauRow = SparseUnsortedList(); - _initialTableau->getRow( i, &tableauRow ); - - // Fix correct size - if ( !tableauRow.getSize() && !tableauRow.empty() ) - for ( auto it = tableauRow.begin(); it != tableauRow.end(); ++it ) - tableauRow.incrementSize(); - - SmtLibWriter::addTableauRow( tableauRow, leafInstance ); - } - - for ( auto &constraint : _problemConstraints ) - { - auto vars = constraint->getParticipatingVariables(); - Vector conVars( vars.begin(), vars.end() ); - - if ( constraint->getType() == RELU ) - { - b = conVars[0]; - f = conVars[1]; - SmtLibWriter::addReLUConstraint( b, f, constraint->getPhaseStatus(), leafInstance ); - } - else if ( constraint->getType() == SIGN ) - { - b = conVars[0]; - f = conVars[1]; - SmtLibWriter::addSignConstraint( b, f, constraint->getPhaseStatus(), leafInstance ); - } - else if ( constraint->getType() == ABSOLUTE_VALUE ) - { - b = conVars[0]; - f = conVars[1]; - SmtLibWriter::addAbsConstraint( b, f, constraint->getPhaseStatus(), leafInstance ); - } - else if ( constraint->getType() == MAX ) - { - MaxConstraint *maxConstraint = (MaxConstraint *)constraint; - - Set elements = maxConstraint->getParticipatingElements(); - double info = 0; - - if ( constraint->getPhaseStatus() == MAX_PHASE_ELIMINATED ) - info = maxConstraint->getMaxValueOfEliminatedPhases(); - else if ( constraint->phaseFixed() ) - info = maxConstraint->phaseToVariable( constraint->getPhaseStatus() ); - else - for ( const auto &element : maxConstraint->getParticipatingVariables() ) - elements.erase( element ); - - SmtLibWriter::addMaxConstraint( constraint->getParticipatingVariables().back(), - elements, - constraint->getPhaseStatus(), - info, - leafInstance ); - } - else if ( constraint->getType() == DISJUNCTION ) - SmtLibWriter::addDisjunctionConstraint( - ( (DisjunctionConstraint *)constraint )->getFeasibleDisjuncts(), leafInstance ); - else if ( constraint->getType() == LEAKY_RELU ) - { - b = conVars[0]; - f = conVars[1]; - double slope = ( (LeakyReluConstraint *)constraint )->getSlope(); - SmtLibWriter::addLeakyReLUConstraint( - b, f, slope, constraint->getPhaseStatus(), leafInstance ); - } - } - - SmtLibWriter::addFooter( leafInstance ); - File file( "delegated" + std::to_string( _delegationCounter ) + ".smtlib" ); - SmtLibWriter::writeInstanceToFile( file, leafInstance ); + String filename = "delegated" + std::to_string( _delegationCounter ) + ".smtlib"; + + SmtLibWriter::writeToSmtLibFile( filename, + _proofSize, + _groundUpperBounds.size(), + _groundUpperBounds, + _groundLowerBounds, + _initialTableau, + List(), + _problemConstraints ); ++_delegationCounter; } diff --git a/src/proofs/SmtLibWriter.cpp b/src/proofs/SmtLibWriter.cpp index ed05f92d3a..92628707da 100644 --- a/src/proofs/SmtLibWriter.cpp +++ b/src/proofs/SmtLibWriter.cpp @@ -14,9 +14,115 @@ #include "SmtLibWriter.h" +#include "DisjunctionConstraint.h" +#include "LeakyReluConstraint.h" +#include "MaxConstraint.h" +#include "ReluConstraint.h" +#include "SignConstraint.h" + const unsigned SmtLibWriter::SMTLIBWRITER_PRECISION = (unsigned)std::log10( 1 / GlobalConfiguration::DEFAULT_EPSILON_FOR_COMPARISONS ); + +void SmtLibWriter::writeToSmtLibFile( const String &fileName, + unsigned numOfTableauRows, + unsigned numOfVariables, + const Vector &upperBounds, + const Vector &lowerBounds, + const SparseMatrix *tableau, + const List &additionalEquations, + const List &problemConstraints ) +{ + List instance; + + // Write with SmtLibWriter + unsigned b, f; + + SmtLibWriter::addHeader( numOfVariables, instance ); + SmtLibWriter::addGroundUpperBounds( upperBounds, instance ); + SmtLibWriter::addGroundLowerBounds( lowerBounds, instance ); + + auto tableauRow = SparseUnsortedList(); + + for ( unsigned i = 0; i < numOfTableauRows; ++i ) + { + tableauRow = SparseUnsortedList(); + tableau->getRow( i, &tableauRow ); + + // Fix correct size + if ( !tableauRow.getSize() && !tableauRow.empty() ) + for ( auto it = tableauRow.begin(); it != tableauRow.end(); ++it ) + tableauRow.incrementSize(); + + SmtLibWriter::addTableauRow( tableauRow, instance ); + } + + for ( const auto &eq : additionalEquations ) + SmtLibWriter::addEquation( eq, instance, true ); + + for ( auto &constraint : problemConstraints ) + { + auto vars = constraint->getParticipatingVariables(); + Vector conVars( vars.begin(), vars.end() ); + + if ( constraint->getType() == RELU ) + { + b = conVars[0]; + f = conVars[1]; + SmtLibWriter::addReLUConstraint( b, f, constraint->getPhaseStatus(), instance ); + } + else if ( constraint->getType() == SIGN ) + { + b = conVars[0]; + f = conVars[1]; + SmtLibWriter::addSignConstraint( b, f, constraint->getPhaseStatus(), instance ); + } + else if ( constraint->getType() == ABSOLUTE_VALUE ) + { + b = conVars[0]; + f = conVars[1]; + SmtLibWriter::addAbsConstraint( b, f, constraint->getPhaseStatus(), instance ); + } + else if ( constraint->getType() == MAX ) + { + MaxConstraint *maxConstraint = (MaxConstraint *)constraint; + + Set elements = maxConstraint->getParticipatingElements(); + double info = 0; + + if ( constraint->getPhaseStatus() == MAX_PHASE_ELIMINATED ) + info = maxConstraint->getMaxValueOfEliminatedPhases(); + else if ( constraint->phaseFixed() ) + info = maxConstraint->phaseToVariable( constraint->getPhaseStatus() ); + // else + // for ( const auto &element : maxConstraint->getParticipatingVariables() + // ) + // elements.erase( element ); + + SmtLibWriter::addMaxConstraint( constraint->getParticipatingVariables().back(), + elements, + constraint->getPhaseStatus(), + info, + instance ); + } + else if ( constraint->getType() == DISJUNCTION ) + SmtLibWriter::addDisjunctionConstraint( + ( (DisjunctionConstraint *)constraint )->getFeasibleDisjuncts(), instance ); + else if ( constraint->getType() == LEAKY_RELU ) + { + b = conVars[0]; + f = conVars[1]; + double slope = ( (LeakyReluConstraint *)constraint )->getSlope(); + SmtLibWriter::addLeakyReLUConstraint( + b, f, slope, constraint->getPhaseStatus(), instance ); + } + } + + SmtLibWriter::addFooter( instance ); + File file( fileName ); + SmtLibWriter::writeInstanceToFile( file, instance ); +} + void SmtLibWriter::addHeader( unsigned numberOfVariables, List &instance ) { instance.append( "( set-logic QF_LRA )\n" ); @@ -147,7 +253,7 @@ void SmtLibWriter::addDisjunctionConstraint( const List &i instance.append( assertRowLine + "\n" ); } -void SmtLibWriter::addGroundUpperBounds( Vector &bounds, List &instance ) +void SmtLibWriter::addGroundUpperBounds( const Vector &bounds, List &instance ) { unsigned n = bounds.size(); for ( unsigned i = 0; i < n; ++i ) @@ -256,7 +362,7 @@ void SmtLibWriter::addGroundUpperBounds( Vector &bounds, List &i signedValue( bounds[i] ) + " ) )\n" ); } -void SmtLibWriter::addGroundLowerBounds( Vector &bounds, List &instance ) +void SmtLibWriter::addGroundLowerBounds( const Vector &bounds, List &instance ) { unsigned n = bounds.size(); for ( unsigned i = 0; i < n; ++i ) @@ -282,7 +388,7 @@ String SmtLibWriter::signedValue( double val ) : String( "( - " + s.str() ).trimZerosFromRight() + " )"; } -void SmtLibWriter::addEquation( const Equation &eq, List &instance ) +void SmtLibWriter::addEquation( const Equation &eq, List &instance, bool assertEquations ) { unsigned size = eq._addends.size(); @@ -293,6 +399,9 @@ void SmtLibWriter::addEquation( const Equation &eq, List &instance ) String assertRowLine = ""; + if ( assertEquations ) + assertRowLine += "( assert "; + if ( eq._type == Equation::EQ ) assertRowLine += "( = "; else if ( eq._type == Equation::LE ) @@ -307,7 +416,12 @@ void SmtLibWriter::addEquation( const Equation &eq, List &instance ) for ( const auto &addend : eq._addends ) { if ( FloatUtils::isZero( addend._coefficient ) ) + { + // If the last addend has coefficient zero, add 0 to close previously opened addition + if ( addend == eq._addends.back() ) + assertRowLine += String( " 0 )" ); continue; + } if ( !( addend == eq._addends.back() ) ) assertRowLine += String( " ( + " ); @@ -330,7 +444,7 @@ void SmtLibWriter::addEquation( const Equation &eq, List &instance ) for ( unsigned i = 0; i < counter; ++i ) assertRowLine += String( " )" ); - instance.append( assertRowLine + " " ); + instance.append( assertRowLine + ( assertEquations ? " ) \n" : " " ) ); } void SmtLibWriter::addTightening( Tightening bound, List &instance ) diff --git a/src/proofs/SmtLibWriter.h b/src/proofs/SmtLibWriter.h index e3d3bf0d80..ab7787cabf 100644 --- a/src/proofs/SmtLibWriter.h +++ b/src/proofs/SmtLibWriter.h @@ -95,17 +95,17 @@ class SmtLibWriter /* Adds a line representing an equation , in SMTLIB format, to the SMTLIB instance */ - static void addEquation( const Equation &eq, List &instance ); + static void addEquation( const Equation &eq, List &instance, bool assertEquations ); /* Adds lines representing the ground upper bounds, in SMTLIB format, to the SMTLIB instance */ - static void addGroundUpperBounds( Vector &bounds, List &instance ); + static void addGroundUpperBounds( const Vector &bounds, List &instance ); /* Adds lines representing the ground lower bounds, in SMTLIB format, to the SMTLIB instance */ - static void addGroundLowerBounds( Vector &bounds, List &instance ); + static void addGroundLowerBounds( const Vector &bounds, List &instance ); /* Adds lines representing a tightening, in SMTLIB format, to the SMTLIB instance @@ -121,6 +121,17 @@ class SmtLibWriter Returns a string representing the value of a double */ static String signedValue( double val ); + /* + A wrapper function calling all previous functions + */ + static void writeToSmtLibFile( const String &fileName, + unsigned numOfTableauRows, + unsigned numOfVariables, + const Vector &upperBounds, + const Vector &lowerBounds, + const SparseMatrix *tableau, + const List &additionalEquations, + const List &problemConstraints ); }; #endif //__SmtLibWriter_h__ \ No newline at end of file From 68136a698f5b4d7ec4546515238fcb44657a9c45 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Sun, 1 Dec 2024 12:23:02 +0200 Subject: [PATCH 157/165] UNSAT certification statistics --- src/common/Statistics.cpp | 1 + src/common/Statistics.h | 3 +++ src/engine/Engine.cpp | 1 + 3 files changed, 5 insertions(+) diff --git a/src/common/Statistics.cpp b/src/common/Statistics.cpp index 667a852ebe..e750a79739 100644 --- a/src/common/Statistics.cpp +++ b/src/common/Statistics.cpp @@ -42,6 +42,7 @@ Statistics::Statistics() _unsignedAttributes[TOTAL_NUMBER_OF_VALID_CASE_SPLITS] = 0; _unsignedAttributes[NUM_CERTIFIED_LEAVES] = 0; _unsignedAttributes[NUM_DELEGATED_LEAVES] = 0; + _unsignedAttributes[CERTIFIED_UNSAT] = 0; _longAttributes[NUM_MAIN_LOOP_ITERATIONS] = 0; _longAttributes[NUM_SIMPLEX_STEPS] = 0; diff --git a/src/common/Statistics.h b/src/common/Statistics.h index 04c8f43563..03795187c2 100644 --- a/src/common/Statistics.h +++ b/src/common/Statistics.h @@ -70,6 +70,9 @@ class Statistics // Total number of delegated and certified leaves in the search tree NUM_CERTIFIED_LEAVES, NUM_DELEGATED_LEAVES, + + // 1 if returned UNSAT and proof was certified by proof checker, 0 otherwise. + CERTIFIED_UNSAT, }; enum StatisticsLongAttribute { diff --git a/src/engine/Engine.cpp b/src/engine/Engine.cpp index 35d1ae9f8c..753efa45c2 100644 --- a/src/engine/Engine.cpp +++ b/src/engine/Engine.cpp @@ -3658,6 +3658,7 @@ bool Engine::certifyUNSATCertificate() if ( certificationSucceeded ) { printf( "Certified\n" ); + _statistics.incUnsignedAttribute( Statistics::CERTIFIED_UNSAT ); if ( _statistics.getUnsignedAttribute( Statistics::NUM_DELEGATED_LEAVES ) ) printf( "Some leaves were delegated and need to be certified separately by an SMT " "solver\n" ); From f828933ce297f228d6b3c386d3ec7538da0a4ca9 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 3 Dec 2024 12:14:28 +0200 Subject: [PATCH 158/165] Add statistics for lemma counting --- src/common/Statistics.cpp | 3 +++ src/common/Statistics.h | 3 ++- src/engine/BoundManager.cpp | 2 +- src/engine/Engine.cpp | 10 ++++++++++ src/engine/Engine.h | 5 +++++ src/engine/IEngine.h | 7 +++++++ src/engine/tests/MockEngine.h | 4 ++++ 7 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/common/Statistics.cpp b/src/common/Statistics.cpp index e750a79739..f7efa15e7a 100644 --- a/src/common/Statistics.cpp +++ b/src/common/Statistics.cpp @@ -42,6 +42,7 @@ Statistics::Statistics() _unsignedAttributes[TOTAL_NUMBER_OF_VALID_CASE_SPLITS] = 0; _unsignedAttributes[NUM_CERTIFIED_LEAVES] = 0; _unsignedAttributes[NUM_DELEGATED_LEAVES] = 0; + _unsignedAttributes[NUM_LEMMAS] = 0; _unsignedAttributes[CERTIFIED_UNSAT] = 0; _longAttributes[NUM_MAIN_LOOP_ITERATIONS] = 0; @@ -426,6 +427,8 @@ void Statistics::print() getUnsignedAttribute( Statistics::NUM_CERTIFIED_LEAVES ) ); printf( "\tNumber of leaves to delegate: %u\n", getUnsignedAttribute( Statistics::NUM_DELEGATED_LEAVES ) ); + printf( "\tNumber of lemmas: %u\n", + getUnsignedAttribute( Statistics::NUM_LEMMAS ) ); } unsigned long long Statistics::getTotalTimeInMicro() const diff --git a/src/common/Statistics.h b/src/common/Statistics.h index 03795187c2..4761594b4e 100644 --- a/src/common/Statistics.h +++ b/src/common/Statistics.h @@ -67,9 +67,10 @@ class Statistics // branches of the search tree, that have since been popped) TOTAL_NUMBER_OF_VALID_CASE_SPLITS, - // Total number of delegated and certified leaves in the search tree + // Total number of delegated leaves, certified leaves and lemmas in the search tree NUM_CERTIFIED_LEAVES, NUM_DELEGATED_LEAVES, + NUM_LEMMAS, // 1 if returned UNSAT and proof was certified by proof checker, 0 otherwise. CERTIFIED_UNSAT, diff --git a/src/engine/BoundManager.cpp b/src/engine/BoundManager.cpp index 6b6200cc57..5c8c9d1562 100644 --- a/src/engine/BoundManager.cpp +++ b/src/engine/BoundManager.cpp @@ -469,7 +469,7 @@ bool BoundManager::addLemmaExplanationAndTightenBound( unsigned var, affectedVarBound, allExplanations, constraintType ); - _engine->getUNSATCertificateCurrentPointer()->addPLCLemma( PLCExpl ); + _engine->addPLCLemma( PLCExpl ); affectedVarBound == Tightening::UB ? _engine->updateGroundUpperBound( var, value ) : _engine->updateGroundLowerBound( var, value ); resetExplanation( var, affectedVarBound ); diff --git a/src/engine/Engine.cpp b/src/engine/Engine.cpp index 753efa45c2..ee3afa241a 100644 --- a/src/engine/Engine.cpp +++ b/src/engine/Engine.cpp @@ -3793,3 +3793,13 @@ void Engine::extractBounds( IQuery &inputQuery ) } } } + +void Engine::addPLCLemma( std::shared_ptr &explanation ) +{ + if ( !_produceUNSATProofs ) + return; + + ASSERT( explanation && _UNSATCertificate && _UNSATCertificateCurrentPointer ) + _statistics.incUnsignedAttribute( Statistics::NUM_LEMMAS ); + _UNSATCertificateCurrentPointer->get()->addPLCLemma( explanation ); +} \ No newline at end of file diff --git a/src/engine/Engine.h b/src/engine/Engine.h index 15521a56e3..167fcac460 100644 --- a/src/engine/Engine.h +++ b/src/engine/Engine.h @@ -300,6 +300,11 @@ class Engine */ void propagateBoundManagerTightenings(); + /* + Add lemma to the UNSAT Certificate + */ + void addPLCLemma( std::shared_ptr &explanation ); + private: enum BasisRestorationRequired { RESTORATION_NOT_NEEDED = 0, diff --git a/src/engine/IEngine.h b/src/engine/IEngine.h index 9b9108b20a..ea592bb4e5 100644 --- a/src/engine/IEngine.h +++ b/src/engine/IEngine.h @@ -19,6 +19,7 @@ #include "BoundExplainer.h" #include "DivideStrategy.h" #include "List.h" +#include "PlcLemma.h" #include "SnCDivideStrategy.h" #include "TableauStateStorageLevel.h" #include "Vector.h" @@ -31,6 +32,7 @@ class EngineState; class Equation; class PiecewiseLinearCaseSplit; +class PLCLemma; class SmtState; class String; class PiecewiseLinearConstraint; @@ -184,6 +186,11 @@ class IEngine Propagate bound tightenings stored in the BoundManager */ virtual void propagateBoundManagerTightenings() = 0; + + /* + Add lemma to the UNSAT Certificate + */ + virtual void addPLCLemma( std::shared_ptr &explanation ) = 0; }; #endif // __IEngine_h__ diff --git a/src/engine/tests/MockEngine.h b/src/engine/tests/MockEngine.h index eaeee8b894..4bab581301 100644 --- a/src/engine/tests/MockEngine.h +++ b/src/engine/tests/MockEngine.h @@ -286,6 +286,10 @@ class MockEngine : public IEngine { return true; } + + void addPLCLemma( std::shared_ptr & /*explanation*/ ) + { + } }; #endif // __MockEngine_h__ From 903523f5153ad92d9eaa9e1cb21939e6759fbac4 Mon Sep 17 00:00:00 2001 From: omriisack <39183763+omriisack@users.noreply.github.com> Date: Tue, 3 Dec 2024 12:17:14 +0200 Subject: [PATCH 159/165] Minor --- src/common/Statistics.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/common/Statistics.cpp b/src/common/Statistics.cpp index f7efa15e7a..b9f7e72e52 100644 --- a/src/common/Statistics.cpp +++ b/src/common/Statistics.cpp @@ -427,8 +427,7 @@ void Statistics::print() getUnsignedAttribute( Statistics::NUM_CERTIFIED_LEAVES ) ); printf( "\tNumber of leaves to delegate: %u\n", getUnsignedAttribute( Statistics::NUM_DELEGATED_LEAVES ) ); - printf( "\tNumber of lemmas: %u\n", - getUnsignedAttribute( Statistics::NUM_LEMMAS ) ); + printf( "\tNumber of lemmas: %u\n", getUnsignedAttribute( Statistics::NUM_LEMMAS ) ); } unsigned long long Statistics::getTotalTimeInMicro() const From a54dd76da419cec5de06f24bc09d495f17c6def4 Mon Sep 17 00:00:00 2001 From: omriisack Date: Sun, 20 Jul 2025 16:57:19 +0300 Subject: [PATCH 160/165] Support sign constraint in onnx parser + formatting --- src/engine/tests/MockEngine.h | 189 ++-- src/input_parsers/OnnxParser.cpp | 1786 +++++++++++++----------------- src/input_parsers/OnnxParser.h | 124 ++- 3 files changed, 895 insertions(+), 1204 deletions(-) diff --git a/src/engine/tests/MockEngine.h b/src/engine/tests/MockEngine.h index 4bab581301..f0687c56a7 100644 --- a/src/engine/tests/MockEngine.h +++ b/src/engine/tests/MockEngine.h @@ -24,41 +24,34 @@ class String; -class MockEngine : public IEngine -{ +class MockEngine : public IEngine { public: - MockEngine() - { + MockEngine() { wasCreated = false; wasDiscarded = false; lastStoredState = NULL; } - ~MockEngine() - { + ~MockEngine() { } bool wasCreated; bool wasDiscarded; - void mockConstructor() - { - TS_ASSERT( !wasCreated ); + void mockConstructor() { + TS_ASSERT(!wasCreated); wasCreated = true; } - void mockDestructor() - { - TS_ASSERT( wasCreated ); - TS_ASSERT( !wasDiscarded ); + void mockDestructor() { + TS_ASSERT(wasCreated); + TS_ASSERT(!wasDiscarded); wasDiscarded = true; } - struct Bound - { - Bound( unsigned variable, double bound ) - { + struct Bound { + Bound(unsigned variable, double bound) { _variable = variable; _bound = bound; } @@ -70,225 +63,189 @@ class MockEngine : public IEngine List lastLowerBounds; List lastUpperBounds; List lastEquations; - void applySplit( const PiecewiseLinearCaseSplit &split ) - { + + void applySplit(const PiecewiseLinearCaseSplit &split) { List bounds = split.getBoundTightenings(); auto equations = split.getEquations(); - for ( auto &it : equations ) - { - lastEquations.append( it ); + for (auto &it: equations) { + lastEquations.append(it); } - for ( auto &bound : bounds ) - { - if ( bound._type == Tightening::LB ) - { - lastLowerBounds.append( Bound( bound._variable, bound._value ) ); - } - else - { - lastUpperBounds.append( Bound( bound._variable, bound._value ) ); + for (auto &bound: bounds) { + if (bound._type == Tightening::LB) { + lastLowerBounds.append(Bound(bound._variable, bound._value)); + } else { + lastUpperBounds.append(Bound(bound._variable, bound._value)); } } } - void postContextPopHook(){}; - void preContextPushHook(){}; + void postContextPopHook() {}; + + void preContextPushHook() {}; mutable EngineState *lastStoredState; - void storeState( EngineState &state, TableauStateStorageLevel /*level*/ ) const - { + + void storeState(EngineState &state, TableauStateStorageLevel /*level*/) const { lastStoredState = &state; } const EngineState *lastRestoredState; - void restoreState( const EngineState &state ) - { + + void restoreState(const EngineState &state) { lastRestoredState = &state; } - void setNumPlConstraintsDisabledByValidSplits( unsigned /* numConstraints */ ) - { + void setNumPlConstraintsDisabledByValidSplits(unsigned /* numConstraints */) { } unsigned _timeToSolve; IEngine::ExitCode _exitCode; - bool solve( double timeoutInSeconds ) - { - if ( timeoutInSeconds >= _timeToSolve ) + + bool solve(double timeoutInSeconds) { + if (timeoutInSeconds >= _timeToSolve) _exitCode = IEngine::TIMEOUT; return _exitCode == IEngine::SAT; } - void setTimeToSolve( unsigned timeToSolve ) - { + void setTimeToSolve(unsigned timeToSolve) { _timeToSolve = timeToSolve; } - void setExitCode( IEngine::ExitCode exitCode ) - { + void setExitCode(IEngine::ExitCode exitCode) { _exitCode = exitCode; } - IEngine::ExitCode getExitCode() const - { + IEngine::ExitCode getExitCode() const { return _exitCode; } - void reset() - { + void reset() { } List _inputVariables; - void setInputVariables( List &inputVariables ) - { + + void setInputVariables(List &inputVariables) { _inputVariables = inputVariables; } - List getInputVariables() const - { + List getInputVariables() const { return _inputVariables; } - void updateScores( DivideStrategy /**/ ) - { + void updateScores(DivideStrategy /**/) { } mutable SmtState *lastRestoredSmtState; - bool restoreSmtState( SmtState &smtState ) - { + + bool restoreSmtState(SmtState &smtState) { lastRestoredSmtState = &smtState; return true; } mutable SmtState *lastStoredSmtState; - void storeSmtState( SmtState &smtState ) - { + + void storeSmtState(SmtState &smtState) { lastStoredSmtState = &smtState; } List _constraintsToSplit; - void setSplitPLConstraint( PiecewiseLinearConstraint *constraint ) - { - _constraintsToSplit.append( constraint ); + + void setSplitPLConstraint(PiecewiseLinearConstraint *constraint) { + _constraintsToSplit.append(constraint); } - PiecewiseLinearConstraint *pickSplitPLConstraint( DivideStrategy /**/ ) - { - if ( !_constraintsToSplit.empty() ) - { + PiecewiseLinearConstraint *pickSplitPLConstraint(DivideStrategy /**/) { + if (!_constraintsToSplit.empty()) { PiecewiseLinearConstraint *ptr = *_constraintsToSplit.begin(); - _constraintsToSplit.erase( ptr ); + _constraintsToSplit.erase(ptr); return ptr; - } - else + } else return NULL; } - PiecewiseLinearConstraint *pickSplitPLConstraintSnC( SnCDivideStrategy /**/ ) - { - if ( !_constraintsToSplit.empty() ) - { + PiecewiseLinearConstraint *pickSplitPLConstraintSnC(SnCDivideStrategy /**/) { + if (!_constraintsToSplit.empty()) { PiecewiseLinearConstraint *ptr = *_constraintsToSplit.begin(); - _constraintsToSplit.erase( ptr ); + _constraintsToSplit.erase(ptr); return ptr; - } - else + } else return NULL; } bool _snc; CVC4::context::Context _context; - void applySnCSplit( PiecewiseLinearCaseSplit /*split*/, String /*queryId*/ ) - { + void applySnCSplit(PiecewiseLinearCaseSplit /*split*/, String /*queryId*/) { _snc = true; _context.push(); } - bool inSnCMode() const - { + bool inSnCMode() const { return _snc; } - void applyAllBoundTightenings(){}; + void applyAllBoundTightenings() {}; - bool applyAllValidConstraintCaseSplits() - { + bool applyAllValidConstraintCaseSplits() { return false; }; - CVC4::context::Context &getContext() - { + CVC4::context::Context &getContext() { return _context; } - bool consistentBounds() const - { + bool consistentBounds() const { return true; } - double explainBound( unsigned /* var */, bool /* isUpper */ ) const - { + double explainBound(unsigned /* var */, bool /* isUpper */) const { return 0.0; } - void updateGroundUpperBound( unsigned /* var */, double /* value */ ) - { + void updateGroundUpperBound(unsigned /* var */, double /* value */) { } - void updateGroundLowerBound( unsigned /*var*/, double /*value*/ ) - { + void updateGroundLowerBound(unsigned /*var*/, double /*value*/) { } - double getGroundBound( unsigned /*var*/, bool /*isUpper*/ ) const - { + double getGroundBound(unsigned /*var*/, bool /*isUpper*/) const { return 0; } - UnsatCertificateNode *getUNSATCertificateCurrentPointer() const - { + UnsatCertificateNode *getUNSATCertificateCurrentPointer() const { return NULL; } - void setUNSATCertificateCurrentPointer( UnsatCertificateNode * /* node*/ ) - { + void setUNSATCertificateCurrentPointer(UnsatCertificateNode * /* node*/ ) { } - const UnsatCertificateNode *getUNSATCertificateRoot() const - { + const UnsatCertificateNode *getUNSATCertificateRoot() const { return NULL; } - bool certifyUNSATCertificate() - { + bool certifyUNSATCertificate() { return true; } - void explainSimplexFailure() - { + void explainSimplexFailure() { } - const BoundExplainer *getBoundExplainer() const - { + const BoundExplainer *getBoundExplainer() const { return NULL; } - void setBoundExplainerContent( BoundExplainer * /*boundExplainer */ ) - { + void setBoundExplainerContent(BoundExplainer * /*boundExplainer */ ) { } - void propagateBoundManagerTightenings() - { + void propagateBoundManagerTightenings() { } - bool shouldProduceProofs() const - { + bool shouldProduceProofs() const { return true; } - void addPLCLemma( std::shared_ptr & /*explanation*/ ) - { + void addPLCLemma(std::shared_ptr & /*explanation*/ ) { } }; diff --git a/src/input_parsers/OnnxParser.cpp b/src/input_parsers/OnnxParser.cpp index 758bab6232..1df2f14758 100644 --- a/src/input_parsers/OnnxParser.cpp +++ b/src/input_parsers/OnnxParser.cpp @@ -52,12 +52,11 @@ * the network, they can be intermediate nodes. If empty, then defaults to the network's output * nodes. */ -void OnnxParser::parse( InputQueryBuilder &query, - const String &path, - const Set initialNodeNames, - const Set terminalNodeNames ) -{ - OnnxParser parser = OnnxParser( query, path, initialNodeNames, terminalNodeNames ); +void OnnxParser::parse(InputQueryBuilder &query, + const String &path, + const Set initialNodeNames, + const Set terminalNodeNames) { + OnnxParser parser = OnnxParser(query, path, initialNodeNames, terminalNodeNames); parser.processGraph(); } @@ -66,165 +65,139 @@ void OnnxParser::parse( InputQueryBuilder &query, * Utilities * *************/ -void illTypedAttributeError( onnx::NodeProto &node, - const onnx::AttributeProto &attr, - onnx::AttributeProto_AttributeType expectedType ) -{ +void illTypedAttributeError(onnx::NodeProto &node, + const onnx::AttributeProto &attr, + onnx::AttributeProto_AttributeType expectedType) { String errorMessage = Stringf( - "Expected attribute %s on Onnx node of type %s to be of type %d but is actually of type %d", - attr.name().c_str(), - node.op_type().c_str(), - expectedType, - attr.type() ); - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); + "Expected attribute %s on Onnx node of type %s to be of type %d but is actually of type %d", + attr.name().c_str(), + node.op_type().c_str(), + expectedType, + attr.type()); + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); } -void missingAttributeError( onnx::NodeProto &node, String attributeName ) -{ - String errorMessage = Stringf( "Onnx node of type %s is missing the expected attribute %s", - node.op_type().c_str(), - attributeName.ascii() ); - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); +void missingAttributeError(onnx::NodeProto &node, String attributeName) { + String errorMessage = Stringf("Onnx node of type %s is missing the expected attribute %s", + node.op_type().c_str(), + attributeName.ascii()); + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); } -void unimplementedOperationError( onnx::NodeProto &node ) -{ - String errorMessage = Stringf( "Onnx '%s' operation not yet implemented for command line " - "support. Should be relatively easy to add.", - node.op_type().c_str() ); - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); +void unimplementedOperationError(onnx::NodeProto &node) { + String errorMessage = Stringf("Onnx '%s' operation not yet implemented for command line " + "support. Should be relatively easy to add.", + node.op_type().c_str()); + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); } -void unimplementedAttributeError( onnx::NodeProto &node, String attributeName ) -{ +void unimplementedAttributeError(onnx::NodeProto &node, String attributeName) { String errorMessage = - Stringf( "Onnx '%s' operation with non-default value for attribute '%s' not yet supported.", - node.op_type().c_str(), - attributeName.ascii() ); - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); + Stringf("Onnx '%s' operation with non-default value for attribute '%s' not yet supported.", + node.op_type().c_str(), + attributeName.ascii()); + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); } -void unimplementedConstantTypeError( onnx::TensorProto_DataType type ) -{ - String errorMessage = Stringf( "Support for Onnx constants of type '%s' not yet implemented.", - TensorProto_DataType_Name( type ).c_str() ); - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); +void unimplementedConstantTypeError(onnx::TensorProto_DataType type) { + String errorMessage = Stringf("Support for Onnx constants of type '%s' not yet implemented.", + TensorProto_DataType_Name(type).c_str()); + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); } -void unsupportedError( onnx::NodeProto &node ) -{ +void unsupportedError(onnx::NodeProto &node) { String errorMessage = - Stringf( "Onnx operation %s not currently supported by Marabou", node.op_type().c_str() ); - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); + Stringf("Onnx operation %s not currently supported by Marabou", node.op_type().c_str()); + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); } -void unsupportedCastError( onnx::TensorProto_DataType from, onnx::TensorProto_DataType to ) -{ +void unsupportedCastError(onnx::TensorProto_DataType from, onnx::TensorProto_DataType to) { String errorMessage = - Stringf( "The ONNX parser does not currently support casting from '%s' to '%s'", - TensorProto_DataType_Name( from ).c_str(), - TensorProto_DataType_Name( to ).c_str() ); - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); + Stringf("The ONNX parser does not currently support casting from '%s' to '%s'", + TensorProto_DataType_Name(from).c_str(), + TensorProto_DataType_Name(to).c_str()); + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); } -void unexpectedNegativeValue( int value, String location ) -{ +void unexpectedNegativeValue(int value, String location) { String errorMessage = - Stringf( "Found unexpected negative value '%d' for '%s'", value, location.ascii() ); - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); + Stringf("Found unexpected negative value '%d' for '%s'", value, location.ascii()); + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); } -void missingNodeError( String &missingNodeName ) -{ - String errorMessage = Stringf( "Internal invariant violated: missing node '%s' not found", - missingNodeName.ascii() ); - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); +void missingNodeError(String &missingNodeName) { + String errorMessage = Stringf("Internal invariant violated: missing node '%s' not found", + missingNodeName.ascii()); + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); } -void unexpectedNumberOfInputs( onnx::NodeProto &node, - unsigned int actualNumberOfInputs, - unsigned int lowerBound, - unsigned int upperBound ) -{ +void unexpectedNumberOfInputs(onnx::NodeProto &node, + unsigned int actualNumberOfInputs, + unsigned int lowerBound, + unsigned int upperBound) { String errorMessage; - if ( lowerBound == upperBound ) - { - errorMessage = Stringf( "%s node expected to have exactly %d inputs, but found %d", - node.op_type().c_str(), - lowerBound, - actualNumberOfInputs ); - } - else - { - errorMessage = Stringf( "%s node expected to have between %d and %d inputs, but found %d", - node.op_type().c_str(), - lowerBound, - upperBound, - actualNumberOfInputs ); - } - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); -} - -void checkTensorDataSourceIsInternal( const onnx::TensorProto &tensor ) -{ - if ( tensor.data_location() == onnx::TensorProto_DataLocation_EXTERNAL ) - { + if (lowerBound == upperBound) { + errorMessage = Stringf("%s node expected to have exactly %d inputs, but found %d", + node.op_type().c_str(), + lowerBound, + actualNumberOfInputs); + } else { + errorMessage = Stringf("%s node expected to have between %d and %d inputs, but found %d", + node.op_type().c_str(), + lowerBound, + upperBound, + actualNumberOfInputs); + } + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); +} + +void checkTensorDataSourceIsInternal(const onnx::TensorProto &tensor) { + if (tensor.data_location() == onnx::TensorProto_DataLocation_EXTERNAL) { String errorMessage = - Stringf( "External data locations not yet implemented for command line Onnx support" ); - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); + Stringf("External data locations not yet implemented for command line Onnx support"); + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); } } -void checkTensorDataType( const onnx::TensorProto &tensor, int32_t expectedDataType ) -{ +void checkTensorDataType(const onnx::TensorProto &tensor, int32_t expectedDataType) { int32_t actualDataType = tensor.data_type(); - if ( actualDataType != expectedDataType ) - { - std::string actualName = onnx::TensorProto_DataType_Name( actualDataType ); - std::string expectedName = onnx::TensorProto_DataType_Name( actualDataType ); + if (actualDataType != expectedDataType) { + std::string actualName = onnx::TensorProto_DataType_Name(actualDataType); + std::string expectedName = onnx::TensorProto_DataType_Name(actualDataType); String errorMessage = - Stringf( "Expected tensor '%s' to be of type %s but actually of type %s", - expectedName.c_str(), - actualName.c_str() ); - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); + Stringf("Expected tensor '%s' to be of type %s but actually of type %s", + expectedName.c_str(), + actualName.c_str()); + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); } } -TensorShape shapeOfInput( onnx::ValueInfoProto &input ) -{ +TensorShape shapeOfInput(onnx::ValueInfoProto &input) { TensorShape result; - for ( auto dim : input.type().tensor_type().shape().dim() ) - { + for (auto dim: input.type().tensor_type().shape().dim()) { int size = dim.dim_value(); - if ( size < 0 ) - { + if (size < 0) { String errorMessage = - Stringf( "Found input tensor in ONNX file with invalid size '%d'", size ); - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); - } - else if ( size == 0 ) - { + Stringf("Found input tensor in ONNX file with invalid size '%d'", size); + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); + } else if (size == 0) { // A size of `0` represents an unknown size. The most likely case is // that this is the batch size which is unspecified in most models. // Under this assumption the correct thing to do is to pretend the // batch size is 1 as verification properties refer to single values // rather than batches. - result.append( 1 ); - } - else - { - result.append( size ); + result.append(1); + } else { + result.append(size); } } return result; } -TensorShape shapeOfConstant( const onnx::TensorProto &constant ) -{ +TensorShape shapeOfConstant(const onnx::TensorProto &constant) { TensorShape result; - for ( auto dim : constant.dims() ) - { - result.append( dim ); + for (auto dim: constant.dims()) { + result.append(dim); } return result; } @@ -243,65 +216,51 @@ TensorShape shapeOfConstant( const onnx::TensorProto &constant ) * @return */ TensorShape -instantiateReshapeTemplate( TensorShape oldShape, Vector newShapeTemplate, bool allowZero ) -{ +instantiateReshapeTemplate(TensorShape oldShape, Vector newShapeTemplate, bool allowZero) { TensorShape newShape; int inferredIndex = -1; - for ( unsigned int i = 0; i < newShapeTemplate.size(); i++ ) - { + for (unsigned int i = 0; i < newShapeTemplate.size(); i++) { int dimSize = newShapeTemplate[i]; - if ( dimSize == -1 ) - { + if (dimSize == -1) { // Then this dimension should be inferred. // Temporarily set the dimSize to be 1 so that we // can use the tensorSize function to compute the // size so far. inferredIndex = i; dimSize = 1; - } - else if ( dimSize == 0 ) - { - if ( !allowZero ) - { - if ( i < oldShape.size() ) - { + } else if (dimSize == 0) { + if (!allowZero) { + if (i < oldShape.size()) { dimSize = oldShape[i]; } } } - newShape.append( dimSize ); + newShape.append(dimSize); } - if ( inferredIndex != -1 ) - { - newShape[inferredIndex] = tensorSize( oldShape ) / tensorSize( newShape ); + if (inferredIndex != -1) { + newShape[inferredIndex] = tensorSize(oldShape) / tensorSize(newShape); } return newShape; } -void checkEndianness() -{ +void checkEndianness() { int num = 1; - bool systemIsLittleEndian = *(char *)&num == 1; - if ( !systemIsLittleEndian ) - { + bool systemIsLittleEndian = *(char *) &num == 1; + if (!systemIsLittleEndian) { String errorMessage = "Support for Onnx files on non-little endian systems is not " "currently implemented on the command line"; - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); } } const onnx::AttributeProto * -findAttribute( onnx::NodeProto &node, String name, onnx::AttributeProto_AttributeType expectedType ) -{ - for ( const onnx::AttributeProto &attr : node.attribute() ) - { - if ( attr.name() == name.ascii() ) - { - if ( attr.type() != expectedType ) - { - illTypedAttributeError( node, attr, expectedType ); +findAttribute(onnx::NodeProto &node, String name, onnx::AttributeProto_AttributeType expectedType) { + for (const onnx::AttributeProto &attr: node.attribute()) { + if (attr.name() == name.ascii()) { + if (attr.type() != expectedType) { + illTypedAttributeError(node, attr, expectedType); } return &attr; } @@ -309,243 +268,187 @@ findAttribute( onnx::NodeProto &node, String name, onnx::AttributeProto_Attribut return nullptr; } -float getFloatAttribute( onnx::NodeProto &node, String name, float defaultValue ) -{ +float getFloatAttribute(onnx::NodeProto &node, String name, float defaultValue) { const onnx::AttributeProto *attr = - findAttribute( node, name, onnx::AttributeProto_AttributeType_FLOAT ); - if ( attr == nullptr ) - { + findAttribute(node, name, onnx::AttributeProto_AttributeType_FLOAT); + if (attr == nullptr) { return defaultValue; } return attr->f(); } -String getStringAttribute( onnx::NodeProto &node, String name, String defaultValue ) -{ +String getStringAttribute(onnx::NodeProto &node, String name, String defaultValue) { const onnx::AttributeProto *attr = - findAttribute( node, name, onnx::AttributeProto_AttributeType_STRING ); - if ( attr == nullptr ) - { + findAttribute(node, name, onnx::AttributeProto_AttributeType_STRING); + if (attr == nullptr) { return defaultValue; } return attr->s(); } -int getIntAttribute( onnx::NodeProto &node, String name, int defaultValue ) -{ +int getIntAttribute(onnx::NodeProto &node, String name, int defaultValue) { const onnx::AttributeProto *attr = - findAttribute( node, name, onnx::AttributeProto_AttributeType_INT ); - if ( attr == nullptr ) - { + findAttribute(node, name, onnx::AttributeProto_AttributeType_INT); + if (attr == nullptr) { return defaultValue; } return attr->i(); } -int getRequiredIntAttribute( onnx::NodeProto &node, String name ) -{ +int getRequiredIntAttribute(onnx::NodeProto &node, String name) { const onnx::AttributeProto *attr = - findAttribute( node, name, onnx::AttributeProto_AttributeType_INT ); - if ( attr == nullptr ) - { - missingAttributeError( node, name ); + findAttribute(node, name, onnx::AttributeProto_AttributeType_INT); + if (attr == nullptr) { + missingAttributeError(node, name); } return attr->i(); } -const onnx::AttributeProto *getTensorAttribute( onnx::NodeProto &node, String name ) -{ +const onnx::AttributeProto *getTensorAttribute(onnx::NodeProto &node, String name) { const onnx::AttributeProto *attr = - findAttribute( node, name, onnx::AttributeProto_AttributeType_TENSOR ); - if ( attr == nullptr ) - { - missingAttributeError( node, name ); + findAttribute(node, name, onnx::AttributeProto_AttributeType_TENSOR); + if (attr == nullptr) { + missingAttributeError(node, name); } return attr; } -Vector getIntsAttribute( onnx::NodeProto &node, String name, Vector &defaultValue ) -{ +Vector getIntsAttribute(onnx::NodeProto &node, String name, Vector &defaultValue) { const onnx::AttributeProto *attr = - findAttribute( node, name, onnx::AttributeProto_AttributeType_INTS ); - if ( attr == nullptr ) - { + findAttribute(node, name, onnx::AttributeProto_AttributeType_INTS); + if (attr == nullptr) { return defaultValue; } Vector result; - for ( int i = 0; i < attr->ints_size(); i++ ) - { - result.append( attr->ints( i ) ); + for (int i = 0; i < attr->ints_size(); i++) { + result.append(attr->ints(i)); } return result; } Vector -getNonNegativeIntsAttribute( onnx::NodeProto &node, String name, Vector &defaultValue ) -{ +getNonNegativeIntsAttribute(onnx::NodeProto &node, String name, Vector &defaultValue) { const onnx::AttributeProto *attr = - findAttribute( node, name, onnx::AttributeProto_AttributeType_INTS ); - if ( attr == nullptr ) - { + findAttribute(node, name, onnx::AttributeProto_AttributeType_INTS); + if (attr == nullptr) { return defaultValue; } Vector result; - for ( int i = 0; i < attr->ints_size(); i++ ) - { - int value = attr->ints( i ); - if ( value >= 0 ) - { - result.append( (uint)value ); - } - else - { + for (int i = 0; i < attr->ints_size(); i++) { + int value = attr->ints(i); + if (value >= 0) { + result.append((uint) value); + } else { String location = - Stringf( "attribute '%s' on node '%s'", name.ascii(), node.name().c_str() ); - unexpectedNegativeValue( value, location ); + Stringf("attribute '%s' on node '%s'", name.ascii(), node.name().c_str()); + unexpectedNegativeValue(value, location); } } return result; } -Vector getTensorFloatValues( const onnx::TensorProto &tensor, const TensorShape shape ) -{ - int size = tensorSize( shape ); +Vector getTensorFloatValues(const onnx::TensorProto &tensor, const TensorShape shape) { + int size = tensorSize(shape); std::string raw_data = tensor.raw_data(); Vector result; - if ( raw_data.size() != 0 ) - { + if (raw_data.size() != 0) { checkEndianness(); const char *bytes = raw_data.c_str(); const float *floats = reinterpret_cast( bytes ); - for ( int i = 0; i < size; i++ ) - { - result.append( *( floats + i ) ); + for (int i = 0; i < size; i++) { + result.append(*(floats + i)); } - } - else - { - for ( int i = 0; i < size; i++ ) - { - result.append( tensor.float_data( i ) ); + } else { + for (int i = 0; i < size; i++) { + result.append(tensor.float_data(i)); } } return result; } -Vector getTensorIntValues( const onnx::TensorProto &tensor, const TensorShape shape ) -{ - int size = tensorSize( shape ); +Vector getTensorIntValues(const onnx::TensorProto &tensor, const TensorShape shape) { + int size = tensorSize(shape); std::string raw_data = tensor.raw_data(); Vector result; - if ( raw_data.size() != 0 ) - { + if (raw_data.size() != 0) { checkEndianness(); const char *bytes = raw_data.c_str(); const int64_t *ints = reinterpret_cast( bytes ); - for ( int i = 0; i < size; i++ ) - { - int64_t value = *( ints + i ); - result.append( value ); + for (int i = 0; i < size; i++) { + int64_t value = *(ints + i); + result.append(value); } - } - else - { - for ( int i = 0; i < size; i++ ) - { - int value = tensor.int64_data( i ); - result.append( value ); + } else { + for (int i = 0; i < size; i++) { + int value = tensor.int64_data(i); + result.append(value); } } return result; } -Vector getTensorInt32Values( const onnx::TensorProto &tensor, const TensorShape shape ) -{ - int size = tensorSize( shape ); +Vector getTensorInt32Values(const onnx::TensorProto &tensor, const TensorShape shape) { + int size = tensorSize(shape); std::string raw_data = tensor.raw_data(); Vector result; - if ( raw_data.size() != 0 ) - { + if (raw_data.size() != 0) { checkEndianness(); const char *bytes = raw_data.c_str(); const int32_t *int32 = reinterpret_cast( bytes ); - for ( int i = 0; i < size; i++ ) - { - int32_t value = *( int32 + i ); - result.append( value ); + for (int i = 0; i < size; i++) { + int32_t value = *(int32 + i); + result.append(value); } - } - else - { - for ( int i = 0; i < size; i++ ) - { - int32_t value = tensor.int32_data( i ); - result.append( value ); + } else { + for (int i = 0; i < size; i++) { + int32_t value = tensor.int32_data(i); + result.append(value); } } return result; } -bool OnnxParser::isConstantNode( String name ) -{ - return _constantIntTensors.exists( name ) || _constantFloatTensors.exists( name ) || - _constantInt32Tensors.exists( name ); +bool OnnxParser::isConstantNode(String name) { + return _constantIntTensors.exists(name) || _constantFloatTensors.exists(name) || + _constantInt32Tensors.exists(name); } -void OnnxParser::insertConstant( String name, - const onnx::TensorProto &tensor, - const TensorShape shape ) -{ - checkTensorDataSourceIsInternal( tensor ); +void OnnxParser::insertConstant(String name, + const onnx::TensorProto &tensor, + const TensorShape shape) { + checkTensorDataSourceIsInternal(tensor); onnx::TensorProto_DataType dataType = - static_cast( tensor.data_type() ); - if ( dataType == onnx::TensorProto_DataType_INT64 ) - { - _constantIntTensors.insert( name, getTensorIntValues( tensor, shape ) ); - } - else if ( dataType == onnx::TensorProto_DataType_FLOAT ) - { - _constantFloatTensors.insert( name, getTensorFloatValues( tensor, shape ) ); - } - else if ( dataType == onnx::TensorProto_DataType_BOOL ) - { + static_cast( tensor.data_type()); + if (dataType == onnx::TensorProto_DataType_INT64) { + _constantIntTensors.insert(name, getTensorIntValues(tensor, shape)); + } else if (dataType == onnx::TensorProto_DataType_FLOAT) { + _constantFloatTensors.insert(name, getTensorFloatValues(tensor, shape)); + } else if (dataType == onnx::TensorProto_DataType_BOOL) { // NOTE: INT32, INT16, INT8, INT4, UINT16, UINT8, UINT4, BOOL, FLOAT16, // BFLOAT16, FLOAT8E4M3FN, FLOAT8E4M3FNUZ, FLOAT8E5M2, FLOAT8E5M2FNUZ // are all represented as an int32. Support for those should be added later // when there is a practical need. - _constantInt32Tensors.insert( name, getTensorInt32Values( tensor, shape ) ); - } - else - { - unimplementedConstantTypeError( dataType ); + _constantInt32Tensors.insert(name, getTensorInt32Values(tensor, shape)); + } else { + unimplementedConstantTypeError(dataType); } } -void OnnxParser::transferValues( String oldName, String newName ) -{ - if ( _varMap.exists( oldName ) ) - { +void OnnxParser::transferValues(String oldName, String newName) { + if (_varMap.exists(oldName)) { _varMap[newName] = _varMap[oldName]; - } - else if ( _constantIntTensors.exists( oldName ) ) - { - _constantIntTensors.insert( newName, _constantIntTensors[oldName] ); - } - else if ( _constantFloatTensors.exists( oldName ) ) - { - _constantFloatTensors.insert( newName, _constantFloatTensors[oldName] ); - } - else if ( _constantInt32Tensors.exists( oldName ) ) - { - _constantInt32Tensors.insert( newName, _constantInt32Tensors[oldName] ); - } - else - { - missingNodeError( oldName ); + } else if (_constantIntTensors.exists(oldName)) { + _constantIntTensors.insert(newName, _constantIntTensors[oldName]); + } else if (_constantFloatTensors.exists(oldName)) { + _constantFloatTensors.insert(newName, _constantFloatTensors[oldName]); + } else if (_constantInt32Tensors.exists(oldName)) { + _constantInt32Tensors.insert(newName, _constantInt32Tensors[oldName]); + } else { + missingNodeError(oldName); } } @@ -553,197 +456,161 @@ void OnnxParser::transferValues( String oldName, String newName ) * Private methods * *******************/ -OnnxParser::OnnxParser( InputQueryBuilder &query, - const String &path, - const Set inputNames, - const Set terminalNames ) - : _query( query ) -{ +OnnxParser::OnnxParser(InputQueryBuilder &query, + const String &path, + const Set inputNames, + const Set terminalNames) + : _query(query) { // open file and move current position in file to the end - std::ifstream input( path.ascii(), std::ios::ate | std::ios::binary ); + std::ifstream input(path.ascii(), std::ios::ate | std::ios::binary); // get current position in file std::streamsize size = input.tellg(); // move to start of file - input.seekg( 0, std::ios::beg ); + input.seekg(0, std::ios::beg); // read raw data - Vector buffer( size ); - input.read( buffer.data(), size ); + Vector buffer(size); + input.read(buffer.data(), size); // parse protobuf onnx::ModelProto model; - model.ParseFromArray( buffer.data(), size ); + model.ParseFromArray(buffer.data(), size); _network = model.graph(); _numberOfFoundInputs = 0; - if ( inputNames.empty() ) - { + if (inputNames.empty()) { _inputNames = readInputNames(); - } - else - { - validateUserInputNames( inputNames ); + } else { + validateUserInputNames(inputNames); _inputNames = inputNames; } - if ( terminalNames.empty() ) - { + if (terminalNames.empty()) { _terminalNames = readOutputNames(); - } - else - { - validateUserTerminalNames( terminalNames ); + } else { + validateUserTerminalNames(terminalNames); _terminalNames = terminalNames; } } -void OnnxParser::validateUserInputNames( const Set &inputNames ) -{ +void OnnxParser::validateUserInputNames(const Set &inputNames) { // Collate all input nodes Set allInputNames; - for ( const onnx::ValueInfoProto &node : _network.input() ) - { + for (const onnx::ValueInfoProto &node: _network.input()) { const std::string name = node.name(); - if ( isConstantNode( name ) ) + if (isConstantNode(name)) continue; - if ( allInputNames.exists( name ) ) - { + if (allInputNames.exists(name)) { String errorMessage = Stringf( - "Input nodes in Onnx network must have a unique name but found duplicate name '%s'", - name.c_str() ); - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); - } - else - { - allInputNames.insert( name ); + "Input nodes in Onnx network must have a unique name but found duplicate name '%s'", + name.c_str()); + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); + } else { + allInputNames.insert(name); } } // Validate the provided inputs - for ( String inputName : inputNames ) - { - if ( !allInputNames.exists( inputName ) ) - { - String errorMessage = Stringf( "Input %s not found in graph!", inputName.ascii() ); - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); + for (String inputName: inputNames) { + if (!allInputNames.exists(inputName)) { + String errorMessage = Stringf("Input %s not found in graph!", inputName.ascii()); + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); } } } -void OnnxParser::validateUserTerminalNames( const Set &terminalNames ) -{ - for ( String terminalName : terminalNames ) - { - for ( auto node : _network.node() ) - { - for ( String outputNodeName : node.output() ) - { - if ( terminalName == outputNodeName ) +void OnnxParser::validateUserTerminalNames(const Set &terminalNames) { + for (String terminalName: terminalNames) { + for (auto node: _network.node()) { + for (String outputNodeName: node.output()) { + if (terminalName == outputNodeName) return; } } - String errorMessage = Stringf( "Output %s not found in graph!", terminalName.ascii() ); - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); + String errorMessage = Stringf("Output %s not found in graph!", terminalName.ascii()); + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); } } -const Set OnnxParser::readInputNames() -{ - ASSERT( _network.input().size() >= 1 ); +const Set OnnxParser::readInputNames() { + ASSERT(_network.input().size() >= 1); Set initializerNames; - for ( auto &initNode : _network.initializer() ) - { - ONNX_LOG( Stringf( "Found initialiser '%s'", initNode.name().c_str() ).ascii() ); - initializerNames.insert( initNode.name() ); + for (auto &initNode: _network.initializer()) { + ONNX_LOG(Stringf("Found initialiser '%s'", initNode.name().c_str()).ascii()); + initializerNames.insert(initNode.name()); } Set inputNames; - for ( auto &inputNode : _network.input() ) - { - ONNX_LOG( Stringf( "Found input '%s'", inputNode.name().c_str() ).ascii() ); - inputNames.insert( inputNode.name() ); + for (auto &inputNode: _network.input()) { + ONNX_LOG(Stringf("Found input '%s'", inputNode.name().c_str()).ascii()); + inputNames.insert(inputNode.name()); } - return Set::difference( inputNames, initializerNames ); + return Set::difference(inputNames, initializerNames); } -const Set OnnxParser::readOutputNames() -{ +const Set OnnxParser::readOutputNames() { Set outputNames; - for ( auto &outputNode : _network.output() ) - { - ONNX_LOG( Stringf( "Found output '%s'", outputNode.name().c_str() ).ascii() ); - outputNames.insert( outputNode.name() ); + for (auto &outputNode: _network.output()) { + ONNX_LOG(Stringf("Found output '%s'", outputNode.name().c_str()).ascii()); + outputNames.insert(outputNode.name()); } return outputNames; } -void OnnxParser::initializeShapeAndConstantMaps() -{ +void OnnxParser::initializeShapeAndConstantMaps() { // Add shapes for inputs - for ( auto input : _network.input() ) - { + for (auto input: _network.input()) { String inputName = input.name(); - _shapeMap.insert( inputName, shapeOfInput( input ) ); + _shapeMap.insert(inputName, shapeOfInput(input)); // If this is one of the specified inputs, create new variables - if ( _inputNames.exists( inputName ) ) - { - _processedNodes.insert( inputName ); + if (_inputNames.exists(inputName)) { + _processedNodes.insert(inputName); _numberOfFoundInputs += 1; - Vector nodeVars = makeNodeVariables( inputName, true ); + Vector nodeVars = makeNodeVariables(inputName, true); } } // Initialise constants - for ( const onnx::TensorProto &constant : _network.initializer() ) - { + for (const onnx::TensorProto &constant: _network.initializer()) { String constantName = constant.name(); - if ( isConstantNode( constantName ) ) - { - String errorMessage = Stringf( "Initializers in Onnx network must have a unique name " - "but found duplicate name '%s'", - constantName.ascii() ); - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); - } - else - { - TensorShape constantShape = shapeOfConstant( constant ); - _shapeMap.insert( constantName, constantShape ); - _processedNodes.insert( constantName ); - insertConstant( constantName, constant, constantShape ); + if (isConstantNode(constantName)) { + String errorMessage = Stringf("Initializers in Onnx network must have a unique name " + "but found duplicate name '%s'", + constantName.ascii()); + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); + } else { + TensorShape constantShape = shapeOfConstant(constant); + _shapeMap.insert(constantName, constantShape); + _processedNodes.insert(constantName); + insertConstant(constantName, constant, constantShape); } } } -void OnnxParser::validateAllInputsAndOutputsFound() -{ +void OnnxParser::validateAllInputsAndOutputsFound() { // By this point, all input variables need to have been found - if ( _numberOfFoundInputs != _inputNames.size() ) - { + if (_numberOfFoundInputs != _inputNames.size()) { String errorMessage = "These input variables could not be found:"; - for ( String inputName : _inputNames ) - { - if ( !_varMap.exists( inputName ) ) - { + for (String inputName: _inputNames) { + if (!_varMap.exists(inputName)) { String space = " "; errorMessage += space + inputName; } } - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); } // Mark the output variables - for ( String terminalName : _terminalNames ) - { - for ( Variable var : _varMap[terminalName] ) - { - _query.markOutputVariable( var ); + for (String terminalName: _terminalNames) { + for (Variable var: _varMap[terminalName]) { + _query.markOutputVariable(var); } } } @@ -756,12 +623,10 @@ void OnnxParser::validateAllInputsAndOutputsFound() * @param terminalNames The names of the output node to end at. * @param query The query in which to store the generated constraints. */ -void OnnxParser::processGraph() -{ +void OnnxParser::processGraph() { initializeShapeAndConstantMaps(); - for ( String terminalName : _terminalNames ) - { - processNode( terminalName, true ); + for (String terminalName: _terminalNames) { + processNode(terminalName, true); } validateAllInputsAndOutputsFound(); } @@ -774,13 +639,11 @@ void OnnxParser::processGraph() * @param node * @param makeEquations */ -void OnnxParser::processNode( String &nodeName, bool makeEquations ) -{ - if ( _processedNodes.exists( nodeName ) ) +void OnnxParser::processNode(String &nodeName, bool makeEquations) { + if (_processedNodes.exists(nodeName)) return; - if ( _inputNames.exists( nodeName ) ) - { + if (_inputNames.exists(nodeName)) { _numberOfFoundInputs += 1; // If an inputName is an intermediate layer of the network, we don't need to create Marabou // equations for its inputs. However, we still need to call makeMarabouEquations in order to @@ -788,62 +651,53 @@ void OnnxParser::processNode( String &nodeName, bool makeEquations ) makeEquations = false; } - _processedNodes.insert( nodeName ); + _processedNodes.insert(nodeName); - List nodes = getNodesWithOutput( nodeName ); - ASSERT( nodes.size() == 1 ); + List nodes = getNodesWithOutput(nodeName); + ASSERT(nodes.size() == 1); onnx::NodeProto &node = nodes.front(); // First recursively process the input nodes. // This ensures that shapes and values of a node's inputs have been computed first. - for ( auto inputNode : getInputsToNode( node ) ) - { - processNode( inputNode, makeEquations ); + for (auto inputNode: getInputsToNode(node)) { + processNode(inputNode, makeEquations); } // Compute node's shape and create Marabou equations as needed - makeMarabouEquations( node, makeEquations ); + makeMarabouEquations(node, makeEquations); // Create new variables when we find one of the inputs - if ( _inputNames.exists( nodeName ) ) - { - Vector vars = makeNodeVariables( nodeName, true ); + if (_inputNames.exists(nodeName)) { + Vector vars = makeNodeVariables(nodeName, true); } } /** * @brief Assuming the node's shape is known, return a set of new variables in the same shape */ -Vector OnnxParser::makeNodeVariables( String &nodeName, bool isInput ) -{ - ASSERT( !_varMap.exists( nodeName ) ); +Vector OnnxParser::makeNodeVariables(String &nodeName, bool isInput) { + ASSERT(!_varMap.exists(nodeName)); TensorShape shape = _shapeMap[nodeName]; - int size = tensorSize( shape ); + int size = tensorSize(shape); Vector variables; - for ( int i = 0; i < size; i++ ) - { + for (int i = 0; i < size; i++) { Variable variable = _query.getNewVariable(); - variables.append( variable ); - if ( isInput ) - { - _query.markInputVariable( variable ); + variables.append(variable); + if (isInput) { + _query.markInputVariable(variable); } } - _varMap.insert( nodeName, variables ); + _varMap.insert(nodeName, variables); return variables; } -List OnnxParser::getNodesWithOutput( String &nodeName ) -{ +List OnnxParser::getNodesWithOutput(String &nodeName) { List nodes; - for ( auto node : _network.node() ) - { - for ( auto outputName : node.output() ) - { - if ( outputName == nodeName.ascii() ) - { - nodes.append( node ); + for (auto node: _network.node()) { + for (auto outputName: node.output()) { + if (outputName == nodeName.ascii()) { + nodes.append(node); break; } } @@ -851,14 +705,11 @@ List OnnxParser::getNodesWithOutput( String &nodeName ) return nodes; } -Set OnnxParser::getInputsToNode( onnx::NodeProto &node ) -{ +Set OnnxParser::getInputsToNode(onnx::NodeProto &node) { Set inputNames; - for ( String inputNodeName : node.input() ) - { - if ( getNodesWithOutput( inputNodeName ).size() >= 1 ) - { - inputNames.insert( inputNodeName ); + for (String inputNodeName: node.input()) { + if (getNodesWithOutput(inputNodeName).size() >= 1) { + inputNames.insert(inputNodeName); } } return inputNames; @@ -871,95 +722,55 @@ Set OnnxParser::getInputsToNode( onnx::NodeProto &node ) * @param node Name of node for which we want to compute the output shape * @param makeEquations Create Marabou equations for this node if True */ -void OnnxParser::makeMarabouEquations( onnx::NodeProto &node, bool makeEquations ) -{ +void OnnxParser::makeMarabouEquations(onnx::NodeProto &node, bool makeEquations) { auto nodeType = node.op_type().c_str(); ONNX_LOG( - Stringf( "Processing node '%s' of type '%s'", node.name().c_str(), nodeType ).ascii() ); - - if ( strcmp( nodeType, "Constant" ) == 0 ) - { - constant( node ); - } - else if ( strcmp( nodeType, "Identity" ) == 0 ) - { - identity( node ); - } - else if ( strcmp( nodeType, "Dropout" ) == 0 ) - { - dropout( node ); - } - else if ( strcmp( nodeType, "Cast" ) == 0 ) - { - cast( node ); - } - else if ( strcmp( nodeType, "Reshape" ) == 0 ) - { - reshape( node ); - } - else if ( strcmp( nodeType, "Flatten" ) == 0 ) - { - flatten( node ); - } - else if ( strcmp( nodeType, "Transpose" ) == 0 ) - { - transpose( node ); - } - else if ( strcmp( nodeType, "Squeeze" ) == 0 ) - { - squeeze( node ); - } - else if ( strcmp( nodeType, "Unsqueeze" ) == 0 ) - { - unsqueeze( node ); - } - else if ( strcmp( nodeType, "BatchNormalization" ) == 0 ) - { - batchNormEquations( node, makeEquations ); - } - else if ( strcmp( nodeType, "MaxPool" ) == 0 ) - { - maxPoolEquations( node, makeEquations ); - } - else if ( strcmp( nodeType, "Conv" ) == 0 ) - { - convEquations( node, makeEquations ); - } - else if ( strcmp( nodeType, "Gemm" ) == 0 ) - { - gemmEquations( node, makeEquations ); - } - else if ( strcmp( nodeType, "Add" ) == 0 ) - { - scaleAndAddEquations( node, makeEquations, 1, 1 ); - } - else if ( strcmp( nodeType, "Sub" ) == 0 ) - { - scaleAndAddEquations( node, makeEquations, 1, -1 ); - } - else if ( strcmp( nodeType, "Relu" ) == 0 ) - { - reluEquations( node, makeEquations ); - } - else if ( strcmp( nodeType, "LeakyRelu" ) == 0 ) - { - leakyReluEquations( node, makeEquations ); - } - else if ( strcmp( nodeType, "MatMul" ) == 0 ) - { - matMulEquations( node, makeEquations ); - } - else if ( strcmp( nodeType, "Sigmoid" ) == 0 ) - { - sigmoidEquations( node, makeEquations ); - } - else if ( strcmp( nodeType, "Tanh" ) == 0 ) - { - tanhEquations( node, makeEquations ); - } - else - { - unsupportedError( node ); + Stringf("Processing node '%s' of type '%s'", node.name().c_str(), nodeType).ascii()); + + if (strcmp(nodeType, "Constant") == 0) { + constant(node); + } else if (strcmp(nodeType, "Identity") == 0) { + identity(node); + } else if (strcmp(nodeType, "Dropout") == 0) { + dropout(node); + } else if (strcmp(nodeType, "Cast") == 0) { + cast(node); + } else if (strcmp(nodeType, "Reshape") == 0) { + reshape(node); + } else if (strcmp(nodeType, "Flatten") == 0) { + flatten(node); + } else if (strcmp(nodeType, "Transpose") == 0) { + transpose(node); + } else if (strcmp(nodeType, "Squeeze") == 0) { + squeeze(node); + } else if (strcmp(nodeType, "Unsqueeze") == 0) { + unsqueeze(node); + } else if (strcmp(nodeType, "BatchNormalization") == 0) { + batchNormEquations(node, makeEquations); + } else if (strcmp(nodeType, "MaxPool") == 0) { + maxPoolEquations(node, makeEquations); + } else if (strcmp(nodeType, "Conv") == 0) { + convEquations(node, makeEquations); + } else if (strcmp(nodeType, "Gemm") == 0) { + gemmEquations(node, makeEquations); + } else if (strcmp(nodeType, "Add") == 0) { + scaleAndAddEquations(node, makeEquations, 1, 1); + } else if (strcmp(nodeType, "Sub") == 0) { + scaleAndAddEquations(node, makeEquations, 1, -1); + } else if (strcmp(nodeType, "Relu") == 0) { + reluEquations(node, makeEquations); + } else if (strcmp(nodeType, "LeakyRelu") == 0) { + leakyReluEquations(node, makeEquations); + } else if (strcmp(nodeType, "MatMul") == 0) { + matMulEquations(node, makeEquations); + } else if (strcmp(nodeType, "Sigmoid") == 0) { + sigmoidEquations(node, makeEquations); + } else if (strcmp(nodeType, "Tanh") == 0) { + tanhEquations(node, makeEquations); + } else if (strcmp(nodeType, "Sign") == 0) { + signEquations(node, makeEquations); + } else { + unsupportedError(node); } } @@ -969,14 +780,13 @@ void OnnxParser::makeMarabouEquations( onnx::NodeProto &node, bool makeEquations * * @param node The ONNX node */ -void OnnxParser::constant( onnx::NodeProto &node ) -{ +void OnnxParser::constant(onnx::NodeProto &node) { String outputNodeName = node.output()[0]; - const onnx::TensorProto &value = getTensorAttribute( node, "value" )->t(); - const TensorShape shape = shapeOfConstant( value ); + const onnx::TensorProto &value = getTensorAttribute(node, "value")->t(); + const TensorShape shape = shapeOfConstant(value); _shapeMap[outputNodeName] = shape; - insertConstant( outputNodeName, value, shape ); + insertConstant(outputNodeName, value, shape); } /** @@ -985,13 +795,12 @@ void OnnxParser::constant( onnx::NodeProto &node ) * * @param node The ONNX node */ -void OnnxParser::identity( onnx::NodeProto &node ) -{ +void OnnxParser::identity(onnx::NodeProto &node) { String outputNodeName = node.output()[0]; String inputNodeName = node.input()[0]; _shapeMap[outputNodeName] = _shapeMap[inputNodeName]; - transferValues( inputNodeName, outputNodeName ); + transferValues(inputNodeName, outputNodeName); } /** @@ -1000,24 +809,19 @@ void OnnxParser::identity( onnx::NodeProto &node ) * * @param node The ONNX node */ -void OnnxParser::dropout( onnx::NodeProto &node ) -{ - if ( node.input().size() == 3 ) - { +void OnnxParser::dropout(onnx::NodeProto &node) { + if (node.input().size() == 3) { String trainingModeName = node.input()[2]; - if ( !_constantInt32Tensors.exists( trainingModeName ) ) - { - missingNodeError( trainingModeName ); - } - else if ( _constantInt32Tensors[trainingModeName][0] ) - { + if (!_constantInt32Tensors.exists(trainingModeName)) { + missingNodeError(trainingModeName); + } else if (_constantInt32Tensors[trainingModeName][0]) { // training mode is set to true - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, - "Marabou only supports training_mode=false in Dropout" ); + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, + "Marabou only supports training_mode=false in Dropout"); } } - identity( node ); + identity(node); } /** @@ -1026,71 +830,52 @@ void OnnxParser::dropout( onnx::NodeProto &node ) * * @param node The ONNX node */ -void OnnxParser::cast( onnx::NodeProto &node ) -{ +void OnnxParser::cast(onnx::NodeProto &node) { String outputNodeName = node.output()[0]; String inputNodeName = node.input()[0]; _shapeMap[outputNodeName] = _shapeMap[inputNodeName]; // Try to find type to cast to. If not found, raise error. onnx::TensorProto_DataType to = - static_cast( getRequiredIntAttribute( node, "to" ) ); + static_cast( getRequiredIntAttribute(node, "to")); - if ( _varMap.exists( inputNodeName ) ) - { + if (_varMap.exists(inputNodeName)) { // We shouldn't be casting variables to different types, since Marabou assumes variables // have double precision String errorMessage = - Stringf( "The node '%s' casts non-constant values which is not supported by Marabou", - inputNodeName.ascii() ); - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); + Stringf("The node '%s' casts non-constant values which is not supported by Marabou", + inputNodeName.ascii()); + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); } - if ( _constantIntTensors.exists( inputNodeName ) ) - { + if (_constantIntTensors.exists(inputNodeName)) { Vector tensor = _constantIntTensors[inputNodeName]; - if ( to == onnx::TensorProto_DataType_INT64 ) - { - _constantIntTensors.insert( outputNodeName, tensor ); - } - else if ( to == onnx::TensorProto_DataType_FLOAT ) - { - Vector castTensor = Vector( tensor.size() ); - for ( PackedTensorIndices i = 0; i < tensor.size(); i++ ) - { + if (to == onnx::TensorProto_DataType_INT64) { + _constantIntTensors.insert(outputNodeName, tensor); + } else if (to == onnx::TensorProto_DataType_FLOAT) { + Vector castTensor = Vector(tensor.size()); + for (PackedTensorIndices i = 0; i < tensor.size(); i++) { castTensor[i] = static_cast( tensor[i] ); } - _constantFloatTensors.insert( outputNodeName, castTensor ); - } - else - { - unsupportedCastError( onnx::TensorProto_DataType_INT64, to ); + _constantFloatTensors.insert(outputNodeName, castTensor); + } else { + unsupportedCastError(onnx::TensorProto_DataType_INT64, to); } - } - else if ( _constantFloatTensors.exists( inputNodeName ) ) - { + } else if (_constantFloatTensors.exists(inputNodeName)) { Vector tensor = _constantFloatTensors[inputNodeName]; - if ( to == onnx::TensorProto_DataType_INT64 ) - { - Vector castTensor = Vector( tensor.size() ); - for ( PackedTensorIndices i = 0; i < tensor.size(); i++ ) - { + if (to == onnx::TensorProto_DataType_INT64) { + Vector castTensor = Vector(tensor.size()); + for (PackedTensorIndices i = 0; i < tensor.size(); i++) { castTensor[i] = static_cast( tensor[i] ); } - _constantIntTensors.insert( outputNodeName, castTensor ); - } - else if ( to == onnx::TensorProto_DataType_FLOAT ) - { - _constantFloatTensors.insert( outputNodeName, tensor ); + _constantIntTensors.insert(outputNodeName, castTensor); + } else if (to == onnx::TensorProto_DataType_FLOAT) { + _constantFloatTensors.insert(outputNodeName, tensor); + } else { + unsupportedCastError(onnx::TensorProto_DataType_FLOAT, to); } - else - { - unsupportedCastError( onnx::TensorProto_DataType_FLOAT, to ); - } - } - else - { - missingNodeError( inputNodeName ); + } else { + missingNodeError(inputNodeName); } } @@ -1100,23 +885,22 @@ void OnnxParser::cast( onnx::NodeProto &node ) * * @param node The ONNX node */ -void OnnxParser::reshape( onnx::NodeProto &node ) -{ +void OnnxParser::reshape(onnx::NodeProto &node) { // Assume first input is array to be reshaped, second input is the new shape array String inputNodeName = node.input()[0]; String shapeNodeName = node.input()[1]; String outputNodeName = node.output()[0]; - bool allowZeroes = getIntAttribute( node, "allowzero", 0 ) != 0; + bool allowZeroes = getIntAttribute(node, "allowzero", 0) != 0; TensorShape oldShape = _shapeMap[inputNodeName]; Vector newShapeTemplate = _constantIntTensors[shapeNodeName]; - TensorShape newShape = instantiateReshapeTemplate( oldShape, newShapeTemplate, allowZeroes ); + TensorShape newShape = instantiateReshapeTemplate(oldShape, newShapeTemplate, allowZeroes); _shapeMap[outputNodeName] = newShape; // Transfer constants/variables - transferValues( inputNodeName, outputNodeName ); + transferValues(inputNodeName, outputNodeName); } /** @@ -1125,33 +909,30 @@ void OnnxParser::reshape( onnx::NodeProto &node ) * * @param node The ONNX node */ -void OnnxParser::flatten( onnx::NodeProto &node ) -{ +void OnnxParser::flatten(onnx::NodeProto &node) { String outputNodeName = node.output()[0]; String inputNodeName = node.input()[0]; // Get parameters - unsigned int axis = getIntAttribute( node, "axis", 1 ); + unsigned int axis = getIntAttribute(node, "axis", 1); // Calculate output shape TensorShape inputShape = _shapeMap[inputNodeName]; int dim1 = 1; - for ( unsigned int i = 0; i < axis; i++ ) - { + for (unsigned int i = 0; i < axis; i++) { dim1 *= inputShape[i]; } int dim2 = 1; - for ( unsigned int i = axis; i < inputShape.size(); i++ ) - { + for (unsigned int i = axis; i < inputShape.size(); i++) { dim2 *= inputShape[i]; } TensorShape outputShape; - outputShape.append( dim1 ); - outputShape.append( dim2 ); + outputShape.append(dim1); + outputShape.append(dim2); // Transfer constants/variables _shapeMap[outputNodeName] = outputShape; - transferValues( inputNodeName, outputNodeName ); + transferValues(inputNodeName, outputNodeName); } /** @@ -1160,42 +941,34 @@ void OnnxParser::flatten( onnx::NodeProto &node ) * * @param node The ONNX node */ -void OnnxParser::transpose( onnx::NodeProto &node ) -{ +void OnnxParser::transpose(onnx::NodeProto &node) { String inputNodeName = node.input()[0]; String outputNodeName = node.output()[0]; TensorShape inputShape = _shapeMap[inputNodeName]; // Get permutation (default is the reverse permutation) - Permutation defaultPerm = reversePermutation( inputShape.size() ); - Permutation perm = getNonNegativeIntsAttribute( node, "perm", defaultPerm ); + Permutation defaultPerm = reversePermutation(inputShape.size()); + Permutation perm = getNonNegativeIntsAttribute(node, "perm", defaultPerm); // Calculate the output shape - TensorShape outputShape = transposeVector( inputShape, perm ); + TensorShape outputShape = transposeVector(inputShape, perm); _shapeMap[outputNodeName] = outputShape; // Update the constant or variable maps - if ( _varMap.exists( inputNodeName ) ) - { + if (_varMap.exists(inputNodeName)) { Vector inputVars = _varMap[inputNodeName]; - _varMap[outputNodeName] = transposeTensor( inputVars, inputShape, perm ); - } - else if ( _constantIntTensors.exists( inputNodeName ) ) - { + _varMap[outputNodeName] = transposeTensor(inputVars, inputShape, perm); + } else if (_constantIntTensors.exists(inputNodeName)) { Vector inputConstant = _constantIntTensors[inputNodeName]; - _constantIntTensors.insert( outputNodeName, - transposeTensor( inputConstant, inputShape, perm ) ); - } - else if ( _constantFloatTensors.exists( inputNodeName ) ) - { + _constantIntTensors.insert(outputNodeName, + transposeTensor(inputConstant, inputShape, perm)); + } else if (_constantFloatTensors.exists(inputNodeName)) { Vector inputConstant = _constantFloatTensors[inputNodeName]; - _constantFloatTensors.insert( outputNodeName, - transposeTensor( inputConstant, inputShape, perm ) ); - } - else - { - missingNodeError( inputNodeName ); + _constantFloatTensors.insert(outputNodeName, + transposeTensor(inputConstant, inputShape, perm)); + } else { + missingNodeError(inputNodeName); } } @@ -1205,8 +978,7 @@ void OnnxParser::transpose( onnx::NodeProto &node ) * * @param node The ONNX node */ -void OnnxParser::squeeze( onnx::NodeProto &node ) -{ +void OnnxParser::squeeze(onnx::NodeProto &node) { String inputNodeName = node.input()[0]; String outputNodeName = node.output()[0]; @@ -1216,48 +988,37 @@ void OnnxParser::squeeze( onnx::NodeProto &node ) // Get the axes to squeeze Vector axes; unsigned int numberOfInputs = node.input().size(); - if ( numberOfInputs == 1 ) - { - for ( unsigned int i = 0; i < inputShape.size(); i++ ) - { - if ( inputShape[i] == 1 ) - { - axes.append( i ); + if (numberOfInputs == 1) { + for (unsigned int i = 0; i < inputShape.size(); i++) { + if (inputShape[i] == 1) { + axes.append(i); } } - } - else if ( numberOfInputs == 2 ) - { + } else if (numberOfInputs == 2) { String axisName = node.input()[1]; - if ( !_constantIntTensors.exists( axisName ) ) - { - missingNodeError( axisName ); + if (!_constantIntTensors.exists(axisName)) { + missingNodeError(axisName); } - for ( int64_t axis : _constantIntTensors[axisName] ) - { - axes.append( static_cast( axis ) ); + for (int64_t axis: _constantIntTensors[axisName]) { + axes.append(static_cast( axis )); } - } - else - { - unexpectedNumberOfInputs( node, numberOfInputs, 1, 2 ); + } else { + unexpectedNumberOfInputs(node, numberOfInputs, 1, 2); } // Calculate the output shape - TensorShape outputShape = Vector( inputShape ); - for ( SignedTensorIndex signedAxis : axes ) - { - TensorIndex axis = unsignIndex( inputShape.size(), signedAxis ); - if ( inputShape[axis] != 1 ) - { - String errorMessage = Stringf( "Invalid axis found on Squeeze node '%s'. Expected " - "dimension %d to be of size 1 but was size %d", - inputNodeName.ascii(), - axis, - inputShape[axis] ); - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); + TensorShape outputShape = Vector(inputShape); + for (SignedTensorIndex signedAxis: axes) { + TensorIndex axis = unsignIndex(inputShape.size(), signedAxis); + if (inputShape[axis] != 1) { + String errorMessage = Stringf("Invalid axis found on Squeeze node '%s'. Expected " + "dimension %d to be of size 1 but was size %d", + inputNodeName.ascii(), + axis, + inputShape[axis]); + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); } - outputShape.eraseAt( axis ); + outputShape.eraseAt(axis); } // Update the maps @@ -1272,8 +1033,7 @@ void OnnxParser::squeeze( onnx::NodeProto &node ) * * @param node The ONNX node */ -void OnnxParser::unsqueeze( onnx::NodeProto &node ) -{ +void OnnxParser::unsqueeze(onnx::NodeProto &node) { String inputNodeName = node.input()[0]; String outputNodeName = node.output()[0]; @@ -1282,27 +1042,24 @@ void OnnxParser::unsqueeze( onnx::NodeProto &node ) // Get the axes to unsqueeze String axisName = node.input()[1]; - if ( !_constantIntTensors.exists( axisName ) ) - { - missingNodeError( axisName ); + if (!_constantIntTensors.exists(axisName)) { + missingNodeError(axisName); } Vector axes = _constantIntTensors[axisName]; // Calculate a sorted list of unsigned indices unsigned int outputShapeSize = inputShape.size() + axes.size(); Vector unsignedAxes; - for ( int64_t index : axes ) - { + for (int64_t index: axes) { SignedTensorIndex signedIndex = static_cast( index ); - unsignedAxes.append( unsignIndex( outputShapeSize, signedIndex ) ); + unsignedAxes.append(unsignIndex(outputShapeSize, signedIndex)); } unsignedAxes.sort(); // Calculate the output shape - TensorShape outputShape = Vector( inputShape ); - for ( TensorIndex index : unsignedAxes ) - { - outputShape.insertAt( index, 1 ); + TensorShape outputShape = Vector(inputShape); + for (TensorIndex index: unsignedAxes) { + outputShape.insertAt(index, 1); } // Update the maps @@ -1315,28 +1072,27 @@ void OnnxParser::unsqueeze( onnx::NodeProto &node ) * Implements https://github.com/onnx/onnx/blob/master/docs/Operators.md#batchnormalization. * @param node The ONNX node */ -void OnnxParser::batchNormEquations( onnx::NodeProto &node, bool makeEquations ) -{ +void OnnxParser::batchNormEquations(onnx::NodeProto &node, bool makeEquations) { String outputNodeName = node.output()[0]; String inputNodeName = node.input()[0]; TensorShape inputShape = _shapeMap[inputNodeName]; - ASSERT( inputShape.size() >= 2 ); + ASSERT(inputShape.size() >= 2); - unsigned int batchSize = inputShape.get( 0 ); - unsigned int batchLength = tensorSize( inputShape ) / batchSize; - unsigned int numberOfChannels = inputShape.get( 1 ); + unsigned int batchSize = inputShape.get(0); + unsigned int batchLength = tensorSize(inputShape) / batchSize; + unsigned int numberOfChannels = inputShape.get(1); unsigned int channelLength = batchLength / numberOfChannels; TensorShape outputShape = inputShape; _shapeMap[outputNodeName] = outputShape; - if ( !makeEquations ) + if (!makeEquations) return; // Get inputs - double epsilon = getFloatAttribute( node, "epsilon", 1e-05 ); + double epsilon = getFloatAttribute(node, "epsilon", 1e-05); std::string scalesName = node.input()[1]; std::string biasesName = node.input()[2]; std::string inputMeansName = node.input()[3]; @@ -1346,30 +1102,29 @@ void OnnxParser::batchNormEquations( onnx::NodeProto &node, bool makeEquations ) Vector inputMeans = _constantFloatTensors[inputMeansName]; Vector inputVariances = _constantFloatTensors[inputVariancesName]; - ASSERT( scales.size() == numberOfChannels ); - ASSERT( biases.size() == numberOfChannels ); - ASSERT( inputMeans.size() == numberOfChannels ); - ASSERT( inputVariances.size() == numberOfChannels ); + ASSERT(scales.size() == numberOfChannels); + ASSERT(biases.size() == numberOfChannels); + ASSERT(inputMeans.size() == numberOfChannels); + ASSERT(inputVariances.size() == numberOfChannels); // Get variables Vector inputVars = _varMap[inputNodeName]; - Vector outputVars = makeNodeVariables( outputNodeName, false ); - ASSERT( inputVars.size() == tensorSize( inputShape ) ); - ASSERT( outputVars.size() == tensorSize( outputShape ) ); + Vector outputVars = makeNodeVariables(outputNodeName, false); + ASSERT(inputVars.size() == tensorSize(inputShape)); + ASSERT(outputVars.size() == tensorSize(outputShape)); - for ( unsigned int i = 0; i < inputVars.size(); i++ ) - { - unsigned int channel = ( i % batchLength ) / channelLength; + for (unsigned int i = 0; i < inputVars.size(); i++) { + unsigned int channel = (i % batchLength) / channelLength; double scale = scales[channel]; double bias = biases[channel]; double inputMean = inputMeans[channel]; double inputVariance = inputVariances[channel]; Equation e = Equation(); - e.addAddend( -1, outputVars[i] ); - e.addAddend( 1 / sqrt( inputVariance + epsilon ) * scale, inputVars[i] ); - e.setScalar( inputMean / sqrt( inputVariance + epsilon ) * scale - bias ); - _query.addEquation( e ); + e.addAddend(-1, outputVars[i]); + e.addAddend(1 / sqrt(inputVariance + epsilon) * scale, inputVars[i]); + e.setScalar(inputMean / sqrt(inputVariance + epsilon) * scale - bias); + _query.addEquation(e); } } @@ -1380,20 +1135,18 @@ void OnnxParser::batchNormEquations( onnx::NodeProto &node, bool makeEquations ) * @param node ONNX node representing the MaxPool operation * @param makeEquations True if we need to create new variables and add new Relus */ -void OnnxParser::maxPoolEquations( onnx::NodeProto &node, [[maybe_unused]] bool makeEquations ) -{ +void OnnxParser::maxPoolEquations(onnx::NodeProto &node, [[maybe_unused]] bool makeEquations) { String inputNodeName = node.input()[0]; String outputNodeName = node.output()[0]; // Extract attributes and define shape TensorShape inputShape = _shapeMap[inputNodeName]; - if ( inputShape.size() != 4 ) - { + if (inputShape.size() != 4) { String errorMessage = Stringf( - "Currently the Onnx '%s' operation with inputs of dimensions not equal to '%d'.", - node.op_type().c_str(), - inputShape.size() ); - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); + "Currently the Onnx '%s' operation with inputs of dimensions not equal to '%d'.", + node.op_type().c_str(), + inputShape.size()); + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); } int widthIndex = inputShape.size() - 2; int heightIndex = inputShape.size() - 1; @@ -1402,115 +1155,102 @@ void OnnxParser::maxPoolEquations( onnx::NodeProto &node, [[maybe_unused]] bool // Get auto_pad (deprecated) String defaultAutoPad = "NOTSET"; - String autoPad = getStringAttribute( node, "auto_pad", defaultAutoPad ); - if ( autoPad != defaultAutoPad ) - { - unimplementedAttributeError( node, "auto_pad" ); + String autoPad = getStringAttribute(node, "auto_pad", defaultAutoPad); + if (autoPad != defaultAutoPad) { + unimplementedAttributeError(node, "auto_pad"); } // Get ceil_mode int defaultCeilMode = 0; - int ceilMode = getIntAttribute( node, "ceil_mode", defaultCeilMode ); + int ceilMode = getIntAttribute(node, "ceil_mode", defaultCeilMode); // Get dilations - Vector defaultDilations = { 1, 1 }; + Vector defaultDilations = {1, 1}; Vector dilations = - getNonNegativeIntsAttribute( node, "dilations", defaultDilations ); - for ( auto d : dilations ) - { - if ( d != 1 ) - { - unimplementedAttributeError( node, "dilations" ); + getNonNegativeIntsAttribute(node, "dilations", defaultDilations); + for (auto d: dilations) { + if (d != 1) { + unimplementedAttributeError(node, "dilations"); } } // Get the kernel shape (required) - TensorShape defaultKernelShape = { 1, 1 }; + TensorShape defaultKernelShape = {1, 1}; TensorShape kernelShape = - getNonNegativeIntsAttribute( node, "kernel_shape", defaultKernelShape ); + getNonNegativeIntsAttribute(node, "kernel_shape", defaultKernelShape); // Get the pads - Vector defaultPads = { 0, 0, 0, 0 }; - Vector pads = getNonNegativeIntsAttribute( node, "pads", defaultPads ); - if ( pads.size() == 0 ) - { + Vector defaultPads = {0, 0, 0, 0}; + Vector pads = getNonNegativeIntsAttribute(node, "pads", defaultPads); + if (pads.size() == 0) { String errorMessage = - Stringf( "Unexpected padding length '%d' for the Onnx '%s' operation.", - node.op_type().c_str(), - pads.size() ); - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); + Stringf("Unexpected padding length '%d' for the Onnx '%s' operation.", + node.op_type().c_str(), + pads.size()); + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); } int padWidth = pads[0] + pads[1]; int padHeight = pads[2] + pads[3]; // Get storage order int defaultStorageOrder = 0; - int storageOrder = getIntAttribute( node, "storage_order", defaultStorageOrder ); - if ( storageOrder != defaultStorageOrder ) - { - unimplementedAttributeError( node, "storage_order" ); + int storageOrder = getIntAttribute(node, "storage_order", defaultStorageOrder); + if (storageOrder != defaultStorageOrder) { + unimplementedAttributeError(node, "storage_order"); } // Get strides - Vector defaultStrides = { 1, 1 }; - Vector strides = getNonNegativeIntsAttribute( node, "strides", defaultStrides ); + Vector defaultStrides = {1, 1}; + Vector strides = getNonNegativeIntsAttribute(node, "strides", defaultStrides); // Calculate the outputs shape - TensorShape outputShape = Vector( inputShape ); + TensorShape outputShape = Vector(inputShape); float unroundedOutputWidth = - ( ( (float)( inputWidth + padWidth - ( ( kernelShape[0] - 1 ) * dilations[0] + 1 ) ) ) / - ( (float)strides[0] ) ) + - 1; + (((float) (inputWidth + padWidth - ((kernelShape[0] - 1) * dilations[0] + 1))) / + ((float) strides[0])) + + 1; float unroundedOutputHeight = - ( ( (float)( inputHeight + padHeight - ( ( kernelShape[1] - 1 ) * dilations[1] + 1 ) ) ) / - ( (float)strides[1] ) ) + - 1; + (((float) (inputHeight + padHeight - ((kernelShape[1] - 1) * dilations[1] + 1))) / + ((float) strides[1])) + + 1; - if ( ceilMode == 0 ) - { - outputShape[widthIndex] = (int)std::floor( unroundedOutputWidth ); - outputShape[heightIndex] = (int)std::floor( unroundedOutputHeight ); - } - else - { - outputShape[widthIndex] = (int)std::ceil( unroundedOutputWidth ); - outputShape[heightIndex] = (int)std::ceil( unroundedOutputHeight ); + if (ceilMode == 0) { + outputShape[widthIndex] = (int) std::floor(unroundedOutputWidth); + outputShape[heightIndex] = (int) std::floor(unroundedOutputHeight); + } else { + outputShape[widthIndex] = (int) std::ceil(unroundedOutputWidth); + outputShape[heightIndex] = (int) std::ceil(unroundedOutputHeight); } _shapeMap[outputNodeName] = outputShape; - if ( !makeEquations ) + if (!makeEquations) return; // Make equations Vector inputVars = _varMap[inputNodeName]; - Vector outputVars = makeNodeVariables( outputNodeName, false ); - for ( TensorIndex i = 0; i < outputShape[widthIndex]; i++ ) - { - for ( TensorIndex j = 0; j < outputShape[heightIndex]; j++ ) - { + Vector outputVars = makeNodeVariables(outputNodeName, false); + for (TensorIndex i = 0; i < outputShape[widthIndex]; i++) { + for (TensorIndex j = 0; j < outputShape[heightIndex]; j++) { TensorIndex diStart = strides[0] * i; - TensorIndex diEnd = std::min( diStart + kernelShape[0], inputWidth ); + TensorIndex diEnd = std::min(diStart + kernelShape[0], inputWidth); TensorIndex djStart = strides[1] * j; - TensorIndex djEnd = std::min( djStart + kernelShape[1], inputHeight ); + TensorIndex djEnd = std::min(djStart + kernelShape[1], inputHeight); - for ( TensorIndex k = 0; k < outputShape[1]; k++ ) - { - TensorIndices outputVarIndices = { 0, k, i, j }; - Variable outputVar = tensorLookup( outputVars, outputShape, outputVarIndices ); + for (TensorIndex k = 0; k < outputShape[1]; k++) { + TensorIndices outputVarIndices = {0, k, i, j}; + Variable outputVar = tensorLookup(outputVars, outputShape, outputVarIndices); Set maxInputVars = Set(); - for ( TensorIndex di = diStart; di < diEnd; di++ ) - { - for ( TensorIndex dj = djStart; dj < djEnd; dj++ ) - { - TensorIndices maxInputVarIndices = { 0, k, di, dj }; + for (TensorIndex di = diStart; di < diEnd; di++) { + for (TensorIndex dj = djStart; dj < djEnd; dj++) { + TensorIndices maxInputVarIndices = {0, k, di, dj}; Variable maxInputVar = - tensorLookup( inputVars, inputShape, maxInputVarIndices ); - maxInputVars.insert( maxInputVar ); + tensorLookup(inputVars, inputShape, maxInputVarIndices); + maxInputVars.insert(maxInputVar); } } - _query.addMaxConstraint( outputVar, maxInputVars ); + _query.addMaxConstraint(outputVar, maxInputVars); } } } @@ -1524,8 +1264,7 @@ void OnnxParser::maxPoolEquations( onnx::NodeProto &node, [[maybe_unused]] bool * @param node ONNX node representing the operation * @param makeEquations True if we need to create new variables */ -void OnnxParser::convEquations( onnx::NodeProto &node, [[maybe_unused]] bool makeEquations ) -{ +void OnnxParser::convEquations(onnx::NodeProto &node, [[maybe_unused]] bool makeEquations) { String outputNodeName = node.output()[0]; // Get input shape information @@ -1545,29 +1284,26 @@ void OnnxParser::convEquations( onnx::NodeProto &node, [[maybe_unused]] bool mak unsigned int filterHeight = filterShape[3]; // The number of channels should match between input variable and filters - ASSERT( inputChannels == filterChannels ); + ASSERT(inputChannels == filterChannels); // Extract convolution stride information - Vector defaultStrides = { 1, 1 }; - Vector strides = getNonNegativeIntsAttribute( node, "strides", defaultStrides ); + Vector defaultStrides = {1, 1}; + Vector strides = getNonNegativeIntsAttribute(node, "strides", defaultStrides); unsigned int strideWidth = strides[0]; unsigned int strideHeight = strides[1]; // Extract the padding information String defaultAutoPad = "NOTSET"; - String autoPad = getStringAttribute( node, "auto_pad", defaultAutoPad ); + String autoPad = getStringAttribute(node, "auto_pad", defaultAutoPad); unsigned int padLeft, padBottom, padRight, padTop; - if ( autoPad == "NOTSET" ) - { - Vector defaultPads = { 0, 0, 0, 0 }; - Vector pads = getNonNegativeIntsAttribute( node, "pads", defaultPads ); + if (autoPad == "NOTSET") { + Vector defaultPads = {0, 0, 0, 0}; + Vector pads = getNonNegativeIntsAttribute(node, "pads", defaultPads); padLeft = pads[0]; padBottom = pads[1]; padRight = pads[2]; padTop = pads[3]; - } - else if ( autoPad == "VALID" ) - { + } else if (autoPad == "VALID") { // I think this is the right thing to do the spec is very unclear. // See https://github.com/onnx/onnx/issues/3254 and // https://stackoverflow.com/questions/37674306/what-is-the-difference-between-same-and-valid-padding-in-tf-nn-max-pool-of-t @@ -1576,123 +1312,106 @@ void OnnxParser::convEquations( onnx::NodeProto &node, [[maybe_unused]] bool mak padBottom = 0; padRight = 0; padTop = 0; - } - else if ( autoPad == "SAME_UPPER" || autoPad == "SAME_LOWER" ) - { + } else if (autoPad == "SAME_UPPER" || autoPad == "SAME_LOWER") { bool padFrontPreferentially = autoPad == "SAME_LOWER"; Padding horizontalPadding = - calculatePaddingNeeded( inputWidth, filterWidth, strideWidth, padFrontPreferentially ); + calculatePaddingNeeded(inputWidth, filterWidth, strideWidth, padFrontPreferentially); padLeft = horizontalPadding.padFront; padRight = horizontalPadding.padBack; Padding verticalPadding = calculatePaddingNeeded( - inputHeight, filterHeight, strideHeight, padFrontPreferentially ); + inputHeight, filterHeight, strideHeight, padFrontPreferentially); padBottom = verticalPadding.padFront; padTop = verticalPadding.padBack; - } - else - { + } else { String errorMessage = - Stringf( "Onnx '%s' operation has an unsupported value '%s' for attribute 'auto_pad'.", - node.op_type().c_str(), - autoPad.ascii() ); - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); + Stringf("Onnx '%s' operation has an unsupported value '%s' for attribute 'auto_pad'.", + node.op_type().c_str(), + autoPad.ascii()); + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); } // Extract the group information (not supported/used) int defaultGroup = 1; - int group = getIntAttribute( node, "group", defaultGroup ); - if ( group != defaultGroup ) - { - unimplementedAttributeError( node, "group" ); + int group = getIntAttribute(node, "group", defaultGroup); + if (group != defaultGroup) { + unimplementedAttributeError(node, "group"); } // Extract the dilations information (not supported/used) - Vector defaultDilations = { 1, 1 }; + Vector defaultDilations = {1, 1}; Vector dilations = - getNonNegativeIntsAttribute( node, "dilations", defaultDilations ); - for ( auto d : dilations ) - { - if ( d != 1 ) - { - unimplementedAttributeError( node, "dilations" ); + getNonNegativeIntsAttribute(node, "dilations", defaultDilations); + for (auto d: dilations) { + if (d != 1) { + unimplementedAttributeError(node, "dilations"); } } // Compute output shape - unsigned int outWidth = ( inputWidth - filterWidth + padLeft + padRight ) / strideWidth + 1; - unsigned int outHeight = ( inputHeight - filterHeight + padBottom + padTop ) / strideHeight + 1; + unsigned int outWidth = (inputWidth - filterWidth + padLeft + padRight) / strideWidth + 1; + unsigned int outHeight = (inputHeight - filterHeight + padBottom + padTop) / strideHeight + 1; unsigned int outChannels = numberOfFilters; - TensorShape outputShape = { inputShape[0], outChannels, outWidth, outHeight }; + TensorShape outputShape = {inputShape[0], outChannels, outWidth, outHeight}; _shapeMap[outputNodeName] = outputShape; - if ( !makeEquations ) + if (!makeEquations) return; // Generate equations Vector inputVars = _varMap[inputNodeName]; Vector filter = _constantFloatTensors[filterNodeName]; - Vector outputVars = makeNodeVariables( outputNodeName, false ); + Vector outputVars = makeNodeVariables(outputNodeName, false); // The third input is optional and specifies a bias for each filter // Bias is 0 if third input is not given Vector biases; - TensorShape biasShape = { numberOfFilters }; - if ( node.input().size() == 3 ) - { + TensorShape biasShape = {numberOfFilters}; + if (node.input().size() == 3) { String biasName = node.input()[2]; biases = _constantFloatTensors[biasName]; - } - else - { - for ( unsigned int i = 0; i < numberOfFilters; i++ ) - { - biases.append( 0 ); + } else { + for (unsigned int i = 0; i < numberOfFilters; i++) { + biases.append(0); } } // There is one equation for every output variable - for ( TensorIndex i = 0; i < outWidth; i++ ) - { - for ( TensorIndex j = 0; j < outHeight; j++ ) - { - for ( TensorIndex k = 0; k < outChannels; k++ ) // Out_channel corresponds to filter - // number + for (TensorIndex i = 0; i < outWidth; i++) { + for (TensorIndex j = 0; j < outHeight; j++) { + for (TensorIndex k = 0; k < outChannels; k++) // Out_channel corresponds to filter + // number { Equation e = Equation(); // The equation convolves the filter with the specified input region // Iterate over the filter - for ( TensorIndex di = 0; di < filterWidth; di++ ) - { - for ( TensorIndex dj = 0; dj < filterHeight; dj++ ) - { - for ( TensorIndex dk = 0; dk < filterChannels; dk++ ) - { + for (TensorIndex di = 0; di < filterWidth; di++) { + for (TensorIndex dj = 0; dj < filterHeight; dj++) { + for (TensorIndex dk = 0; dk < filterChannels; dk++) { TensorIndex wIndex = strideWidth * i + di - padLeft; TensorIndex hIndex = strideHeight * j + dj - padBottom; // No need for checking greater than 0 because unsigned ints wrap // around. - if ( hIndex < inputHeight && wIndex < inputWidth ) - { - TensorIndices inputVarIndices = { 0, dk, wIndex, hIndex }; + if (hIndex < inputHeight && wIndex < inputWidth) { + TensorIndices inputVarIndices = {0, dk, wIndex, hIndex}; Variable inputVar = - tensorLookup( inputVars, inputShape, inputVarIndices ); - TensorIndices weightIndices = { k, dk, di, dj }; - double weight = tensorLookup( filter, filterShape, weightIndices ); - e.addAddend( weight, inputVar ); + tensorLookup(inputVars, inputShape, inputVarIndices); + TensorIndices weightIndices = {k, dk, di, dj}; + double weight = tensorLookup(filter, filterShape, weightIndices); + e.addAddend(weight, inputVar); } } } } // Add output variable - TensorIndices outputVarIndices = { 0, k, i, j }; - Variable outputVar = tensorLookup( outputVars, outputShape, outputVarIndices ); - e.addAddend( -1, outputVar ); - e.setScalar( -biases[k] ); - _query.addEquation( e ); + TensorIndices outputVarIndices = {0, k, i, j}; + Variable outputVar = tensorLookup(outputVars, outputShape, outputVarIndices); + e.addAddend(-1, outputVar); + e.setScalar(-biases[k]); + _query.addEquation(e); } } } @@ -1706,8 +1425,7 @@ void OnnxParser::convEquations( onnx::NodeProto &node, [[maybe_unused]] bool mak * @param node ONNX node representing the operation * @param makeEquations True if we need to create new variables */ -void OnnxParser::gemmEquations( onnx::NodeProto &node, bool makeEquations ) -{ +void OnnxParser::gemmEquations(onnx::NodeProto &node, bool makeEquations) { String outputNodeName = node.output()[0]; // Get inputs @@ -1719,29 +1437,29 @@ void OnnxParser::gemmEquations( onnx::NodeProto &node, bool makeEquations ) TensorShape input2Shape = _shapeMap[input2NodeName]; TensorShape biasShape = _shapeMap[biasNodeName]; - ASSERT( input1Shape.size() == 2 ); - ASSERT( input2Shape.size() == 2 ); + ASSERT(input1Shape.size() == 2); + ASSERT(input2Shape.size() == 2); // Transpose first two inputs if needed, // and save scaling parameters alpha and beta if set. - int transA = getIntAttribute( node, "transA", 0 ); - int transB = getIntAttribute( node, "transB", 0 ); + int transA = getIntAttribute(node, "transA", 0); + int transB = getIntAttribute(node, "transB", 0); - Permutation reversePerm = { 1, 0 }; + Permutation reversePerm = {1, 0}; TensorShape finalInput1Shape = - transA != 0 ? transposeVector( input1Shape, reversePerm ) : input1Shape; + transA != 0 ? transposeVector(input1Shape, reversePerm) : input1Shape; TensorShape finalInput2Shape = - transB != 0 ? transposeVector( input2Shape, reversePerm ) : input2Shape; + transB != 0 ? transposeVector(input2Shape, reversePerm) : input2Shape; - ASSERT( finalInput1Shape[1] == finalInput2Shape[0] ); - TensorShape outputShape = { finalInput1Shape[0], finalInput2Shape[1] }; + ASSERT(finalInput1Shape[1] == finalInput2Shape[0]); + TensorShape outputShape = {finalInput1Shape[0], finalInput2Shape[1]}; _shapeMap[outputNodeName] = outputShape; - if ( !makeEquations ) + if (!makeEquations) return; - double alpha = getFloatAttribute( node, "alpha", 1.0 ); - double beta = getFloatAttribute( node, "beta", 1.0 ); + double alpha = getFloatAttribute(node, "alpha", 1.0); + double beta = getFloatAttribute(node, "beta", 1.0); // Assume that first input is variables, second is Matrix for MatMul, and third is bias addition Vector inputVariables = _varMap[input1NodeName]; @@ -1749,39 +1467,34 @@ void OnnxParser::gemmEquations( onnx::NodeProto &node, bool makeEquations ) Vector biases = _constantFloatTensors[biasNodeName]; // Transpose inputs - if ( transA != 0 ) - { - inputVariables = transposeTensor( inputVariables, input1Shape, reversePerm ); + if (transA != 0) { + inputVariables = transposeTensor(inputVariables, input1Shape, reversePerm); } - if ( transB != 0 ) - { - matrix = transposeTensor( matrix, input2Shape, reversePerm ); + if (transB != 0) { + matrix = transposeTensor(matrix, input2Shape, reversePerm); } // Create new variables - Vector outputVariables = makeNodeVariables( outputNodeName, false ); + Vector outputVariables = makeNodeVariables(outputNodeName, false); // Generate equations - for ( TensorIndex i = 0; i < finalInput1Shape[0]; i++ ) - { - for ( TensorIndex j = 0; j < finalInput2Shape[1]; j++ ) - { + for (TensorIndex i = 0; i < finalInput1Shape[0]; i++) { + for (TensorIndex j = 0; j < finalInput2Shape[1]; j++) { Equation e = Equation(); - for ( TensorIndex k = 0; k < finalInput1Shape[1]; k++ ) - { - double coefficient = alpha * tensorLookup( matrix, finalInput2Shape, { k, j } ); - Variable inputVariable = tensorLookup( inputVariables, finalInput1Shape, { i, k } ); - e.addAddend( coefficient, inputVariable ); + for (TensorIndex k = 0; k < finalInput1Shape[1]; k++) { + double coefficient = alpha * tensorLookup(matrix, finalInput2Shape, {k, j}); + Variable inputVariable = tensorLookup(inputVariables, finalInput1Shape, {i, k}); + e.addAddend(coefficient, inputVariable); } // Set the bias - TensorIndices biasIndices = broadcastIndex( biasShape, outputShape, { i, j } ); - double bias = beta * tensorLookup( biases, biasShape, biasIndices ); - e.setScalar( -bias ); + TensorIndices biasIndices = broadcastIndex(biasShape, outputShape, {i, j}); + double bias = beta * tensorLookup(biases, biasShape, biasIndices); + e.setScalar(-bias); // Put output variable as the last addend - Variable outputVariable = tensorLookup( outputVariables, outputShape, { i, j } ); - e.addAddend( -1, outputVariable ); - _query.addEquation( e ); + Variable outputVariable = tensorLookup(outputVariables, outputShape, {i, j}); + e.addAddend(-1, outputVariable); + _query.addEquation(e); } } } @@ -1793,29 +1506,56 @@ void OnnxParser::gemmEquations( onnx::NodeProto &node, bool makeEquations ) * @param node ONNX node representing the Relu operation * @param makeEquations True if we need to create new variables and add new Relus */ -void OnnxParser::reluEquations( onnx::NodeProto &node, bool makeEquations ) -{ +void OnnxParser::reluEquations(onnx::NodeProto &node, bool makeEquations) { + String outputNodeName = node.output()[0]; + String inputNodeName = node.input()[0]; + + _shapeMap[outputNodeName] = _shapeMap[inputNodeName]; + if (!makeEquations) + return; + + // Get variables + Vector inputVars = _varMap[inputNodeName]; + Vector outputVars = makeNodeVariables(outputNodeName, false); + ASSERT(inputVars.size() == outputVars.size()); + + // Generate equations + for (PackedTensorIndices i = 0; i < inputVars.size(); i++) { + int inputVar = inputVars[i]; + int outputVar = outputVars[i]; + _query.addRelu(inputVar, outputVar); + } +} + +/** + * @brief Function to generate equations corresponding to pointwise Sign + * Implements https://github.com/onnx/onnx/blob/main/docs/Operators.md#Sign, up to value at 0 + * + * @param node ONNX node representing the Sign operation + * @param makeEquations True if we need to create new variables and add new Relus + */ +void OnnxParser::signEquations(onnx::NodeProto &node, bool makeEquations) { String outputNodeName = node.output()[0]; String inputNodeName = node.input()[0]; _shapeMap[outputNodeName] = _shapeMap[inputNodeName]; - if ( !makeEquations ) + if (!makeEquations) return; // Get variables Vector inputVars = _varMap[inputNodeName]; - Vector outputVars = makeNodeVariables( outputNodeName, false ); - ASSERT( inputVars.size() == outputVars.size() ); + Vector outputVars = makeNodeVariables(outputNodeName, false); + ASSERT(inputVars.size() == outputVars.size()); // Generate equations - for ( PackedTensorIndices i = 0; i < inputVars.size(); i++ ) - { + for (PackedTensorIndices i = 0; i < inputVars.size(); i++) { int inputVar = inputVars[i]; int outputVar = outputVars[i]; - _query.addRelu( inputVar, outputVar ); + _query.addSignConstraint(inputVar, outputVar); } } + /** * @brief Function to generate equations corresponding to leaky pointwise Relu * Implements https://github.com/onnx/onnx/blob/main/docs/Operators.md#LeakyRelu @@ -1823,27 +1563,25 @@ void OnnxParser::reluEquations( onnx::NodeProto &node, bool makeEquations ) * @param node ONNX node representing the LeakyRelu operation * @param makeEquations True if we need to create new variables and add new LeakyRelus */ -void OnnxParser::leakyReluEquations( onnx::NodeProto &node, bool makeEquations ) -{ +void OnnxParser::leakyReluEquations(onnx::NodeProto &node, bool makeEquations) { String outputNodeName = node.output()[0]; String inputNodeName = node.input()[0]; _shapeMap[outputNodeName] = _shapeMap[inputNodeName]; - if ( !makeEquations ) + if (!makeEquations) return; // Get alpha attribute - float alpha = getFloatAttribute( node, "alpha", 0.01 ); + float alpha = getFloatAttribute(node, "alpha", 0.01); // Get variables Vector inputVars = _varMap[inputNodeName]; - Vector outputVars = makeNodeVariables( outputNodeName, false ); - ASSERT( inputVars.size() == outputVars.size() ); + Vector outputVars = makeNodeVariables(outputNodeName, false); + ASSERT(inputVars.size() == outputVars.size()); // Generate equations - for ( PackedTensorIndices i = 0; i < inputVars.size(); i++ ) - { - _query.addLeakyRelu( inputVars[i], outputVars[i], alpha ); + for (PackedTensorIndices i = 0; i < inputVars.size(); i++) { + _query.addLeakyRelu(inputVars[i], outputVars[i], alpha); } } @@ -1855,11 +1593,10 @@ void OnnxParser::leakyReluEquations( onnx::NodeProto &node, bool makeEquations ) * @param node ONNX node representing the Add operation * @param makeEquations True if we need to create new variables and write Marabou equations */ -void OnnxParser::scaleAndAddEquations( onnx::NodeProto &node, - bool makeEquations, - double coefficient1, - double coefficient2 ) -{ +void OnnxParser::scaleAndAddEquations(onnx::NodeProto &node, + bool makeEquations, + double coefficient1, + double coefficient2) { String outputName = node.output()[0]; String input1Name = node.input()[0]; String input2Name = node.input()[1]; @@ -1868,48 +1605,44 @@ void OnnxParser::scaleAndAddEquations( onnx::NodeProto &node, TensorShape input1Shape = _shapeMap[input1Name]; TensorShape input2Shape = _shapeMap[input2Name]; - TensorShape outputShape = getMultidirectionalBroadcastShape( input1Shape, input2Shape ); + TensorShape outputShape = getMultidirectionalBroadcastShape(input1Shape, input2Shape); _shapeMap[outputName] = outputShape; - if ( !makeEquations ) + if (!makeEquations) return; // Decide which inputs are variables and which are constants - bool input1IsConstant = isConstantNode( input1Name ); - bool input2IsConstant = isConstantNode( input2Name ); + bool input1IsConstant = isConstantNode(input1Name); + bool input2IsConstant = isConstantNode(input2Name); // If both inputs to add are constant, then the output is constant too. // No new variables are needed, we could just store the output. - if ( input1IsConstant && input2IsConstant ) - { + if (input1IsConstant && input2IsConstant) { String errorMessage = - "Addition of constant tensors not yet supported for command-line Onnx files"; - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); + "Addition of constant tensors not yet supported for command-line Onnx files"; + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); } // If both inputs are variables, then we need a new variable to represent // the sum of the two variables - if ( !input1IsConstant && !input2IsConstant ) - { - Vector outputVariables = makeNodeVariables( outputName, false ); + if (!input1IsConstant && !input2IsConstant) { + Vector outputVariables = makeNodeVariables(outputName, false); Vector input1Variables = _varMap[input1Name]; Vector input2Variables = _varMap[input2Name]; - if ( input1Variables.size() != input2Variables.size() || - input2Variables.size() != outputVariables.size() ) - { + if (input1Variables.size() != input2Variables.size() || + input2Variables.size() != outputVariables.size()) { String errorMessage = "Broadcast support for addition of two non-constant nodes not " "yet supported for command-line ONNX files"; - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); } - for ( PackedTensorIndices i = 0; i < input1Variables.size(); i++ ) - { + for (PackedTensorIndices i = 0; i < input1Variables.size(); i++) { Equation e = Equation(); - e.addAddend( coefficient1, input1Variables[i] ); - e.addAddend( coefficient2, input2Variables[i] ); - e.addAddend( -1, outputVariables[i] ); - e.setScalar( 0.0 ); - _query.addEquation( e ); + e.addAddend(coefficient1, input1Variables[i]); + e.addAddend(coefficient2, input2Variables[i]); + e.addAddend(-1, outputVariables[i]); + e.setScalar(0.0); + _query.addEquation(e); } return; } @@ -1931,52 +1664,46 @@ void OnnxParser::scaleAndAddEquations( onnx::NodeProto &node, // Adjust equations to incorporate the constant addition unsigned int numberOfEquationsChanged = 0; - unsigned int numberOfOutputVariables = tensorSize( outputShape ); - for ( PackedTensorIndices i = 0; i < numberOfOutputVariables; i++ ) - { - TensorIndices outputIndices = unpackIndex( outputShape, i ); + unsigned int numberOfOutputVariables = tensorSize(outputShape); + for (PackedTensorIndices i = 0; i < numberOfOutputVariables; i++) { + TensorIndices outputIndices = unpackIndex(outputShape, i); TensorIndices inputVariableIndices = - broadcastIndex( inputVariablesShape, outputShape, outputIndices ); + broadcastIndex(inputVariablesShape, outputShape, outputIndices); Variable inputVariable = - tensorLookup( inputVariables, inputVariablesShape, inputVariableIndices ); + tensorLookup(inputVariables, inputVariablesShape, inputVariableIndices); - Equation *equation = _query.findEquationWithOutputVariable( inputVariable ); - if ( equation ) - { + Equation *equation = _query.findEquationWithOutputVariable(inputVariable); + if (equation) { TensorIndices inputConstantIndices = - broadcastIndex( inputConstantsShape, outputShape, outputIndices ); + broadcastIndex(inputConstantsShape, outputShape, outputIndices); double inputConstant = - tensorLookup( inputConstants, inputConstantsShape, inputConstantIndices ); + tensorLookup(inputConstants, inputConstantsShape, inputConstantIndices); - double currentVariableCoefficient = equation->getCoefficient( inputVariable ); - equation->setCoefficient( inputVariable, - variableCoefficient * currentVariableCoefficient ); - equation->setScalar( equation->_scalar - constantCoefficient * inputConstant ); + double currentVariableCoefficient = equation->getCoefficient(inputVariable); + equation->setCoefficient(inputVariable, + variableCoefficient * currentVariableCoefficient); + equation->setScalar(equation->_scalar - constantCoefficient * inputConstant); numberOfEquationsChanged += 1; } } - if ( numberOfEquationsChanged == inputVariables.size() ) - { + if (numberOfEquationsChanged == inputVariables.size()) { // If we changed one equation for every input variable, then // we don't need any new equations _varMap[outputName] = inputVariables; - } - else - { + } else { // Otherwise, assert no equations were changed, // and we need to create new equations - ASSERT( numberOfEquationsChanged == 0 ); - Vector outputVariables = makeNodeVariables( outputName, false ); - for ( PackedTensorIndices i = 0; i < outputVariables.size(); i++ ) - { + ASSERT(numberOfEquationsChanged == 0); + Vector outputVariables = makeNodeVariables(outputName, false); + for (PackedTensorIndices i = 0; i < outputVariables.size(); i++) { Equation e = Equation(); - e.addAddend( variableCoefficient, inputVariables[i] ); - e.addAddend( -1, outputVariables[i] ); - e.setScalar( -constantCoefficient * inputConstants[i] ); - _query.addEquation( e ); + e.addAddend(variableCoefficient, inputVariables[i]); + e.addAddend(-1, outputVariables[i]); + e.setScalar(-constantCoefficient * inputConstants[i]); + _query.addEquation(e); } } } @@ -1988,8 +1715,7 @@ void OnnxParser::scaleAndAddEquations( onnx::NodeProto &node, * @param node ONNX node representing the MatMul operation * @param makeEquations True if we need to create new variables and write Marabou equations */ -void OnnxParser::matMulEquations( onnx::NodeProto &node, bool makeEquations ) -{ +void OnnxParser::matMulEquations(onnx::NodeProto &node, bool makeEquations) { String nodeName = node.output()[0]; // Get inputs @@ -1998,43 +1724,39 @@ void OnnxParser::matMulEquations( onnx::NodeProto &node, bool makeEquations ) TensorShape input1Shape = _shapeMap[input1Name]; TensorShape input2Shape = _shapeMap[input2Name]; - ASSERT( input1Shape.last() == input2Shape.first() ); - ASSERT( input1Shape.size() <= 2 ); - ASSERT( input2Shape.size() <= 2 ); + ASSERT(input1Shape.last() == input2Shape.first()); + ASSERT(input1Shape.size() <= 2); + ASSERT(input2Shape.size() <= 2); // Calculate the output shape TensorShape outputShape; - for ( unsigned int i = 0; i < input1Shape.size() - 1; i++ ) - { - outputShape.append( input1Shape[i] ); + for (unsigned int i = 0; i < input1Shape.size() - 1; i++) { + outputShape.append(input1Shape[i]); } - for ( unsigned int i = 1; i < input2Shape.size(); i++ ) - { - outputShape.append( input2Shape[i] ); + for (unsigned int i = 1; i < input2Shape.size(); i++) { + outputShape.append(input2Shape[i]); } - _shapeMap.insert( nodeName, outputShape ); - if ( !makeEquations ) + _shapeMap.insert(nodeName, outputShape); + if (!makeEquations) return; // Assume that at exactly one input is a constant as // we cannot represent variable products with linear equations. - bool input1IsConstant = isConstantNode( input1Name ); - bool input2IsConstant = isConstantNode( input2Name ); + bool input1IsConstant = isConstantNode(input1Name); + bool input2IsConstant = isConstantNode(input2Name); // If both inputs are constant, than the output is constant as well, and we don't need new // variables or equations - if ( input1IsConstant && input2IsConstant ) - { + if (input1IsConstant && input2IsConstant) { String errorMessage = "Matrix multiplication of constant tensors not yet implemented for " "command-line Onnx files"; - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); } - if ( !input1IsConstant && !input2IsConstant ) - { + if (!input1IsConstant && !input2IsConstant) { String errorMessage = "Matrix multiplication of variable tensors is not supported"; - throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); + throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); } String constantName = input1IsConstant ? input1Name : input2Name; @@ -2045,12 +1767,11 @@ void OnnxParser::matMulEquations( onnx::NodeProto &node, bool makeEquations ) Vector variables = _varMap[variableName]; // Create new variables - Vector outputVariables = makeNodeVariables( nodeName, false ); + Vector outputVariables = makeNodeVariables(nodeName, false); // Pad the output if needed (matrix-matrix multiplication) - if ( outputShape.size() == 1 && input2Shape.size() > 1 ) - { - outputShape.insertHead( 1 ); + if (outputShape.size() == 1 && input2Shape.size() > 1) { + outputShape.insertHead(1); } unsigned int d1 = input1Shape.size() == 1 ? 1 : input1Shape.first(); @@ -2058,64 +1779,51 @@ void OnnxParser::matMulEquations( onnx::NodeProto &node, bool makeEquations ) unsigned int d3 = input2Shape.last(); // Generate equations - for ( TensorIndex i = 0; i < d1; i++ ) - { + for (TensorIndex i = 0; i < d1; i++) { // Differentiate between matrix-vector multiplication // and matrix-matrix multiplication - if ( input2Shape.size() == 2 ) - { - for ( TensorIndex j = 0; j < d3; j++ ) - { + if (input2Shape.size() == 2) { + for (TensorIndex j = 0; j < d3; j++) { Equation e; - for ( TensorIndex k = 0; k < d2; k++ ) - { + for (TensorIndex k = 0; k < d2; k++) { double constant; Variable variable; - if ( input1IsConstant ) - { - constant = tensorLookup( constants, { d1, d2 }, { i, k } ); - variable = tensorLookup( variables, { d2, d3 }, { k, j } ); - } - else - { - constant = tensorLookup( constants, { d2, d3 }, { k, j } ); - variable = tensorLookup( variables, { d1, d2 }, { i, k } ); + if (input1IsConstant) { + constant = tensorLookup(constants, {d1, d2}, {i, k}); + variable = tensorLookup(variables, {d2, d3}, {k, j}); + } else { + constant = tensorLookup(constants, {d2, d3}, {k, j}); + variable = tensorLookup(variables, {d1, d2}, {i, k}); } - e.addAddend( constant, variable ); + e.addAddend(constant, variable); } // Put output variable as the last addend - Variable outputVariable = tensorLookup( outputVariables, outputShape, { i, j } ); - e.addAddend( -1, outputVariable ); - e.setScalar( 0.0 ); - _query.addEquation( e ); + Variable outputVariable = tensorLookup(outputVariables, outputShape, {i, j}); + e.addAddend(-1, outputVariable); + e.setScalar(0.0); + _query.addEquation(e); } - } - else - { + } else { Equation e; - for ( TensorIndex k = 0; k < d2; k++ ) - { + for (TensorIndex k = 0; k < d2; k++) { double constant; Variable variable; - if ( input1IsConstant ) - { - constant = tensorLookup( constants, { d1, d2 }, { i, k } ); + if (input1IsConstant) { + constant = tensorLookup(constants, {d1, d2}, {i, k}); variable = variables[k]; - } - else - { + } else { constant = constants[k]; - variable = tensorLookup( variables, { d1, d2 }, { i, k } ); + variable = tensorLookup(variables, {d1, d2}, {i, k}); } - e.addAddend( constant, variable ); + e.addAddend(constant, variable); } // Put output variable as the last addend last Variable outputVariable = outputVariables[i]; - e.addAddend( -1, outputVariable ); - e.setScalar( 0.0 ); - _query.addEquation( e ); + e.addAddend(-1, outputVariable); + e.setScalar(0.0); + _query.addEquation(e); } } } @@ -2127,26 +1835,24 @@ void OnnxParser::matMulEquations( onnx::NodeProto &node, bool makeEquations ) * @param node ONNX node representing the Sigmoid operation * @param makeEquations True if we need to create new variables and write Marabou equations */ -void OnnxParser::sigmoidEquations( onnx::NodeProto &node, bool makeEquations ) -{ +void OnnxParser::sigmoidEquations(onnx::NodeProto &node, bool makeEquations) { String outputNodeName = node.output()[0]; String inputNodeName = node.input()[0]; _shapeMap[outputNodeName] = _shapeMap[inputNodeName]; - if ( !makeEquations ) + if (!makeEquations) return; // Get variables Vector inputVars = _varMap[inputNodeName]; - Vector outputVars = makeNodeVariables( outputNodeName, false ); - ASSERT( inputVars.size() == outputVars.size() ); + Vector outputVars = makeNodeVariables(outputNodeName, false); + ASSERT(inputVars.size() == outputVars.size()); // Generate equations - for ( unsigned int i = 0; i < inputVars.size(); i++ ) - { + for (unsigned int i = 0; i < inputVars.size(); i++) { Variable inputVar = inputVars[i]; Variable outputVar = outputVars[i]; - _query.addSigmoid( inputVar, outputVar ); + _query.addSigmoid(inputVar, outputVar); } } @@ -2157,24 +1863,22 @@ void OnnxParser::sigmoidEquations( onnx::NodeProto &node, bool makeEquations ) * @param node ONNX node representing the Tanh operation * @param makeEquations True if we need to create new variables and write Marabou equations */ -void OnnxParser::tanhEquations( onnx::NodeProto &node, bool makeEquations ) -{ +void OnnxParser::tanhEquations(onnx::NodeProto &node, bool makeEquations) { String outputName = node.output()[0]; String inputName = node.input()[0]; TensorShape inputShape = _shapeMap[inputName]; _shapeMap[outputName] = _shapeMap[inputName]; - if ( !makeEquations ) + if (!makeEquations) return; // Get variables Vector inputVars = _varMap[inputName]; - Vector outputVars = makeNodeVariables( outputName, false ); - ASSERT( inputVars.size() == outputVars.size() ); + Vector outputVars = makeNodeVariables(outputName, false); + ASSERT(inputVars.size() == outputVars.size()); // Generate equations - for ( uint i = 0; i < outputVars.size(); i++ ) - { - _query.addTanh( inputVars[i], outputVars[i] ); + for (uint i = 0; i < outputVars.size(); i++) { + _query.addTanh(inputVars[i], outputVars[i]); } } diff --git a/src/input_parsers/OnnxParser.h b/src/input_parsers/OnnxParser.h index 2b316a2004..b21e2ceb07 100644 --- a/src/input_parsers/OnnxParser.h +++ b/src/input_parsers/OnnxParser.h @@ -25,24 +25,23 @@ #include "Vector.h" #include "onnx.proto3.pb.h" -#define ONNX_LOG( x, ... ) LOG( GlobalConfiguration::ONNX_PARSER_LOGGING, "OnnxParser: %s\n", x ) +#define ONNX_LOG(x, ...) LOG( GlobalConfiguration::ONNX_PARSER_LOGGING, "OnnxParser: %s\n", x ) -class OnnxParser -{ +class OnnxParser { public: - static void parse( InputQueryBuilder &query, - const String &path, - const Set inputNames, - const Set outputNames ); + static void parse(InputQueryBuilder &query, + const String &path, + const Set inputNames, + const Set outputNames); private: // Settings // - OnnxParser( InputQueryBuilder &query, - const String &path, - const Set inputNames, - const Set terminalNames ); + OnnxParser(InputQueryBuilder &query, + const String &path, + const Set inputNames, + const Set terminalNames); InputQueryBuilder &_query; onnx::GraphProto _network; @@ -67,48 +66,79 @@ class OnnxParser // Methods // const Set readInputNames(); + const Set readOutputNames(); - void validateUserInputNames( const Set &inputNames ); - void validateUserTerminalNames( const Set &terminalNames ); - void readNetwork( const String &path ); + void validateUserInputNames(const Set &inputNames); + + void validateUserTerminalNames(const Set &terminalNames); + + void readNetwork(const String &path); + void initializeShapeAndConstantMaps(); + void validateAllInputsAndOutputsFound(); void processGraph(); - void processNode( String &nodeName, bool makeEquations ); - void makeMarabouEquations( onnx::NodeProto &node, bool makeEquations ); - Set getInputsToNode( onnx::NodeProto &node ); - List getNodesWithOutput( String &nodeName ); - Vector makeNodeVariables( String &nodeName, bool isInput ); - - bool isConstantNode( String name ); - - void transferValues( String oldName, String newName ); - void insertConstant( String name, const onnx::TensorProto &tensor, TensorShape shape ); - - void constant( onnx::NodeProto &node ); - void identity( onnx::NodeProto &node ); - void dropout( onnx::NodeProto &node ); - void cast( onnx::NodeProto &node ); - void reshape( onnx::NodeProto &node ); - void squeeze( onnx::NodeProto &node ); - void unsqueeze( onnx::NodeProto &node ); - void flatten( onnx::NodeProto &node ); - void transpose( onnx::NodeProto &node ); - void batchNormEquations( onnx::NodeProto &node, bool makeEquations ); - void maxPoolEquations( onnx::NodeProto &node, bool makeEquations ); - void convEquations( onnx::NodeProto &node, bool makeEquations ); - void gemmEquations( onnx::NodeProto &node, bool makeEquations ); - void scaleAndAddEquations( onnx::NodeProto &node, - bool makeEquations, - double coefficient1, - double coefficient2 ); - void matMulEquations( onnx::NodeProto &node, bool makeEquations ); - void reluEquations( onnx::NodeProto &node, bool makeEquations ); - void leakyReluEquations( onnx::NodeProto &node, bool makeEquations ); - void sigmoidEquations( onnx::NodeProto &node, bool makeEquations ); - void tanhEquations( onnx::NodeProto &node, bool makeEquations ); + + void processNode(String &nodeName, bool makeEquations); + + void makeMarabouEquations(onnx::NodeProto &node, bool makeEquations); + + Set getInputsToNode(onnx::NodeProto &node); + + List getNodesWithOutput(String &nodeName); + + Vector makeNodeVariables(String &nodeName, bool isInput); + + bool isConstantNode(String name); + + void transferValues(String oldName, String newName); + + void insertConstant(String name, const onnx::TensorProto &tensor, TensorShape shape); + + void constant(onnx::NodeProto &node); + + void identity(onnx::NodeProto &node); + + void dropout(onnx::NodeProto &node); + + void cast(onnx::NodeProto &node); + + void reshape(onnx::NodeProto &node); + + void squeeze(onnx::NodeProto &node); + + void unsqueeze(onnx::NodeProto &node); + + void flatten(onnx::NodeProto &node); + + void transpose(onnx::NodeProto &node); + + void batchNormEquations(onnx::NodeProto &node, bool makeEquations); + + void maxPoolEquations(onnx::NodeProto &node, bool makeEquations); + + void convEquations(onnx::NodeProto &node, bool makeEquations); + + void gemmEquations(onnx::NodeProto &node, bool makeEquations); + + void scaleAndAddEquations(onnx::NodeProto &node, + bool makeEquations, + double coefficient1, + double coefficient2); + + void matMulEquations(onnx::NodeProto &node, bool makeEquations); + + void reluEquations(onnx::NodeProto &node, bool makeEquations); + + void signEquations(onnx::NodeProto &node, bool makeEquations); + + void leakyReluEquations(onnx::NodeProto &node, bool makeEquations); + + void sigmoidEquations(onnx::NodeProto &node, bool makeEquations); + + void tanhEquations(onnx::NodeProto &node, bool makeEquations); }; #endif // __OnnxParser_h__ From 0f562d00a4f58c5ebbae519fbefdafe28784c9de Mon Sep 17 00:00:00 2001 From: omriisack Date: Sun, 20 Jul 2025 17:02:01 +0300 Subject: [PATCH 161/165] Formatting --- src/input_parsers/OnnxParser.cpp | 1775 ++++++++++++++++++------------ src/input_parsers/OnnxParser.h | 125 +-- 2 files changed, 1101 insertions(+), 799 deletions(-) diff --git a/src/input_parsers/OnnxParser.cpp b/src/input_parsers/OnnxParser.cpp index 1df2f14758..34454d94a3 100644 --- a/src/input_parsers/OnnxParser.cpp +++ b/src/input_parsers/OnnxParser.cpp @@ -52,11 +52,12 @@ * the network, they can be intermediate nodes. If empty, then defaults to the network's output * nodes. */ -void OnnxParser::parse(InputQueryBuilder &query, - const String &path, - const Set initialNodeNames, - const Set terminalNodeNames) { - OnnxParser parser = OnnxParser(query, path, initialNodeNames, terminalNodeNames); +void OnnxParser::parse( InputQueryBuilder &query, + const String &path, + const Set initialNodeNames, + const Set terminalNodeNames ) +{ + OnnxParser parser = OnnxParser( query, path, initialNodeNames, terminalNodeNames ); parser.processGraph(); } @@ -65,139 +66,165 @@ void OnnxParser::parse(InputQueryBuilder &query, * Utilities * *************/ -void illTypedAttributeError(onnx::NodeProto &node, - const onnx::AttributeProto &attr, - onnx::AttributeProto_AttributeType expectedType) { +void illTypedAttributeError( onnx::NodeProto &node, + const onnx::AttributeProto &attr, + onnx::AttributeProto_AttributeType expectedType ) +{ String errorMessage = Stringf( - "Expected attribute %s on Onnx node of type %s to be of type %d but is actually of type %d", - attr.name().c_str(), - node.op_type().c_str(), - expectedType, - attr.type()); - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); + "Expected attribute %s on Onnx node of type %s to be of type %d but is actually of type %d", + attr.name().c_str(), + node.op_type().c_str(), + expectedType, + attr.type() ); + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); } -void missingAttributeError(onnx::NodeProto &node, String attributeName) { - String errorMessage = Stringf("Onnx node of type %s is missing the expected attribute %s", - node.op_type().c_str(), - attributeName.ascii()); - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); +void missingAttributeError( onnx::NodeProto &node, String attributeName ) +{ + String errorMessage = Stringf( "Onnx node of type %s is missing the expected attribute %s", + node.op_type().c_str(), + attributeName.ascii() ); + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); } -void unimplementedOperationError(onnx::NodeProto &node) { - String errorMessage = Stringf("Onnx '%s' operation not yet implemented for command line " - "support. Should be relatively easy to add.", - node.op_type().c_str()); - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); +void unimplementedOperationError( onnx::NodeProto &node ) +{ + String errorMessage = Stringf( "Onnx '%s' operation not yet implemented for command line " + "support. Should be relatively easy to add.", + node.op_type().c_str() ); + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); } -void unimplementedAttributeError(onnx::NodeProto &node, String attributeName) { +void unimplementedAttributeError( onnx::NodeProto &node, String attributeName ) +{ String errorMessage = - Stringf("Onnx '%s' operation with non-default value for attribute '%s' not yet supported.", - node.op_type().c_str(), - attributeName.ascii()); - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); + Stringf( "Onnx '%s' operation with non-default value for attribute '%s' not yet supported.", + node.op_type().c_str(), + attributeName.ascii() ); + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); } -void unimplementedConstantTypeError(onnx::TensorProto_DataType type) { - String errorMessage = Stringf("Support for Onnx constants of type '%s' not yet implemented.", - TensorProto_DataType_Name(type).c_str()); - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); +void unimplementedConstantTypeError( onnx::TensorProto_DataType type ) +{ + String errorMessage = Stringf( "Support for Onnx constants of type '%s' not yet implemented.", + TensorProto_DataType_Name( type ).c_str() ); + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); } -void unsupportedError(onnx::NodeProto &node) { +void unsupportedError( onnx::NodeProto &node ) +{ String errorMessage = - Stringf("Onnx operation %s not currently supported by Marabou", node.op_type().c_str()); - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); + Stringf( "Onnx operation %s not currently supported by Marabou", node.op_type().c_str() ); + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); } -void unsupportedCastError(onnx::TensorProto_DataType from, onnx::TensorProto_DataType to) { +void unsupportedCastError( onnx::TensorProto_DataType from, onnx::TensorProto_DataType to ) +{ String errorMessage = - Stringf("The ONNX parser does not currently support casting from '%s' to '%s'", - TensorProto_DataType_Name(from).c_str(), - TensorProto_DataType_Name(to).c_str()); - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); + Stringf( "The ONNX parser does not currently support casting from '%s' to '%s'", + TensorProto_DataType_Name( from ).c_str(), + TensorProto_DataType_Name( to ).c_str() ); + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); } -void unexpectedNegativeValue(int value, String location) { +void unexpectedNegativeValue( int value, String location ) +{ String errorMessage = - Stringf("Found unexpected negative value '%d' for '%s'", value, location.ascii()); - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); + Stringf( "Found unexpected negative value '%d' for '%s'", value, location.ascii() ); + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); } -void missingNodeError(String &missingNodeName) { - String errorMessage = Stringf("Internal invariant violated: missing node '%s' not found", - missingNodeName.ascii()); - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); +void missingNodeError( String &missingNodeName ) +{ + String errorMessage = Stringf( "Internal invariant violated: missing node '%s' not found", + missingNodeName.ascii() ); + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); } -void unexpectedNumberOfInputs(onnx::NodeProto &node, - unsigned int actualNumberOfInputs, - unsigned int lowerBound, - unsigned int upperBound) { +void unexpectedNumberOfInputs( onnx::NodeProto &node, + unsigned int actualNumberOfInputs, + unsigned int lowerBound, + unsigned int upperBound ) +{ String errorMessage; - if (lowerBound == upperBound) { - errorMessage = Stringf("%s node expected to have exactly %d inputs, but found %d", - node.op_type().c_str(), - lowerBound, - actualNumberOfInputs); - } else { - errorMessage = Stringf("%s node expected to have between %d and %d inputs, but found %d", - node.op_type().c_str(), - lowerBound, - upperBound, - actualNumberOfInputs); - } - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); -} - -void checkTensorDataSourceIsInternal(const onnx::TensorProto &tensor) { - if (tensor.data_location() == onnx::TensorProto_DataLocation_EXTERNAL) { + if ( lowerBound == upperBound ) + { + errorMessage = Stringf( "%s node expected to have exactly %d inputs, but found %d", + node.op_type().c_str(), + lowerBound, + actualNumberOfInputs ); + } + else + { + errorMessage = Stringf( "%s node expected to have between %d and %d inputs, but found %d", + node.op_type().c_str(), + lowerBound, + upperBound, + actualNumberOfInputs ); + } + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); +} + +void checkTensorDataSourceIsInternal( const onnx::TensorProto &tensor ) +{ + if ( tensor.data_location() == onnx::TensorProto_DataLocation_EXTERNAL ) + { String errorMessage = - Stringf("External data locations not yet implemented for command line Onnx support"); - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); + Stringf( "External data locations not yet implemented for command line Onnx support" ); + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); } } -void checkTensorDataType(const onnx::TensorProto &tensor, int32_t expectedDataType) { +void checkTensorDataType( const onnx::TensorProto &tensor, int32_t expectedDataType ) +{ int32_t actualDataType = tensor.data_type(); - if (actualDataType != expectedDataType) { - std::string actualName = onnx::TensorProto_DataType_Name(actualDataType); - std::string expectedName = onnx::TensorProto_DataType_Name(actualDataType); + if ( actualDataType != expectedDataType ) + { + std::string actualName = onnx::TensorProto_DataType_Name( actualDataType ); + std::string expectedName = onnx::TensorProto_DataType_Name( actualDataType ); String errorMessage = - Stringf("Expected tensor '%s' to be of type %s but actually of type %s", - expectedName.c_str(), - actualName.c_str()); - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); + Stringf( "Expected tensor '%s' to be of type %s but actually of type %s", + expectedName.c_str(), + actualName.c_str() ); + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); } } -TensorShape shapeOfInput(onnx::ValueInfoProto &input) { +TensorShape shapeOfInput( onnx::ValueInfoProto &input ) +{ TensorShape result; - for (auto dim: input.type().tensor_type().shape().dim()) { + for ( auto dim : input.type().tensor_type().shape().dim() ) + { int size = dim.dim_value(); - if (size < 0) { + if ( size < 0 ) + { String errorMessage = - Stringf("Found input tensor in ONNX file with invalid size '%d'", size); - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); - } else if (size == 0) { + Stringf( "Found input tensor in ONNX file with invalid size '%d'", size ); + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); + } + else if ( size == 0 ) + { // A size of `0` represents an unknown size. The most likely case is // that this is the batch size which is unspecified in most models. // Under this assumption the correct thing to do is to pretend the // batch size is 1 as verification properties refer to single values // rather than batches. - result.append(1); - } else { - result.append(size); + result.append( 1 ); + } + else + { + result.append( size ); } } return result; } -TensorShape shapeOfConstant(const onnx::TensorProto &constant) { +TensorShape shapeOfConstant( const onnx::TensorProto &constant ) +{ TensorShape result; - for (auto dim: constant.dims()) { - result.append(dim); + for ( auto dim : constant.dims() ) + { + result.append( dim ); } return result; } @@ -216,51 +243,65 @@ TensorShape shapeOfConstant(const onnx::TensorProto &constant) { * @return */ TensorShape -instantiateReshapeTemplate(TensorShape oldShape, Vector newShapeTemplate, bool allowZero) { +instantiateReshapeTemplate( TensorShape oldShape, Vector newShapeTemplate, bool allowZero ) +{ TensorShape newShape; int inferredIndex = -1; - for (unsigned int i = 0; i < newShapeTemplate.size(); i++) { + for ( unsigned int i = 0; i < newShapeTemplate.size(); i++ ) + { int dimSize = newShapeTemplate[i]; - if (dimSize == -1) { + if ( dimSize == -1 ) + { // Then this dimension should be inferred. // Temporarily set the dimSize to be 1 so that we // can use the tensorSize function to compute the // size so far. inferredIndex = i; dimSize = 1; - } else if (dimSize == 0) { - if (!allowZero) { - if (i < oldShape.size()) { + } + else if ( dimSize == 0 ) + { + if ( !allowZero ) + { + if ( i < oldShape.size() ) + { dimSize = oldShape[i]; } } } - newShape.append(dimSize); + newShape.append( dimSize ); } - if (inferredIndex != -1) { - newShape[inferredIndex] = tensorSize(oldShape) / tensorSize(newShape); + if ( inferredIndex != -1 ) + { + newShape[inferredIndex] = tensorSize( oldShape ) / tensorSize( newShape ); } return newShape; } -void checkEndianness() { +void checkEndianness() +{ int num = 1; - bool systemIsLittleEndian = *(char *) &num == 1; - if (!systemIsLittleEndian) { + bool systemIsLittleEndian = *(char *)&num == 1; + if ( !systemIsLittleEndian ) + { String errorMessage = "Support for Onnx files on non-little endian systems is not " "currently implemented on the command line"; - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); } } const onnx::AttributeProto * -findAttribute(onnx::NodeProto &node, String name, onnx::AttributeProto_AttributeType expectedType) { - for (const onnx::AttributeProto &attr: node.attribute()) { - if (attr.name() == name.ascii()) { - if (attr.type() != expectedType) { - illTypedAttributeError(node, attr, expectedType); +findAttribute( onnx::NodeProto &node, String name, onnx::AttributeProto_AttributeType expectedType ) +{ + for ( const onnx::AttributeProto &attr : node.attribute() ) + { + if ( attr.name() == name.ascii() ) + { + if ( attr.type() != expectedType ) + { + illTypedAttributeError( node, attr, expectedType ); } return &attr; } @@ -268,187 +309,243 @@ findAttribute(onnx::NodeProto &node, String name, onnx::AttributeProto_Attribute return nullptr; } -float getFloatAttribute(onnx::NodeProto &node, String name, float defaultValue) { +float getFloatAttribute( onnx::NodeProto &node, String name, float defaultValue ) +{ const onnx::AttributeProto *attr = - findAttribute(node, name, onnx::AttributeProto_AttributeType_FLOAT); - if (attr == nullptr) { + findAttribute( node, name, onnx::AttributeProto_AttributeType_FLOAT ); + if ( attr == nullptr ) + { return defaultValue; } return attr->f(); } -String getStringAttribute(onnx::NodeProto &node, String name, String defaultValue) { +String getStringAttribute( onnx::NodeProto &node, String name, String defaultValue ) +{ const onnx::AttributeProto *attr = - findAttribute(node, name, onnx::AttributeProto_AttributeType_STRING); - if (attr == nullptr) { + findAttribute( node, name, onnx::AttributeProto_AttributeType_STRING ); + if ( attr == nullptr ) + { return defaultValue; } return attr->s(); } -int getIntAttribute(onnx::NodeProto &node, String name, int defaultValue) { +int getIntAttribute( onnx::NodeProto &node, String name, int defaultValue ) +{ const onnx::AttributeProto *attr = - findAttribute(node, name, onnx::AttributeProto_AttributeType_INT); - if (attr == nullptr) { + findAttribute( node, name, onnx::AttributeProto_AttributeType_INT ); + if ( attr == nullptr ) + { return defaultValue; } return attr->i(); } -int getRequiredIntAttribute(onnx::NodeProto &node, String name) { +int getRequiredIntAttribute( onnx::NodeProto &node, String name ) +{ const onnx::AttributeProto *attr = - findAttribute(node, name, onnx::AttributeProto_AttributeType_INT); - if (attr == nullptr) { - missingAttributeError(node, name); + findAttribute( node, name, onnx::AttributeProto_AttributeType_INT ); + if ( attr == nullptr ) + { + missingAttributeError( node, name ); } return attr->i(); } -const onnx::AttributeProto *getTensorAttribute(onnx::NodeProto &node, String name) { +const onnx::AttributeProto *getTensorAttribute( onnx::NodeProto &node, String name ) +{ const onnx::AttributeProto *attr = - findAttribute(node, name, onnx::AttributeProto_AttributeType_TENSOR); - if (attr == nullptr) { - missingAttributeError(node, name); + findAttribute( node, name, onnx::AttributeProto_AttributeType_TENSOR ); + if ( attr == nullptr ) + { + missingAttributeError( node, name ); } return attr; } -Vector getIntsAttribute(onnx::NodeProto &node, String name, Vector &defaultValue) { +Vector getIntsAttribute( onnx::NodeProto &node, String name, Vector &defaultValue ) +{ const onnx::AttributeProto *attr = - findAttribute(node, name, onnx::AttributeProto_AttributeType_INTS); - if (attr == nullptr) { + findAttribute( node, name, onnx::AttributeProto_AttributeType_INTS ); + if ( attr == nullptr ) + { return defaultValue; } Vector result; - for (int i = 0; i < attr->ints_size(); i++) { - result.append(attr->ints(i)); + for ( int i = 0; i < attr->ints_size(); i++ ) + { + result.append( attr->ints( i ) ); } return result; } Vector -getNonNegativeIntsAttribute(onnx::NodeProto &node, String name, Vector &defaultValue) { +getNonNegativeIntsAttribute( onnx::NodeProto &node, String name, Vector &defaultValue ) +{ const onnx::AttributeProto *attr = - findAttribute(node, name, onnx::AttributeProto_AttributeType_INTS); - if (attr == nullptr) { + findAttribute( node, name, onnx::AttributeProto_AttributeType_INTS ); + if ( attr == nullptr ) + { return defaultValue; } Vector result; - for (int i = 0; i < attr->ints_size(); i++) { - int value = attr->ints(i); - if (value >= 0) { - result.append((uint) value); - } else { + for ( int i = 0; i < attr->ints_size(); i++ ) + { + int value = attr->ints( i ); + if ( value >= 0 ) + { + result.append( (uint)value ); + } + else + { String location = - Stringf("attribute '%s' on node '%s'", name.ascii(), node.name().c_str()); - unexpectedNegativeValue(value, location); + Stringf( "attribute '%s' on node '%s'", name.ascii(), node.name().c_str() ); + unexpectedNegativeValue( value, location ); } } return result; } -Vector getTensorFloatValues(const onnx::TensorProto &tensor, const TensorShape shape) { - int size = tensorSize(shape); +Vector getTensorFloatValues( const onnx::TensorProto &tensor, const TensorShape shape ) +{ + int size = tensorSize( shape ); std::string raw_data = tensor.raw_data(); Vector result; - if (raw_data.size() != 0) { + if ( raw_data.size() != 0 ) + { checkEndianness(); const char *bytes = raw_data.c_str(); const float *floats = reinterpret_cast( bytes ); - for (int i = 0; i < size; i++) { - result.append(*(floats + i)); + for ( int i = 0; i < size; i++ ) + { + result.append( *( floats + i ) ); } - } else { - for (int i = 0; i < size; i++) { - result.append(tensor.float_data(i)); + } + else + { + for ( int i = 0; i < size; i++ ) + { + result.append( tensor.float_data( i ) ); } } return result; } -Vector getTensorIntValues(const onnx::TensorProto &tensor, const TensorShape shape) { - int size = tensorSize(shape); +Vector getTensorIntValues( const onnx::TensorProto &tensor, const TensorShape shape ) +{ + int size = tensorSize( shape ); std::string raw_data = tensor.raw_data(); Vector result; - if (raw_data.size() != 0) { + if ( raw_data.size() != 0 ) + { checkEndianness(); const char *bytes = raw_data.c_str(); const int64_t *ints = reinterpret_cast( bytes ); - for (int i = 0; i < size; i++) { - int64_t value = *(ints + i); - result.append(value); + for ( int i = 0; i < size; i++ ) + { + int64_t value = *( ints + i ); + result.append( value ); } - } else { - for (int i = 0; i < size; i++) { - int value = tensor.int64_data(i); - result.append(value); + } + else + { + for ( int i = 0; i < size; i++ ) + { + int value = tensor.int64_data( i ); + result.append( value ); } } return result; } -Vector getTensorInt32Values(const onnx::TensorProto &tensor, const TensorShape shape) { - int size = tensorSize(shape); +Vector getTensorInt32Values( const onnx::TensorProto &tensor, const TensorShape shape ) +{ + int size = tensorSize( shape ); std::string raw_data = tensor.raw_data(); Vector result; - if (raw_data.size() != 0) { + if ( raw_data.size() != 0 ) + { checkEndianness(); const char *bytes = raw_data.c_str(); const int32_t *int32 = reinterpret_cast( bytes ); - for (int i = 0; i < size; i++) { - int32_t value = *(int32 + i); - result.append(value); + for ( int i = 0; i < size; i++ ) + { + int32_t value = *( int32 + i ); + result.append( value ); } - } else { - for (int i = 0; i < size; i++) { - int32_t value = tensor.int32_data(i); - result.append(value); + } + else + { + for ( int i = 0; i < size; i++ ) + { + int32_t value = tensor.int32_data( i ); + result.append( value ); } } return result; } -bool OnnxParser::isConstantNode(String name) { - return _constantIntTensors.exists(name) || _constantFloatTensors.exists(name) || - _constantInt32Tensors.exists(name); +bool OnnxParser::isConstantNode( String name ) +{ + return _constantIntTensors.exists( name ) || _constantFloatTensors.exists( name ) || + _constantInt32Tensors.exists( name ); } -void OnnxParser::insertConstant(String name, - const onnx::TensorProto &tensor, - const TensorShape shape) { - checkTensorDataSourceIsInternal(tensor); +void OnnxParser::insertConstant( String name, + const onnx::TensorProto &tensor, + const TensorShape shape ) +{ + checkTensorDataSourceIsInternal( tensor ); onnx::TensorProto_DataType dataType = - static_cast( tensor.data_type()); - if (dataType == onnx::TensorProto_DataType_INT64) { - _constantIntTensors.insert(name, getTensorIntValues(tensor, shape)); - } else if (dataType == onnx::TensorProto_DataType_FLOAT) { - _constantFloatTensors.insert(name, getTensorFloatValues(tensor, shape)); - } else if (dataType == onnx::TensorProto_DataType_BOOL) { + static_cast( tensor.data_type() ); + if ( dataType == onnx::TensorProto_DataType_INT64 ) + { + _constantIntTensors.insert( name, getTensorIntValues( tensor, shape ) ); + } + else if ( dataType == onnx::TensorProto_DataType_FLOAT ) + { + _constantFloatTensors.insert( name, getTensorFloatValues( tensor, shape ) ); + } + else if ( dataType == onnx::TensorProto_DataType_BOOL ) + { // NOTE: INT32, INT16, INT8, INT4, UINT16, UINT8, UINT4, BOOL, FLOAT16, // BFLOAT16, FLOAT8E4M3FN, FLOAT8E4M3FNUZ, FLOAT8E5M2, FLOAT8E5M2FNUZ // are all represented as an int32. Support for those should be added later // when there is a practical need. - _constantInt32Tensors.insert(name, getTensorInt32Values(tensor, shape)); - } else { - unimplementedConstantTypeError(dataType); + _constantInt32Tensors.insert( name, getTensorInt32Values( tensor, shape ) ); + } + else + { + unimplementedConstantTypeError( dataType ); } } -void OnnxParser::transferValues(String oldName, String newName) { - if (_varMap.exists(oldName)) { +void OnnxParser::transferValues( String oldName, String newName ) +{ + if ( _varMap.exists( oldName ) ) + { _varMap[newName] = _varMap[oldName]; - } else if (_constantIntTensors.exists(oldName)) { - _constantIntTensors.insert(newName, _constantIntTensors[oldName]); - } else if (_constantFloatTensors.exists(oldName)) { - _constantFloatTensors.insert(newName, _constantFloatTensors[oldName]); - } else if (_constantInt32Tensors.exists(oldName)) { - _constantInt32Tensors.insert(newName, _constantInt32Tensors[oldName]); - } else { - missingNodeError(oldName); + } + else if ( _constantIntTensors.exists( oldName ) ) + { + _constantIntTensors.insert( newName, _constantIntTensors[oldName] ); + } + else if ( _constantFloatTensors.exists( oldName ) ) + { + _constantFloatTensors.insert( newName, _constantFloatTensors[oldName] ); + } + else if ( _constantInt32Tensors.exists( oldName ) ) + { + _constantInt32Tensors.insert( newName, _constantInt32Tensors[oldName] ); + } + else + { + missingNodeError( oldName ); } } @@ -456,161 +553,197 @@ void OnnxParser::transferValues(String oldName, String newName) { * Private methods * *******************/ -OnnxParser::OnnxParser(InputQueryBuilder &query, - const String &path, - const Set inputNames, - const Set terminalNames) - : _query(query) { +OnnxParser::OnnxParser( InputQueryBuilder &query, + const String &path, + const Set inputNames, + const Set terminalNames ) + : _query( query ) +{ // open file and move current position in file to the end - std::ifstream input(path.ascii(), std::ios::ate | std::ios::binary); + std::ifstream input( path.ascii(), std::ios::ate | std::ios::binary ); // get current position in file std::streamsize size = input.tellg(); // move to start of file - input.seekg(0, std::ios::beg); + input.seekg( 0, std::ios::beg ); // read raw data - Vector buffer(size); - input.read(buffer.data(), size); + Vector buffer( size ); + input.read( buffer.data(), size ); // parse protobuf onnx::ModelProto model; - model.ParseFromArray(buffer.data(), size); + model.ParseFromArray( buffer.data(), size ); _network = model.graph(); _numberOfFoundInputs = 0; - if (inputNames.empty()) { + if ( inputNames.empty() ) + { _inputNames = readInputNames(); - } else { - validateUserInputNames(inputNames); + } + else + { + validateUserInputNames( inputNames ); _inputNames = inputNames; } - if (terminalNames.empty()) { + if ( terminalNames.empty() ) + { _terminalNames = readOutputNames(); - } else { - validateUserTerminalNames(terminalNames); + } + else + { + validateUserTerminalNames( terminalNames ); _terminalNames = terminalNames; } } -void OnnxParser::validateUserInputNames(const Set &inputNames) { +void OnnxParser::validateUserInputNames( const Set &inputNames ) +{ // Collate all input nodes Set allInputNames; - for (const onnx::ValueInfoProto &node: _network.input()) { + for ( const onnx::ValueInfoProto &node : _network.input() ) + { const std::string name = node.name(); - if (isConstantNode(name)) + if ( isConstantNode( name ) ) continue; - if (allInputNames.exists(name)) { + if ( allInputNames.exists( name ) ) + { String errorMessage = Stringf( - "Input nodes in Onnx network must have a unique name but found duplicate name '%s'", - name.c_str()); - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); - } else { - allInputNames.insert(name); + "Input nodes in Onnx network must have a unique name but found duplicate name '%s'", + name.c_str() ); + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); + } + else + { + allInputNames.insert( name ); } } // Validate the provided inputs - for (String inputName: inputNames) { - if (!allInputNames.exists(inputName)) { - String errorMessage = Stringf("Input %s not found in graph!", inputName.ascii()); - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); + for ( String inputName : inputNames ) + { + if ( !allInputNames.exists( inputName ) ) + { + String errorMessage = Stringf( "Input %s not found in graph!", inputName.ascii() ); + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); } } } -void OnnxParser::validateUserTerminalNames(const Set &terminalNames) { - for (String terminalName: terminalNames) { - for (auto node: _network.node()) { - for (String outputNodeName: node.output()) { - if (terminalName == outputNodeName) +void OnnxParser::validateUserTerminalNames( const Set &terminalNames ) +{ + for ( String terminalName : terminalNames ) + { + for ( auto node : _network.node() ) + { + for ( String outputNodeName : node.output() ) + { + if ( terminalName == outputNodeName ) return; } } - String errorMessage = Stringf("Output %s not found in graph!", terminalName.ascii()); - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); + String errorMessage = Stringf( "Output %s not found in graph!", terminalName.ascii() ); + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); } } -const Set OnnxParser::readInputNames() { - ASSERT(_network.input().size() >= 1); +const Set OnnxParser::readInputNames() +{ + ASSERT( _network.input().size() >= 1 ); Set initializerNames; - for (auto &initNode: _network.initializer()) { - ONNX_LOG(Stringf("Found initialiser '%s'", initNode.name().c_str()).ascii()); - initializerNames.insert(initNode.name()); + for ( auto &initNode : _network.initializer() ) + { + ONNX_LOG( Stringf( "Found initialiser '%s'", initNode.name().c_str() ).ascii() ); + initializerNames.insert( initNode.name() ); } Set inputNames; - for (auto &inputNode: _network.input()) { - ONNX_LOG(Stringf("Found input '%s'", inputNode.name().c_str()).ascii()); - inputNames.insert(inputNode.name()); + for ( auto &inputNode : _network.input() ) + { + ONNX_LOG( Stringf( "Found input '%s'", inputNode.name().c_str() ).ascii() ); + inputNames.insert( inputNode.name() ); } - return Set::difference(inputNames, initializerNames); + return Set::difference( inputNames, initializerNames ); } -const Set OnnxParser::readOutputNames() { +const Set OnnxParser::readOutputNames() +{ Set outputNames; - for (auto &outputNode: _network.output()) { - ONNX_LOG(Stringf("Found output '%s'", outputNode.name().c_str()).ascii()); - outputNames.insert(outputNode.name()); + for ( auto &outputNode : _network.output() ) + { + ONNX_LOG( Stringf( "Found output '%s'", outputNode.name().c_str() ).ascii() ); + outputNames.insert( outputNode.name() ); } return outputNames; } -void OnnxParser::initializeShapeAndConstantMaps() { +void OnnxParser::initializeShapeAndConstantMaps() +{ // Add shapes for inputs - for (auto input: _network.input()) { + for ( auto input : _network.input() ) + { String inputName = input.name(); - _shapeMap.insert(inputName, shapeOfInput(input)); + _shapeMap.insert( inputName, shapeOfInput( input ) ); // If this is one of the specified inputs, create new variables - if (_inputNames.exists(inputName)) { - _processedNodes.insert(inputName); + if ( _inputNames.exists( inputName ) ) + { + _processedNodes.insert( inputName ); _numberOfFoundInputs += 1; - Vector nodeVars = makeNodeVariables(inputName, true); + Vector nodeVars = makeNodeVariables( inputName, true ); } } // Initialise constants - for (const onnx::TensorProto &constant: _network.initializer()) { + for ( const onnx::TensorProto &constant : _network.initializer() ) + { String constantName = constant.name(); - if (isConstantNode(constantName)) { - String errorMessage = Stringf("Initializers in Onnx network must have a unique name " - "but found duplicate name '%s'", - constantName.ascii()); - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); - } else { - TensorShape constantShape = shapeOfConstant(constant); - _shapeMap.insert(constantName, constantShape); - _processedNodes.insert(constantName); - insertConstant(constantName, constant, constantShape); + if ( isConstantNode( constantName ) ) + { + String errorMessage = Stringf( "Initializers in Onnx network must have a unique name " + "but found duplicate name '%s'", + constantName.ascii() ); + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); + } + else + { + TensorShape constantShape = shapeOfConstant( constant ); + _shapeMap.insert( constantName, constantShape ); + _processedNodes.insert( constantName ); + insertConstant( constantName, constant, constantShape ); } } } -void OnnxParser::validateAllInputsAndOutputsFound() { +void OnnxParser::validateAllInputsAndOutputsFound() +{ // By this point, all input variables need to have been found - if (_numberOfFoundInputs != _inputNames.size()) { + if ( _numberOfFoundInputs != _inputNames.size() ) + { String errorMessage = "These input variables could not be found:"; - for (String inputName: _inputNames) { - if (!_varMap.exists(inputName)) { + for ( String inputName : _inputNames ) + { + if ( !_varMap.exists( inputName ) ) + { String space = " "; errorMessage += space + inputName; } } - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); } // Mark the output variables - for (String terminalName: _terminalNames) { - for (Variable var: _varMap[terminalName]) { - _query.markOutputVariable(var); + for ( String terminalName : _terminalNames ) + { + for ( Variable var : _varMap[terminalName] ) + { + _query.markOutputVariable( var ); } } } @@ -623,10 +756,12 @@ void OnnxParser::validateAllInputsAndOutputsFound() { * @param terminalNames The names of the output node to end at. * @param query The query in which to store the generated constraints. */ -void OnnxParser::processGraph() { +void OnnxParser::processGraph() +{ initializeShapeAndConstantMaps(); - for (String terminalName: _terminalNames) { - processNode(terminalName, true); + for ( String terminalName : _terminalNames ) + { + processNode( terminalName, true ); } validateAllInputsAndOutputsFound(); } @@ -639,11 +774,13 @@ void OnnxParser::processGraph() { * @param node * @param makeEquations */ -void OnnxParser::processNode(String &nodeName, bool makeEquations) { - if (_processedNodes.exists(nodeName)) +void OnnxParser::processNode( String &nodeName, bool makeEquations ) +{ + if ( _processedNodes.exists( nodeName ) ) return; - if (_inputNames.exists(nodeName)) { + if ( _inputNames.exists( nodeName ) ) + { _numberOfFoundInputs += 1; // If an inputName is an intermediate layer of the network, we don't need to create Marabou // equations for its inputs. However, we still need to call makeMarabouEquations in order to @@ -651,53 +788,62 @@ void OnnxParser::processNode(String &nodeName, bool makeEquations) { makeEquations = false; } - _processedNodes.insert(nodeName); + _processedNodes.insert( nodeName ); - List nodes = getNodesWithOutput(nodeName); - ASSERT(nodes.size() == 1); + List nodes = getNodesWithOutput( nodeName ); + ASSERT( nodes.size() == 1 ); onnx::NodeProto &node = nodes.front(); // First recursively process the input nodes. // This ensures that shapes and values of a node's inputs have been computed first. - for (auto inputNode: getInputsToNode(node)) { - processNode(inputNode, makeEquations); + for ( auto inputNode : getInputsToNode( node ) ) + { + processNode( inputNode, makeEquations ); } // Compute node's shape and create Marabou equations as needed - makeMarabouEquations(node, makeEquations); + makeMarabouEquations( node, makeEquations ); // Create new variables when we find one of the inputs - if (_inputNames.exists(nodeName)) { - Vector vars = makeNodeVariables(nodeName, true); + if ( _inputNames.exists( nodeName ) ) + { + Vector vars = makeNodeVariables( nodeName, true ); } } /** * @brief Assuming the node's shape is known, return a set of new variables in the same shape */ -Vector OnnxParser::makeNodeVariables(String &nodeName, bool isInput) { - ASSERT(!_varMap.exists(nodeName)); +Vector OnnxParser::makeNodeVariables( String &nodeName, bool isInput ) +{ + ASSERT( !_varMap.exists( nodeName ) ); TensorShape shape = _shapeMap[nodeName]; - int size = tensorSize(shape); + int size = tensorSize( shape ); Vector variables; - for (int i = 0; i < size; i++) { + for ( int i = 0; i < size; i++ ) + { Variable variable = _query.getNewVariable(); - variables.append(variable); - if (isInput) { - _query.markInputVariable(variable); + variables.append( variable ); + if ( isInput ) + { + _query.markInputVariable( variable ); } } - _varMap.insert(nodeName, variables); + _varMap.insert( nodeName, variables ); return variables; } -List OnnxParser::getNodesWithOutput(String &nodeName) { +List OnnxParser::getNodesWithOutput( String &nodeName ) +{ List nodes; - for (auto node: _network.node()) { - for (auto outputName: node.output()) { - if (outputName == nodeName.ascii()) { - nodes.append(node); + for ( auto node : _network.node() ) + { + for ( auto outputName : node.output() ) + { + if ( outputName == nodeName.ascii() ) + { + nodes.append( node ); break; } } @@ -705,11 +851,14 @@ List OnnxParser::getNodesWithOutput(String &nodeName) { return nodes; } -Set OnnxParser::getInputsToNode(onnx::NodeProto &node) { +Set OnnxParser::getInputsToNode( onnx::NodeProto &node ) +{ Set inputNames; - for (String inputNodeName: node.input()) { - if (getNodesWithOutput(inputNodeName).size() >= 1) { - inputNames.insert(inputNodeName); + for ( String inputNodeName : node.input() ) + { + if ( getNodesWithOutput( inputNodeName ).size() >= 1 ) + { + inputNames.insert( inputNodeName ); } } return inputNames; @@ -722,55 +871,99 @@ Set OnnxParser::getInputsToNode(onnx::NodeProto &node) { * @param node Name of node for which we want to compute the output shape * @param makeEquations Create Marabou equations for this node if True */ -void OnnxParser::makeMarabouEquations(onnx::NodeProto &node, bool makeEquations) { +void OnnxParser::makeMarabouEquations( onnx::NodeProto &node, bool makeEquations ) +{ auto nodeType = node.op_type().c_str(); ONNX_LOG( - Stringf("Processing node '%s' of type '%s'", node.name().c_str(), nodeType).ascii()); - - if (strcmp(nodeType, "Constant") == 0) { - constant(node); - } else if (strcmp(nodeType, "Identity") == 0) { - identity(node); - } else if (strcmp(nodeType, "Dropout") == 0) { - dropout(node); - } else if (strcmp(nodeType, "Cast") == 0) { - cast(node); - } else if (strcmp(nodeType, "Reshape") == 0) { - reshape(node); - } else if (strcmp(nodeType, "Flatten") == 0) { - flatten(node); - } else if (strcmp(nodeType, "Transpose") == 0) { - transpose(node); - } else if (strcmp(nodeType, "Squeeze") == 0) { - squeeze(node); - } else if (strcmp(nodeType, "Unsqueeze") == 0) { - unsqueeze(node); - } else if (strcmp(nodeType, "BatchNormalization") == 0) { - batchNormEquations(node, makeEquations); - } else if (strcmp(nodeType, "MaxPool") == 0) { - maxPoolEquations(node, makeEquations); - } else if (strcmp(nodeType, "Conv") == 0) { - convEquations(node, makeEquations); - } else if (strcmp(nodeType, "Gemm") == 0) { - gemmEquations(node, makeEquations); - } else if (strcmp(nodeType, "Add") == 0) { - scaleAndAddEquations(node, makeEquations, 1, 1); - } else if (strcmp(nodeType, "Sub") == 0) { - scaleAndAddEquations(node, makeEquations, 1, -1); - } else if (strcmp(nodeType, "Relu") == 0) { - reluEquations(node, makeEquations); - } else if (strcmp(nodeType, "LeakyRelu") == 0) { - leakyReluEquations(node, makeEquations); - } else if (strcmp(nodeType, "MatMul") == 0) { - matMulEquations(node, makeEquations); - } else if (strcmp(nodeType, "Sigmoid") == 0) { - sigmoidEquations(node, makeEquations); - } else if (strcmp(nodeType, "Tanh") == 0) { - tanhEquations(node, makeEquations); - } else if (strcmp(nodeType, "Sign") == 0) { - signEquations(node, makeEquations); - } else { - unsupportedError(node); + Stringf( "Processing node '%s' of type '%s'", node.name().c_str(), nodeType ).ascii() ); + + if ( strcmp( nodeType, "Constant" ) == 0 ) + { + constant( node ); + } + else if ( strcmp( nodeType, "Identity" ) == 0 ) + { + identity( node ); + } + else if ( strcmp( nodeType, "Dropout" ) == 0 ) + { + dropout( node ); + } + else if ( strcmp( nodeType, "Cast" ) == 0 ) + { + cast( node ); + } + else if ( strcmp( nodeType, "Reshape" ) == 0 ) + { + reshape( node ); + } + else if ( strcmp( nodeType, "Flatten" ) == 0 ) + { + flatten( node ); + } + else if ( strcmp( nodeType, "Transpose" ) == 0 ) + { + transpose( node ); + } + else if ( strcmp( nodeType, "Squeeze" ) == 0 ) + { + squeeze( node ); + } + else if ( strcmp( nodeType, "Unsqueeze" ) == 0 ) + { + unsqueeze( node ); + } + else if ( strcmp( nodeType, "BatchNormalization" ) == 0 ) + { + batchNormEquations( node, makeEquations ); + } + else if ( strcmp( nodeType, "MaxPool" ) == 0 ) + { + maxPoolEquations( node, makeEquations ); + } + else if ( strcmp( nodeType, "Conv" ) == 0 ) + { + convEquations( node, makeEquations ); + } + else if ( strcmp( nodeType, "Gemm" ) == 0 ) + { + gemmEquations( node, makeEquations ); + } + else if ( strcmp( nodeType, "Add" ) == 0 ) + { + scaleAndAddEquations( node, makeEquations, 1, 1 ); + } + else if ( strcmp( nodeType, "Sub" ) == 0 ) + { + scaleAndAddEquations( node, makeEquations, 1, -1 ); + } + else if ( strcmp( nodeType, "Relu" ) == 0 ) + { + reluEquations( node, makeEquations ); + } + else if ( strcmp( nodeType, "LeakyRelu" ) == 0 ) + { + leakyReluEquations( node, makeEquations ); + } + else if ( strcmp( nodeType, "MatMul" ) == 0 ) + { + matMulEquations( node, makeEquations ); + } + else if ( strcmp( nodeType, "Sigmoid" ) == 0 ) + { + sigmoidEquations( node, makeEquations ); + } + else if ( strcmp( nodeType, "Tanh" ) == 0 ) + { + tanhEquations( node, makeEquations ); + } + else if ( strcmp( nodeType, "Sign" ) == 0 ) + { + signEquations( node, makeEquations ); + } + else + { + unsupportedError( node ); } } @@ -780,13 +973,14 @@ void OnnxParser::makeMarabouEquations(onnx::NodeProto &node, bool makeEquations) * * @param node The ONNX node */ -void OnnxParser::constant(onnx::NodeProto &node) { +void OnnxParser::constant( onnx::NodeProto &node ) +{ String outputNodeName = node.output()[0]; - const onnx::TensorProto &value = getTensorAttribute(node, "value")->t(); - const TensorShape shape = shapeOfConstant(value); + const onnx::TensorProto &value = getTensorAttribute( node, "value" )->t(); + const TensorShape shape = shapeOfConstant( value ); _shapeMap[outputNodeName] = shape; - insertConstant(outputNodeName, value, shape); + insertConstant( outputNodeName, value, shape ); } /** @@ -795,12 +989,13 @@ void OnnxParser::constant(onnx::NodeProto &node) { * * @param node The ONNX node */ -void OnnxParser::identity(onnx::NodeProto &node) { +void OnnxParser::identity( onnx::NodeProto &node ) +{ String outputNodeName = node.output()[0]; String inputNodeName = node.input()[0]; _shapeMap[outputNodeName] = _shapeMap[inputNodeName]; - transferValues(inputNodeName, outputNodeName); + transferValues( inputNodeName, outputNodeName ); } /** @@ -809,19 +1004,24 @@ void OnnxParser::identity(onnx::NodeProto &node) { * * @param node The ONNX node */ -void OnnxParser::dropout(onnx::NodeProto &node) { - if (node.input().size() == 3) { +void OnnxParser::dropout( onnx::NodeProto &node ) +{ + if ( node.input().size() == 3 ) + { String trainingModeName = node.input()[2]; - if (!_constantInt32Tensors.exists(trainingModeName)) { - missingNodeError(trainingModeName); - } else if (_constantInt32Tensors[trainingModeName][0]) { + if ( !_constantInt32Tensors.exists( trainingModeName ) ) + { + missingNodeError( trainingModeName ); + } + else if ( _constantInt32Tensors[trainingModeName][0] ) + { // training mode is set to true - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, - "Marabou only supports training_mode=false in Dropout"); + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, + "Marabou only supports training_mode=false in Dropout" ); } } - identity(node); + identity( node ); } /** @@ -830,52 +1030,71 @@ void OnnxParser::dropout(onnx::NodeProto &node) { * * @param node The ONNX node */ -void OnnxParser::cast(onnx::NodeProto &node) { +void OnnxParser::cast( onnx::NodeProto &node ) +{ String outputNodeName = node.output()[0]; String inputNodeName = node.input()[0]; _shapeMap[outputNodeName] = _shapeMap[inputNodeName]; // Try to find type to cast to. If not found, raise error. onnx::TensorProto_DataType to = - static_cast( getRequiredIntAttribute(node, "to")); + static_cast( getRequiredIntAttribute( node, "to" ) ); - if (_varMap.exists(inputNodeName)) { + if ( _varMap.exists( inputNodeName ) ) + { // We shouldn't be casting variables to different types, since Marabou assumes variables // have double precision String errorMessage = - Stringf("The node '%s' casts non-constant values which is not supported by Marabou", - inputNodeName.ascii()); - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); + Stringf( "The node '%s' casts non-constant values which is not supported by Marabou", + inputNodeName.ascii() ); + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); } - if (_constantIntTensors.exists(inputNodeName)) { + if ( _constantIntTensors.exists( inputNodeName ) ) + { Vector tensor = _constantIntTensors[inputNodeName]; - if (to == onnx::TensorProto_DataType_INT64) { - _constantIntTensors.insert(outputNodeName, tensor); - } else if (to == onnx::TensorProto_DataType_FLOAT) { - Vector castTensor = Vector(tensor.size()); - for (PackedTensorIndices i = 0; i < tensor.size(); i++) { + if ( to == onnx::TensorProto_DataType_INT64 ) + { + _constantIntTensors.insert( outputNodeName, tensor ); + } + else if ( to == onnx::TensorProto_DataType_FLOAT ) + { + Vector castTensor = Vector( tensor.size() ); + for ( PackedTensorIndices i = 0; i < tensor.size(); i++ ) + { castTensor[i] = static_cast( tensor[i] ); } - _constantFloatTensors.insert(outputNodeName, castTensor); - } else { - unsupportedCastError(onnx::TensorProto_DataType_INT64, to); + _constantFloatTensors.insert( outputNodeName, castTensor ); + } + else + { + unsupportedCastError( onnx::TensorProto_DataType_INT64, to ); } - } else if (_constantFloatTensors.exists(inputNodeName)) { + } + else if ( _constantFloatTensors.exists( inputNodeName ) ) + { Vector tensor = _constantFloatTensors[inputNodeName]; - if (to == onnx::TensorProto_DataType_INT64) { - Vector castTensor = Vector(tensor.size()); - for (PackedTensorIndices i = 0; i < tensor.size(); i++) { + if ( to == onnx::TensorProto_DataType_INT64 ) + { + Vector castTensor = Vector( tensor.size() ); + for ( PackedTensorIndices i = 0; i < tensor.size(); i++ ) + { castTensor[i] = static_cast( tensor[i] ); } - _constantIntTensors.insert(outputNodeName, castTensor); - } else if (to == onnx::TensorProto_DataType_FLOAT) { - _constantFloatTensors.insert(outputNodeName, tensor); - } else { - unsupportedCastError(onnx::TensorProto_DataType_FLOAT, to); + _constantIntTensors.insert( outputNodeName, castTensor ); + } + else if ( to == onnx::TensorProto_DataType_FLOAT ) + { + _constantFloatTensors.insert( outputNodeName, tensor ); } - } else { - missingNodeError(inputNodeName); + else + { + unsupportedCastError( onnx::TensorProto_DataType_FLOAT, to ); + } + } + else + { + missingNodeError( inputNodeName ); } } @@ -885,22 +1104,23 @@ void OnnxParser::cast(onnx::NodeProto &node) { * * @param node The ONNX node */ -void OnnxParser::reshape(onnx::NodeProto &node) { +void OnnxParser::reshape( onnx::NodeProto &node ) +{ // Assume first input is array to be reshaped, second input is the new shape array String inputNodeName = node.input()[0]; String shapeNodeName = node.input()[1]; String outputNodeName = node.output()[0]; - bool allowZeroes = getIntAttribute(node, "allowzero", 0) != 0; + bool allowZeroes = getIntAttribute( node, "allowzero", 0 ) != 0; TensorShape oldShape = _shapeMap[inputNodeName]; Vector newShapeTemplate = _constantIntTensors[shapeNodeName]; - TensorShape newShape = instantiateReshapeTemplate(oldShape, newShapeTemplate, allowZeroes); + TensorShape newShape = instantiateReshapeTemplate( oldShape, newShapeTemplate, allowZeroes ); _shapeMap[outputNodeName] = newShape; // Transfer constants/variables - transferValues(inputNodeName, outputNodeName); + transferValues( inputNodeName, outputNodeName ); } /** @@ -909,30 +1129,33 @@ void OnnxParser::reshape(onnx::NodeProto &node) { * * @param node The ONNX node */ -void OnnxParser::flatten(onnx::NodeProto &node) { +void OnnxParser::flatten( onnx::NodeProto &node ) +{ String outputNodeName = node.output()[0]; String inputNodeName = node.input()[0]; // Get parameters - unsigned int axis = getIntAttribute(node, "axis", 1); + unsigned int axis = getIntAttribute( node, "axis", 1 ); // Calculate output shape TensorShape inputShape = _shapeMap[inputNodeName]; int dim1 = 1; - for (unsigned int i = 0; i < axis; i++) { + for ( unsigned int i = 0; i < axis; i++ ) + { dim1 *= inputShape[i]; } int dim2 = 1; - for (unsigned int i = axis; i < inputShape.size(); i++) { + for ( unsigned int i = axis; i < inputShape.size(); i++ ) + { dim2 *= inputShape[i]; } TensorShape outputShape; - outputShape.append(dim1); - outputShape.append(dim2); + outputShape.append( dim1 ); + outputShape.append( dim2 ); // Transfer constants/variables _shapeMap[outputNodeName] = outputShape; - transferValues(inputNodeName, outputNodeName); + transferValues( inputNodeName, outputNodeName ); } /** @@ -941,34 +1164,42 @@ void OnnxParser::flatten(onnx::NodeProto &node) { * * @param node The ONNX node */ -void OnnxParser::transpose(onnx::NodeProto &node) { +void OnnxParser::transpose( onnx::NodeProto &node ) +{ String inputNodeName = node.input()[0]; String outputNodeName = node.output()[0]; TensorShape inputShape = _shapeMap[inputNodeName]; // Get permutation (default is the reverse permutation) - Permutation defaultPerm = reversePermutation(inputShape.size()); - Permutation perm = getNonNegativeIntsAttribute(node, "perm", defaultPerm); + Permutation defaultPerm = reversePermutation( inputShape.size() ); + Permutation perm = getNonNegativeIntsAttribute( node, "perm", defaultPerm ); // Calculate the output shape - TensorShape outputShape = transposeVector(inputShape, perm); + TensorShape outputShape = transposeVector( inputShape, perm ); _shapeMap[outputNodeName] = outputShape; // Update the constant or variable maps - if (_varMap.exists(inputNodeName)) { + if ( _varMap.exists( inputNodeName ) ) + { Vector inputVars = _varMap[inputNodeName]; - _varMap[outputNodeName] = transposeTensor(inputVars, inputShape, perm); - } else if (_constantIntTensors.exists(inputNodeName)) { + _varMap[outputNodeName] = transposeTensor( inputVars, inputShape, perm ); + } + else if ( _constantIntTensors.exists( inputNodeName ) ) + { Vector inputConstant = _constantIntTensors[inputNodeName]; - _constantIntTensors.insert(outputNodeName, - transposeTensor(inputConstant, inputShape, perm)); - } else if (_constantFloatTensors.exists(inputNodeName)) { + _constantIntTensors.insert( outputNodeName, + transposeTensor( inputConstant, inputShape, perm ) ); + } + else if ( _constantFloatTensors.exists( inputNodeName ) ) + { Vector inputConstant = _constantFloatTensors[inputNodeName]; - _constantFloatTensors.insert(outputNodeName, - transposeTensor(inputConstant, inputShape, perm)); - } else { - missingNodeError(inputNodeName); + _constantFloatTensors.insert( outputNodeName, + transposeTensor( inputConstant, inputShape, perm ) ); + } + else + { + missingNodeError( inputNodeName ); } } @@ -978,7 +1209,8 @@ void OnnxParser::transpose(onnx::NodeProto &node) { * * @param node The ONNX node */ -void OnnxParser::squeeze(onnx::NodeProto &node) { +void OnnxParser::squeeze( onnx::NodeProto &node ) +{ String inputNodeName = node.input()[0]; String outputNodeName = node.output()[0]; @@ -988,37 +1220,48 @@ void OnnxParser::squeeze(onnx::NodeProto &node) { // Get the axes to squeeze Vector axes; unsigned int numberOfInputs = node.input().size(); - if (numberOfInputs == 1) { - for (unsigned int i = 0; i < inputShape.size(); i++) { - if (inputShape[i] == 1) { - axes.append(i); + if ( numberOfInputs == 1 ) + { + for ( unsigned int i = 0; i < inputShape.size(); i++ ) + { + if ( inputShape[i] == 1 ) + { + axes.append( i ); } } - } else if (numberOfInputs == 2) { + } + else if ( numberOfInputs == 2 ) + { String axisName = node.input()[1]; - if (!_constantIntTensors.exists(axisName)) { - missingNodeError(axisName); + if ( !_constantIntTensors.exists( axisName ) ) + { + missingNodeError( axisName ); } - for (int64_t axis: _constantIntTensors[axisName]) { - axes.append(static_cast( axis )); + for ( int64_t axis : _constantIntTensors[axisName] ) + { + axes.append( static_cast( axis ) ); } - } else { - unexpectedNumberOfInputs(node, numberOfInputs, 1, 2); + } + else + { + unexpectedNumberOfInputs( node, numberOfInputs, 1, 2 ); } // Calculate the output shape - TensorShape outputShape = Vector(inputShape); - for (SignedTensorIndex signedAxis: axes) { - TensorIndex axis = unsignIndex(inputShape.size(), signedAxis); - if (inputShape[axis] != 1) { - String errorMessage = Stringf("Invalid axis found on Squeeze node '%s'. Expected " - "dimension %d to be of size 1 but was size %d", - inputNodeName.ascii(), - axis, - inputShape[axis]); - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); + TensorShape outputShape = Vector( inputShape ); + for ( SignedTensorIndex signedAxis : axes ) + { + TensorIndex axis = unsignIndex( inputShape.size(), signedAxis ); + if ( inputShape[axis] != 1 ) + { + String errorMessage = Stringf( "Invalid axis found on Squeeze node '%s'. Expected " + "dimension %d to be of size 1 but was size %d", + inputNodeName.ascii(), + axis, + inputShape[axis] ); + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); } - outputShape.eraseAt(axis); + outputShape.eraseAt( axis ); } // Update the maps @@ -1033,7 +1276,8 @@ void OnnxParser::squeeze(onnx::NodeProto &node) { * * @param node The ONNX node */ -void OnnxParser::unsqueeze(onnx::NodeProto &node) { +void OnnxParser::unsqueeze( onnx::NodeProto &node ) +{ String inputNodeName = node.input()[0]; String outputNodeName = node.output()[0]; @@ -1042,24 +1286,27 @@ void OnnxParser::unsqueeze(onnx::NodeProto &node) { // Get the axes to unsqueeze String axisName = node.input()[1]; - if (!_constantIntTensors.exists(axisName)) { - missingNodeError(axisName); + if ( !_constantIntTensors.exists( axisName ) ) + { + missingNodeError( axisName ); } Vector axes = _constantIntTensors[axisName]; // Calculate a sorted list of unsigned indices unsigned int outputShapeSize = inputShape.size() + axes.size(); Vector unsignedAxes; - for (int64_t index: axes) { + for ( int64_t index : axes ) + { SignedTensorIndex signedIndex = static_cast( index ); - unsignedAxes.append(unsignIndex(outputShapeSize, signedIndex)); + unsignedAxes.append( unsignIndex( outputShapeSize, signedIndex ) ); } unsignedAxes.sort(); // Calculate the output shape - TensorShape outputShape = Vector(inputShape); - for (TensorIndex index: unsignedAxes) { - outputShape.insertAt(index, 1); + TensorShape outputShape = Vector( inputShape ); + for ( TensorIndex index : unsignedAxes ) + { + outputShape.insertAt( index, 1 ); } // Update the maps @@ -1072,27 +1319,28 @@ void OnnxParser::unsqueeze(onnx::NodeProto &node) { * Implements https://github.com/onnx/onnx/blob/master/docs/Operators.md#batchnormalization. * @param node The ONNX node */ -void OnnxParser::batchNormEquations(onnx::NodeProto &node, bool makeEquations) { +void OnnxParser::batchNormEquations( onnx::NodeProto &node, bool makeEquations ) +{ String outputNodeName = node.output()[0]; String inputNodeName = node.input()[0]; TensorShape inputShape = _shapeMap[inputNodeName]; - ASSERT(inputShape.size() >= 2); + ASSERT( inputShape.size() >= 2 ); - unsigned int batchSize = inputShape.get(0); - unsigned int batchLength = tensorSize(inputShape) / batchSize; - unsigned int numberOfChannels = inputShape.get(1); + unsigned int batchSize = inputShape.get( 0 ); + unsigned int batchLength = tensorSize( inputShape ) / batchSize; + unsigned int numberOfChannels = inputShape.get( 1 ); unsigned int channelLength = batchLength / numberOfChannels; TensorShape outputShape = inputShape; _shapeMap[outputNodeName] = outputShape; - if (!makeEquations) + if ( !makeEquations ) return; // Get inputs - double epsilon = getFloatAttribute(node, "epsilon", 1e-05); + double epsilon = getFloatAttribute( node, "epsilon", 1e-05 ); std::string scalesName = node.input()[1]; std::string biasesName = node.input()[2]; std::string inputMeansName = node.input()[3]; @@ -1102,29 +1350,30 @@ void OnnxParser::batchNormEquations(onnx::NodeProto &node, bool makeEquations) { Vector inputMeans = _constantFloatTensors[inputMeansName]; Vector inputVariances = _constantFloatTensors[inputVariancesName]; - ASSERT(scales.size() == numberOfChannels); - ASSERT(biases.size() == numberOfChannels); - ASSERT(inputMeans.size() == numberOfChannels); - ASSERT(inputVariances.size() == numberOfChannels); + ASSERT( scales.size() == numberOfChannels ); + ASSERT( biases.size() == numberOfChannels ); + ASSERT( inputMeans.size() == numberOfChannels ); + ASSERT( inputVariances.size() == numberOfChannels ); // Get variables Vector inputVars = _varMap[inputNodeName]; - Vector outputVars = makeNodeVariables(outputNodeName, false); - ASSERT(inputVars.size() == tensorSize(inputShape)); - ASSERT(outputVars.size() == tensorSize(outputShape)); + Vector outputVars = makeNodeVariables( outputNodeName, false ); + ASSERT( inputVars.size() == tensorSize( inputShape ) ); + ASSERT( outputVars.size() == tensorSize( outputShape ) ); - for (unsigned int i = 0; i < inputVars.size(); i++) { - unsigned int channel = (i % batchLength) / channelLength; + for ( unsigned int i = 0; i < inputVars.size(); i++ ) + { + unsigned int channel = ( i % batchLength ) / channelLength; double scale = scales[channel]; double bias = biases[channel]; double inputMean = inputMeans[channel]; double inputVariance = inputVariances[channel]; Equation e = Equation(); - e.addAddend(-1, outputVars[i]); - e.addAddend(1 / sqrt(inputVariance + epsilon) * scale, inputVars[i]); - e.setScalar(inputMean / sqrt(inputVariance + epsilon) * scale - bias); - _query.addEquation(e); + e.addAddend( -1, outputVars[i] ); + e.addAddend( 1 / sqrt( inputVariance + epsilon ) * scale, inputVars[i] ); + e.setScalar( inputMean / sqrt( inputVariance + epsilon ) * scale - bias ); + _query.addEquation( e ); } } @@ -1135,18 +1384,20 @@ void OnnxParser::batchNormEquations(onnx::NodeProto &node, bool makeEquations) { * @param node ONNX node representing the MaxPool operation * @param makeEquations True if we need to create new variables and add new Relus */ -void OnnxParser::maxPoolEquations(onnx::NodeProto &node, [[maybe_unused]] bool makeEquations) { +void OnnxParser::maxPoolEquations( onnx::NodeProto &node, [[maybe_unused]] bool makeEquations ) +{ String inputNodeName = node.input()[0]; String outputNodeName = node.output()[0]; // Extract attributes and define shape TensorShape inputShape = _shapeMap[inputNodeName]; - if (inputShape.size() != 4) { + if ( inputShape.size() != 4 ) + { String errorMessage = Stringf( - "Currently the Onnx '%s' operation with inputs of dimensions not equal to '%d'.", - node.op_type().c_str(), - inputShape.size()); - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); + "Currently the Onnx '%s' operation with inputs of dimensions not equal to '%d'.", + node.op_type().c_str(), + inputShape.size() ); + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); } int widthIndex = inputShape.size() - 2; int heightIndex = inputShape.size() - 1; @@ -1155,102 +1406,115 @@ void OnnxParser::maxPoolEquations(onnx::NodeProto &node, [[maybe_unused]] bool m // Get auto_pad (deprecated) String defaultAutoPad = "NOTSET"; - String autoPad = getStringAttribute(node, "auto_pad", defaultAutoPad); - if (autoPad != defaultAutoPad) { - unimplementedAttributeError(node, "auto_pad"); + String autoPad = getStringAttribute( node, "auto_pad", defaultAutoPad ); + if ( autoPad != defaultAutoPad ) + { + unimplementedAttributeError( node, "auto_pad" ); } // Get ceil_mode int defaultCeilMode = 0; - int ceilMode = getIntAttribute(node, "ceil_mode", defaultCeilMode); + int ceilMode = getIntAttribute( node, "ceil_mode", defaultCeilMode ); // Get dilations - Vector defaultDilations = {1, 1}; + Vector defaultDilations = { 1, 1 }; Vector dilations = - getNonNegativeIntsAttribute(node, "dilations", defaultDilations); - for (auto d: dilations) { - if (d != 1) { - unimplementedAttributeError(node, "dilations"); + getNonNegativeIntsAttribute( node, "dilations", defaultDilations ); + for ( auto d : dilations ) + { + if ( d != 1 ) + { + unimplementedAttributeError( node, "dilations" ); } } // Get the kernel shape (required) - TensorShape defaultKernelShape = {1, 1}; + TensorShape defaultKernelShape = { 1, 1 }; TensorShape kernelShape = - getNonNegativeIntsAttribute(node, "kernel_shape", defaultKernelShape); + getNonNegativeIntsAttribute( node, "kernel_shape", defaultKernelShape ); // Get the pads - Vector defaultPads = {0, 0, 0, 0}; - Vector pads = getNonNegativeIntsAttribute(node, "pads", defaultPads); - if (pads.size() == 0) { + Vector defaultPads = { 0, 0, 0, 0 }; + Vector pads = getNonNegativeIntsAttribute( node, "pads", defaultPads ); + if ( pads.size() == 0 ) + { String errorMessage = - Stringf("Unexpected padding length '%d' for the Onnx '%s' operation.", - node.op_type().c_str(), - pads.size()); - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); + Stringf( "Unexpected padding length '%d' for the Onnx '%s' operation.", + node.op_type().c_str(), + pads.size() ); + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); } int padWidth = pads[0] + pads[1]; int padHeight = pads[2] + pads[3]; // Get storage order int defaultStorageOrder = 0; - int storageOrder = getIntAttribute(node, "storage_order", defaultStorageOrder); - if (storageOrder != defaultStorageOrder) { - unimplementedAttributeError(node, "storage_order"); + int storageOrder = getIntAttribute( node, "storage_order", defaultStorageOrder ); + if ( storageOrder != defaultStorageOrder ) + { + unimplementedAttributeError( node, "storage_order" ); } // Get strides - Vector defaultStrides = {1, 1}; - Vector strides = getNonNegativeIntsAttribute(node, "strides", defaultStrides); + Vector defaultStrides = { 1, 1 }; + Vector strides = getNonNegativeIntsAttribute( node, "strides", defaultStrides ); // Calculate the outputs shape - TensorShape outputShape = Vector(inputShape); + TensorShape outputShape = Vector( inputShape ); float unroundedOutputWidth = - (((float) (inputWidth + padWidth - ((kernelShape[0] - 1) * dilations[0] + 1))) / - ((float) strides[0])) + - 1; + ( ( (float)( inputWidth + padWidth - ( ( kernelShape[0] - 1 ) * dilations[0] + 1 ) ) ) / + ( (float)strides[0] ) ) + + 1; float unroundedOutputHeight = - (((float) (inputHeight + padHeight - ((kernelShape[1] - 1) * dilations[1] + 1))) / - ((float) strides[1])) + - 1; + ( ( (float)( inputHeight + padHeight - ( ( kernelShape[1] - 1 ) * dilations[1] + 1 ) ) ) / + ( (float)strides[1] ) ) + + 1; - if (ceilMode == 0) { - outputShape[widthIndex] = (int) std::floor(unroundedOutputWidth); - outputShape[heightIndex] = (int) std::floor(unroundedOutputHeight); - } else { - outputShape[widthIndex] = (int) std::ceil(unroundedOutputWidth); - outputShape[heightIndex] = (int) std::ceil(unroundedOutputHeight); + if ( ceilMode == 0 ) + { + outputShape[widthIndex] = (int)std::floor( unroundedOutputWidth ); + outputShape[heightIndex] = (int)std::floor( unroundedOutputHeight ); + } + else + { + outputShape[widthIndex] = (int)std::ceil( unroundedOutputWidth ); + outputShape[heightIndex] = (int)std::ceil( unroundedOutputHeight ); } _shapeMap[outputNodeName] = outputShape; - if (!makeEquations) + if ( !makeEquations ) return; // Make equations Vector inputVars = _varMap[inputNodeName]; - Vector outputVars = makeNodeVariables(outputNodeName, false); - for (TensorIndex i = 0; i < outputShape[widthIndex]; i++) { - for (TensorIndex j = 0; j < outputShape[heightIndex]; j++) { + Vector outputVars = makeNodeVariables( outputNodeName, false ); + for ( TensorIndex i = 0; i < outputShape[widthIndex]; i++ ) + { + for ( TensorIndex j = 0; j < outputShape[heightIndex]; j++ ) + { TensorIndex diStart = strides[0] * i; - TensorIndex diEnd = std::min(diStart + kernelShape[0], inputWidth); + TensorIndex diEnd = std::min( diStart + kernelShape[0], inputWidth ); TensorIndex djStart = strides[1] * j; - TensorIndex djEnd = std::min(djStart + kernelShape[1], inputHeight); + TensorIndex djEnd = std::min( djStart + kernelShape[1], inputHeight ); - for (TensorIndex k = 0; k < outputShape[1]; k++) { - TensorIndices outputVarIndices = {0, k, i, j}; - Variable outputVar = tensorLookup(outputVars, outputShape, outputVarIndices); + for ( TensorIndex k = 0; k < outputShape[1]; k++ ) + { + TensorIndices outputVarIndices = { 0, k, i, j }; + Variable outputVar = tensorLookup( outputVars, outputShape, outputVarIndices ); Set maxInputVars = Set(); - for (TensorIndex di = diStart; di < diEnd; di++) { - for (TensorIndex dj = djStart; dj < djEnd; dj++) { - TensorIndices maxInputVarIndices = {0, k, di, dj}; + for ( TensorIndex di = diStart; di < diEnd; di++ ) + { + for ( TensorIndex dj = djStart; dj < djEnd; dj++ ) + { + TensorIndices maxInputVarIndices = { 0, k, di, dj }; Variable maxInputVar = - tensorLookup(inputVars, inputShape, maxInputVarIndices); - maxInputVars.insert(maxInputVar); + tensorLookup( inputVars, inputShape, maxInputVarIndices ); + maxInputVars.insert( maxInputVar ); } } - _query.addMaxConstraint(outputVar, maxInputVars); + _query.addMaxConstraint( outputVar, maxInputVars ); } } } @@ -1264,7 +1528,8 @@ void OnnxParser::maxPoolEquations(onnx::NodeProto &node, [[maybe_unused]] bool m * @param node ONNX node representing the operation * @param makeEquations True if we need to create new variables */ -void OnnxParser::convEquations(onnx::NodeProto &node, [[maybe_unused]] bool makeEquations) { +void OnnxParser::convEquations( onnx::NodeProto &node, [[maybe_unused]] bool makeEquations ) +{ String outputNodeName = node.output()[0]; // Get input shape information @@ -1284,26 +1549,29 @@ void OnnxParser::convEquations(onnx::NodeProto &node, [[maybe_unused]] bool make unsigned int filterHeight = filterShape[3]; // The number of channels should match between input variable and filters - ASSERT(inputChannels == filterChannels); + ASSERT( inputChannels == filterChannels ); // Extract convolution stride information - Vector defaultStrides = {1, 1}; - Vector strides = getNonNegativeIntsAttribute(node, "strides", defaultStrides); + Vector defaultStrides = { 1, 1 }; + Vector strides = getNonNegativeIntsAttribute( node, "strides", defaultStrides ); unsigned int strideWidth = strides[0]; unsigned int strideHeight = strides[1]; // Extract the padding information String defaultAutoPad = "NOTSET"; - String autoPad = getStringAttribute(node, "auto_pad", defaultAutoPad); + String autoPad = getStringAttribute( node, "auto_pad", defaultAutoPad ); unsigned int padLeft, padBottom, padRight, padTop; - if (autoPad == "NOTSET") { - Vector defaultPads = {0, 0, 0, 0}; - Vector pads = getNonNegativeIntsAttribute(node, "pads", defaultPads); + if ( autoPad == "NOTSET" ) + { + Vector defaultPads = { 0, 0, 0, 0 }; + Vector pads = getNonNegativeIntsAttribute( node, "pads", defaultPads ); padLeft = pads[0]; padBottom = pads[1]; padRight = pads[2]; padTop = pads[3]; - } else if (autoPad == "VALID") { + } + else if ( autoPad == "VALID" ) + { // I think this is the right thing to do the spec is very unclear. // See https://github.com/onnx/onnx/issues/3254 and // https://stackoverflow.com/questions/37674306/what-is-the-difference-between-same-and-valid-padding-in-tf-nn-max-pool-of-t @@ -1312,106 +1580,123 @@ void OnnxParser::convEquations(onnx::NodeProto &node, [[maybe_unused]] bool make padBottom = 0; padRight = 0; padTop = 0; - } else if (autoPad == "SAME_UPPER" || autoPad == "SAME_LOWER") { + } + else if ( autoPad == "SAME_UPPER" || autoPad == "SAME_LOWER" ) + { bool padFrontPreferentially = autoPad == "SAME_LOWER"; Padding horizontalPadding = - calculatePaddingNeeded(inputWidth, filterWidth, strideWidth, padFrontPreferentially); + calculatePaddingNeeded( inputWidth, filterWidth, strideWidth, padFrontPreferentially ); padLeft = horizontalPadding.padFront; padRight = horizontalPadding.padBack; Padding verticalPadding = calculatePaddingNeeded( - inputHeight, filterHeight, strideHeight, padFrontPreferentially); + inputHeight, filterHeight, strideHeight, padFrontPreferentially ); padBottom = verticalPadding.padFront; padTop = verticalPadding.padBack; - } else { + } + else + { String errorMessage = - Stringf("Onnx '%s' operation has an unsupported value '%s' for attribute 'auto_pad'.", - node.op_type().c_str(), - autoPad.ascii()); - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); + Stringf( "Onnx '%s' operation has an unsupported value '%s' for attribute 'auto_pad'.", + node.op_type().c_str(), + autoPad.ascii() ); + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); } // Extract the group information (not supported/used) int defaultGroup = 1; - int group = getIntAttribute(node, "group", defaultGroup); - if (group != defaultGroup) { - unimplementedAttributeError(node, "group"); + int group = getIntAttribute( node, "group", defaultGroup ); + if ( group != defaultGroup ) + { + unimplementedAttributeError( node, "group" ); } // Extract the dilations information (not supported/used) - Vector defaultDilations = {1, 1}; + Vector defaultDilations = { 1, 1 }; Vector dilations = - getNonNegativeIntsAttribute(node, "dilations", defaultDilations); - for (auto d: dilations) { - if (d != 1) { - unimplementedAttributeError(node, "dilations"); + getNonNegativeIntsAttribute( node, "dilations", defaultDilations ); + for ( auto d : dilations ) + { + if ( d != 1 ) + { + unimplementedAttributeError( node, "dilations" ); } } // Compute output shape - unsigned int outWidth = (inputWidth - filterWidth + padLeft + padRight) / strideWidth + 1; - unsigned int outHeight = (inputHeight - filterHeight + padBottom + padTop) / strideHeight + 1; + unsigned int outWidth = ( inputWidth - filterWidth + padLeft + padRight ) / strideWidth + 1; + unsigned int outHeight = ( inputHeight - filterHeight + padBottom + padTop ) / strideHeight + 1; unsigned int outChannels = numberOfFilters; - TensorShape outputShape = {inputShape[0], outChannels, outWidth, outHeight}; + TensorShape outputShape = { inputShape[0], outChannels, outWidth, outHeight }; _shapeMap[outputNodeName] = outputShape; - if (!makeEquations) + if ( !makeEquations ) return; // Generate equations Vector inputVars = _varMap[inputNodeName]; Vector filter = _constantFloatTensors[filterNodeName]; - Vector outputVars = makeNodeVariables(outputNodeName, false); + Vector outputVars = makeNodeVariables( outputNodeName, false ); // The third input is optional and specifies a bias for each filter // Bias is 0 if third input is not given Vector biases; - TensorShape biasShape = {numberOfFilters}; - if (node.input().size() == 3) { + TensorShape biasShape = { numberOfFilters }; + if ( node.input().size() == 3 ) + { String biasName = node.input()[2]; biases = _constantFloatTensors[biasName]; - } else { - for (unsigned int i = 0; i < numberOfFilters; i++) { - biases.append(0); + } + else + { + for ( unsigned int i = 0; i < numberOfFilters; i++ ) + { + biases.append( 0 ); } } // There is one equation for every output variable - for (TensorIndex i = 0; i < outWidth; i++) { - for (TensorIndex j = 0; j < outHeight; j++) { - for (TensorIndex k = 0; k < outChannels; k++) // Out_channel corresponds to filter - // number + for ( TensorIndex i = 0; i < outWidth; i++ ) + { + for ( TensorIndex j = 0; j < outHeight; j++ ) + { + for ( TensorIndex k = 0; k < outChannels; k++ ) // Out_channel corresponds to filter + // number { Equation e = Equation(); // The equation convolves the filter with the specified input region // Iterate over the filter - for (TensorIndex di = 0; di < filterWidth; di++) { - for (TensorIndex dj = 0; dj < filterHeight; dj++) { - for (TensorIndex dk = 0; dk < filterChannels; dk++) { + for ( TensorIndex di = 0; di < filterWidth; di++ ) + { + for ( TensorIndex dj = 0; dj < filterHeight; dj++ ) + { + for ( TensorIndex dk = 0; dk < filterChannels; dk++ ) + { TensorIndex wIndex = strideWidth * i + di - padLeft; TensorIndex hIndex = strideHeight * j + dj - padBottom; // No need for checking greater than 0 because unsigned ints wrap // around. - if (hIndex < inputHeight && wIndex < inputWidth) { - TensorIndices inputVarIndices = {0, dk, wIndex, hIndex}; + if ( hIndex < inputHeight && wIndex < inputWidth ) + { + TensorIndices inputVarIndices = { 0, dk, wIndex, hIndex }; Variable inputVar = - tensorLookup(inputVars, inputShape, inputVarIndices); - TensorIndices weightIndices = {k, dk, di, dj}; - double weight = tensorLookup(filter, filterShape, weightIndices); - e.addAddend(weight, inputVar); + tensorLookup( inputVars, inputShape, inputVarIndices ); + TensorIndices weightIndices = { k, dk, di, dj }; + double weight = tensorLookup( filter, filterShape, weightIndices ); + e.addAddend( weight, inputVar ); } } } } // Add output variable - TensorIndices outputVarIndices = {0, k, i, j}; - Variable outputVar = tensorLookup(outputVars, outputShape, outputVarIndices); - e.addAddend(-1, outputVar); - e.setScalar(-biases[k]); - _query.addEquation(e); + TensorIndices outputVarIndices = { 0, k, i, j }; + Variable outputVar = tensorLookup( outputVars, outputShape, outputVarIndices ); + e.addAddend( -1, outputVar ); + e.setScalar( -biases[k] ); + _query.addEquation( e ); } } } @@ -1425,7 +1710,8 @@ void OnnxParser::convEquations(onnx::NodeProto &node, [[maybe_unused]] bool make * @param node ONNX node representing the operation * @param makeEquations True if we need to create new variables */ -void OnnxParser::gemmEquations(onnx::NodeProto &node, bool makeEquations) { +void OnnxParser::gemmEquations( onnx::NodeProto &node, bool makeEquations ) +{ String outputNodeName = node.output()[0]; // Get inputs @@ -1437,29 +1723,29 @@ void OnnxParser::gemmEquations(onnx::NodeProto &node, bool makeEquations) { TensorShape input2Shape = _shapeMap[input2NodeName]; TensorShape biasShape = _shapeMap[biasNodeName]; - ASSERT(input1Shape.size() == 2); - ASSERT(input2Shape.size() == 2); + ASSERT( input1Shape.size() == 2 ); + ASSERT( input2Shape.size() == 2 ); // Transpose first two inputs if needed, // and save scaling parameters alpha and beta if set. - int transA = getIntAttribute(node, "transA", 0); - int transB = getIntAttribute(node, "transB", 0); + int transA = getIntAttribute( node, "transA", 0 ); + int transB = getIntAttribute( node, "transB", 0 ); - Permutation reversePerm = {1, 0}; + Permutation reversePerm = { 1, 0 }; TensorShape finalInput1Shape = - transA != 0 ? transposeVector(input1Shape, reversePerm) : input1Shape; + transA != 0 ? transposeVector( input1Shape, reversePerm ) : input1Shape; TensorShape finalInput2Shape = - transB != 0 ? transposeVector(input2Shape, reversePerm) : input2Shape; + transB != 0 ? transposeVector( input2Shape, reversePerm ) : input2Shape; - ASSERT(finalInput1Shape[1] == finalInput2Shape[0]); - TensorShape outputShape = {finalInput1Shape[0], finalInput2Shape[1]}; + ASSERT( finalInput1Shape[1] == finalInput2Shape[0] ); + TensorShape outputShape = { finalInput1Shape[0], finalInput2Shape[1] }; _shapeMap[outputNodeName] = outputShape; - if (!makeEquations) + if ( !makeEquations ) return; - double alpha = getFloatAttribute(node, "alpha", 1.0); - double beta = getFloatAttribute(node, "beta", 1.0); + double alpha = getFloatAttribute( node, "alpha", 1.0 ); + double beta = getFloatAttribute( node, "beta", 1.0 ); // Assume that first input is variables, second is Matrix for MatMul, and third is bias addition Vector inputVariables = _varMap[input1NodeName]; @@ -1467,34 +1753,39 @@ void OnnxParser::gemmEquations(onnx::NodeProto &node, bool makeEquations) { Vector biases = _constantFloatTensors[biasNodeName]; // Transpose inputs - if (transA != 0) { - inputVariables = transposeTensor(inputVariables, input1Shape, reversePerm); + if ( transA != 0 ) + { + inputVariables = transposeTensor( inputVariables, input1Shape, reversePerm ); } - if (transB != 0) { - matrix = transposeTensor(matrix, input2Shape, reversePerm); + if ( transB != 0 ) + { + matrix = transposeTensor( matrix, input2Shape, reversePerm ); } // Create new variables - Vector outputVariables = makeNodeVariables(outputNodeName, false); + Vector outputVariables = makeNodeVariables( outputNodeName, false ); // Generate equations - for (TensorIndex i = 0; i < finalInput1Shape[0]; i++) { - for (TensorIndex j = 0; j < finalInput2Shape[1]; j++) { + for ( TensorIndex i = 0; i < finalInput1Shape[0]; i++ ) + { + for ( TensorIndex j = 0; j < finalInput2Shape[1]; j++ ) + { Equation e = Equation(); - for (TensorIndex k = 0; k < finalInput1Shape[1]; k++) { - double coefficient = alpha * tensorLookup(matrix, finalInput2Shape, {k, j}); - Variable inputVariable = tensorLookup(inputVariables, finalInput1Shape, {i, k}); - e.addAddend(coefficient, inputVariable); + for ( TensorIndex k = 0; k < finalInput1Shape[1]; k++ ) + { + double coefficient = alpha * tensorLookup( matrix, finalInput2Shape, { k, j } ); + Variable inputVariable = tensorLookup( inputVariables, finalInput1Shape, { i, k } ); + e.addAddend( coefficient, inputVariable ); } // Set the bias - TensorIndices biasIndices = broadcastIndex(biasShape, outputShape, {i, j}); - double bias = beta * tensorLookup(biases, biasShape, biasIndices); - e.setScalar(-bias); + TensorIndices biasIndices = broadcastIndex( biasShape, outputShape, { i, j } ); + double bias = beta * tensorLookup( biases, biasShape, biasIndices ); + e.setScalar( -bias ); // Put output variable as the last addend - Variable outputVariable = tensorLookup(outputVariables, outputShape, {i, j}); - e.addAddend(-1, outputVariable); - _query.addEquation(e); + Variable outputVariable = tensorLookup( outputVariables, outputShape, { i, j } ); + e.addAddend( -1, outputVariable ); + _query.addEquation( e ); } } } @@ -1506,24 +1797,26 @@ void OnnxParser::gemmEquations(onnx::NodeProto &node, bool makeEquations) { * @param node ONNX node representing the Relu operation * @param makeEquations True if we need to create new variables and add new Relus */ -void OnnxParser::reluEquations(onnx::NodeProto &node, bool makeEquations) { +void OnnxParser::reluEquations( onnx::NodeProto &node, bool makeEquations ) +{ String outputNodeName = node.output()[0]; String inputNodeName = node.input()[0]; _shapeMap[outputNodeName] = _shapeMap[inputNodeName]; - if (!makeEquations) + if ( !makeEquations ) return; // Get variables Vector inputVars = _varMap[inputNodeName]; - Vector outputVars = makeNodeVariables(outputNodeName, false); - ASSERT(inputVars.size() == outputVars.size()); + Vector outputVars = makeNodeVariables( outputNodeName, false ); + ASSERT( inputVars.size() == outputVars.size() ); // Generate equations - for (PackedTensorIndices i = 0; i < inputVars.size(); i++) { + for ( PackedTensorIndices i = 0; i < inputVars.size(); i++ ) + { int inputVar = inputVars[i]; int outputVar = outputVars[i]; - _query.addRelu(inputVar, outputVar); + _query.addRelu( inputVar, outputVar ); } } @@ -1534,24 +1827,26 @@ void OnnxParser::reluEquations(onnx::NodeProto &node, bool makeEquations) { * @param node ONNX node representing the Sign operation * @param makeEquations True if we need to create new variables and add new Relus */ -void OnnxParser::signEquations(onnx::NodeProto &node, bool makeEquations) { +void OnnxParser::signEquations( onnx::NodeProto &node, bool makeEquations ) +{ String outputNodeName = node.output()[0]; String inputNodeName = node.input()[0]; _shapeMap[outputNodeName] = _shapeMap[inputNodeName]; - if (!makeEquations) + if ( !makeEquations ) return; // Get variables Vector inputVars = _varMap[inputNodeName]; - Vector outputVars = makeNodeVariables(outputNodeName, false); - ASSERT(inputVars.size() == outputVars.size()); + Vector outputVars = makeNodeVariables( outputNodeName, false ); + ASSERT( inputVars.size() == outputVars.size() ); // Generate equations - for (PackedTensorIndices i = 0; i < inputVars.size(); i++) { + for ( PackedTensorIndices i = 0; i < inputVars.size(); i++ ) + { int inputVar = inputVars[i]; int outputVar = outputVars[i]; - _query.addSignConstraint(inputVar, outputVar); + _query.addSignConstraint( inputVar, outputVar ); } } @@ -1563,25 +1858,27 @@ void OnnxParser::signEquations(onnx::NodeProto &node, bool makeEquations) { * @param node ONNX node representing the LeakyRelu operation * @param makeEquations True if we need to create new variables and add new LeakyRelus */ -void OnnxParser::leakyReluEquations(onnx::NodeProto &node, bool makeEquations) { +void OnnxParser::leakyReluEquations( onnx::NodeProto &node, bool makeEquations ) +{ String outputNodeName = node.output()[0]; String inputNodeName = node.input()[0]; _shapeMap[outputNodeName] = _shapeMap[inputNodeName]; - if (!makeEquations) + if ( !makeEquations ) return; // Get alpha attribute - float alpha = getFloatAttribute(node, "alpha", 0.01); + float alpha = getFloatAttribute( node, "alpha", 0.01 ); // Get variables Vector inputVars = _varMap[inputNodeName]; - Vector outputVars = makeNodeVariables(outputNodeName, false); - ASSERT(inputVars.size() == outputVars.size()); + Vector outputVars = makeNodeVariables( outputNodeName, false ); + ASSERT( inputVars.size() == outputVars.size() ); // Generate equations - for (PackedTensorIndices i = 0; i < inputVars.size(); i++) { - _query.addLeakyRelu(inputVars[i], outputVars[i], alpha); + for ( PackedTensorIndices i = 0; i < inputVars.size(); i++ ) + { + _query.addLeakyRelu( inputVars[i], outputVars[i], alpha ); } } @@ -1593,10 +1890,11 @@ void OnnxParser::leakyReluEquations(onnx::NodeProto &node, bool makeEquations) { * @param node ONNX node representing the Add operation * @param makeEquations True if we need to create new variables and write Marabou equations */ -void OnnxParser::scaleAndAddEquations(onnx::NodeProto &node, - bool makeEquations, - double coefficient1, - double coefficient2) { +void OnnxParser::scaleAndAddEquations( onnx::NodeProto &node, + bool makeEquations, + double coefficient1, + double coefficient2 ) +{ String outputName = node.output()[0]; String input1Name = node.input()[0]; String input2Name = node.input()[1]; @@ -1605,44 +1903,48 @@ void OnnxParser::scaleAndAddEquations(onnx::NodeProto &node, TensorShape input1Shape = _shapeMap[input1Name]; TensorShape input2Shape = _shapeMap[input2Name]; - TensorShape outputShape = getMultidirectionalBroadcastShape(input1Shape, input2Shape); + TensorShape outputShape = getMultidirectionalBroadcastShape( input1Shape, input2Shape ); _shapeMap[outputName] = outputShape; - if (!makeEquations) + if ( !makeEquations ) return; // Decide which inputs are variables and which are constants - bool input1IsConstant = isConstantNode(input1Name); - bool input2IsConstant = isConstantNode(input2Name); + bool input1IsConstant = isConstantNode( input1Name ); + bool input2IsConstant = isConstantNode( input2Name ); // If both inputs to add are constant, then the output is constant too. // No new variables are needed, we could just store the output. - if (input1IsConstant && input2IsConstant) { + if ( input1IsConstant && input2IsConstant ) + { String errorMessage = - "Addition of constant tensors not yet supported for command-line Onnx files"; - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); + "Addition of constant tensors not yet supported for command-line Onnx files"; + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); } // If both inputs are variables, then we need a new variable to represent // the sum of the two variables - if (!input1IsConstant && !input2IsConstant) { - Vector outputVariables = makeNodeVariables(outputName, false); + if ( !input1IsConstant && !input2IsConstant ) + { + Vector outputVariables = makeNodeVariables( outputName, false ); Vector input1Variables = _varMap[input1Name]; Vector input2Variables = _varMap[input2Name]; - if (input1Variables.size() != input2Variables.size() || - input2Variables.size() != outputVariables.size()) { + if ( input1Variables.size() != input2Variables.size() || + input2Variables.size() != outputVariables.size() ) + { String errorMessage = "Broadcast support for addition of two non-constant nodes not " "yet supported for command-line ONNX files"; - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); } - for (PackedTensorIndices i = 0; i < input1Variables.size(); i++) { + for ( PackedTensorIndices i = 0; i < input1Variables.size(); i++ ) + { Equation e = Equation(); - e.addAddend(coefficient1, input1Variables[i]); - e.addAddend(coefficient2, input2Variables[i]); - e.addAddend(-1, outputVariables[i]); - e.setScalar(0.0); - _query.addEquation(e); + e.addAddend( coefficient1, input1Variables[i] ); + e.addAddend( coefficient2, input2Variables[i] ); + e.addAddend( -1, outputVariables[i] ); + e.setScalar( 0.0 ); + _query.addEquation( e ); } return; } @@ -1664,46 +1966,52 @@ void OnnxParser::scaleAndAddEquations(onnx::NodeProto &node, // Adjust equations to incorporate the constant addition unsigned int numberOfEquationsChanged = 0; - unsigned int numberOfOutputVariables = tensorSize(outputShape); - for (PackedTensorIndices i = 0; i < numberOfOutputVariables; i++) { - TensorIndices outputIndices = unpackIndex(outputShape, i); + unsigned int numberOfOutputVariables = tensorSize( outputShape ); + for ( PackedTensorIndices i = 0; i < numberOfOutputVariables; i++ ) + { + TensorIndices outputIndices = unpackIndex( outputShape, i ); TensorIndices inputVariableIndices = - broadcastIndex(inputVariablesShape, outputShape, outputIndices); + broadcastIndex( inputVariablesShape, outputShape, outputIndices ); Variable inputVariable = - tensorLookup(inputVariables, inputVariablesShape, inputVariableIndices); + tensorLookup( inputVariables, inputVariablesShape, inputVariableIndices ); - Equation *equation = _query.findEquationWithOutputVariable(inputVariable); - if (equation) { + Equation *equation = _query.findEquationWithOutputVariable( inputVariable ); + if ( equation ) + { TensorIndices inputConstantIndices = - broadcastIndex(inputConstantsShape, outputShape, outputIndices); + broadcastIndex( inputConstantsShape, outputShape, outputIndices ); double inputConstant = - tensorLookup(inputConstants, inputConstantsShape, inputConstantIndices); + tensorLookup( inputConstants, inputConstantsShape, inputConstantIndices ); - double currentVariableCoefficient = equation->getCoefficient(inputVariable); - equation->setCoefficient(inputVariable, - variableCoefficient * currentVariableCoefficient); - equation->setScalar(equation->_scalar - constantCoefficient * inputConstant); + double currentVariableCoefficient = equation->getCoefficient( inputVariable ); + equation->setCoefficient( inputVariable, + variableCoefficient * currentVariableCoefficient ); + equation->setScalar( equation->_scalar - constantCoefficient * inputConstant ); numberOfEquationsChanged += 1; } } - if (numberOfEquationsChanged == inputVariables.size()) { + if ( numberOfEquationsChanged == inputVariables.size() ) + { // If we changed one equation for every input variable, then // we don't need any new equations _varMap[outputName] = inputVariables; - } else { + } + else + { // Otherwise, assert no equations were changed, // and we need to create new equations - ASSERT(numberOfEquationsChanged == 0); - Vector outputVariables = makeNodeVariables(outputName, false); - for (PackedTensorIndices i = 0; i < outputVariables.size(); i++) { + ASSERT( numberOfEquationsChanged == 0 ); + Vector outputVariables = makeNodeVariables( outputName, false ); + for ( PackedTensorIndices i = 0; i < outputVariables.size(); i++ ) + { Equation e = Equation(); - e.addAddend(variableCoefficient, inputVariables[i]); - e.addAddend(-1, outputVariables[i]); - e.setScalar(-constantCoefficient * inputConstants[i]); - _query.addEquation(e); + e.addAddend( variableCoefficient, inputVariables[i] ); + e.addAddend( -1, outputVariables[i] ); + e.setScalar( -constantCoefficient * inputConstants[i] ); + _query.addEquation( e ); } } } @@ -1715,7 +2023,8 @@ void OnnxParser::scaleAndAddEquations(onnx::NodeProto &node, * @param node ONNX node representing the MatMul operation * @param makeEquations True if we need to create new variables and write Marabou equations */ -void OnnxParser::matMulEquations(onnx::NodeProto &node, bool makeEquations) { +void OnnxParser::matMulEquations( onnx::NodeProto &node, bool makeEquations ) +{ String nodeName = node.output()[0]; // Get inputs @@ -1724,39 +2033,43 @@ void OnnxParser::matMulEquations(onnx::NodeProto &node, bool makeEquations) { TensorShape input1Shape = _shapeMap[input1Name]; TensorShape input2Shape = _shapeMap[input2Name]; - ASSERT(input1Shape.last() == input2Shape.first()); - ASSERT(input1Shape.size() <= 2); - ASSERT(input2Shape.size() <= 2); + ASSERT( input1Shape.last() == input2Shape.first() ); + ASSERT( input1Shape.size() <= 2 ); + ASSERT( input2Shape.size() <= 2 ); // Calculate the output shape TensorShape outputShape; - for (unsigned int i = 0; i < input1Shape.size() - 1; i++) { - outputShape.append(input1Shape[i]); + for ( unsigned int i = 0; i < input1Shape.size() - 1; i++ ) + { + outputShape.append( input1Shape[i] ); } - for (unsigned int i = 1; i < input2Shape.size(); i++) { - outputShape.append(input2Shape[i]); + for ( unsigned int i = 1; i < input2Shape.size(); i++ ) + { + outputShape.append( input2Shape[i] ); } - _shapeMap.insert(nodeName, outputShape); - if (!makeEquations) + _shapeMap.insert( nodeName, outputShape ); + if ( !makeEquations ) return; // Assume that at exactly one input is a constant as // we cannot represent variable products with linear equations. - bool input1IsConstant = isConstantNode(input1Name); - bool input2IsConstant = isConstantNode(input2Name); + bool input1IsConstant = isConstantNode( input1Name ); + bool input2IsConstant = isConstantNode( input2Name ); // If both inputs are constant, than the output is constant as well, and we don't need new // variables or equations - if (input1IsConstant && input2IsConstant) { + if ( input1IsConstant && input2IsConstant ) + { String errorMessage = "Matrix multiplication of constant tensors not yet implemented for " "command-line Onnx files"; - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); } - if (!input1IsConstant && !input2IsConstant) { + if ( !input1IsConstant && !input2IsConstant ) + { String errorMessage = "Matrix multiplication of variable tensors is not supported"; - throw MarabouError(MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii()); + throw MarabouError( MarabouError::ONNX_PARSER_ERROR, errorMessage.ascii() ); } String constantName = input1IsConstant ? input1Name : input2Name; @@ -1767,11 +2080,12 @@ void OnnxParser::matMulEquations(onnx::NodeProto &node, bool makeEquations) { Vector variables = _varMap[variableName]; // Create new variables - Vector outputVariables = makeNodeVariables(nodeName, false); + Vector outputVariables = makeNodeVariables( nodeName, false ); // Pad the output if needed (matrix-matrix multiplication) - if (outputShape.size() == 1 && input2Shape.size() > 1) { - outputShape.insertHead(1); + if ( outputShape.size() == 1 && input2Shape.size() > 1 ) + { + outputShape.insertHead( 1 ); } unsigned int d1 = input1Shape.size() == 1 ? 1 : input1Shape.first(); @@ -1779,51 +2093,64 @@ void OnnxParser::matMulEquations(onnx::NodeProto &node, bool makeEquations) { unsigned int d3 = input2Shape.last(); // Generate equations - for (TensorIndex i = 0; i < d1; i++) { + for ( TensorIndex i = 0; i < d1; i++ ) + { // Differentiate between matrix-vector multiplication // and matrix-matrix multiplication - if (input2Shape.size() == 2) { - for (TensorIndex j = 0; j < d3; j++) { + if ( input2Shape.size() == 2 ) + { + for ( TensorIndex j = 0; j < d3; j++ ) + { Equation e; - for (TensorIndex k = 0; k < d2; k++) { + for ( TensorIndex k = 0; k < d2; k++ ) + { double constant; Variable variable; - if (input1IsConstant) { - constant = tensorLookup(constants, {d1, d2}, {i, k}); - variable = tensorLookup(variables, {d2, d3}, {k, j}); - } else { - constant = tensorLookup(constants, {d2, d3}, {k, j}); - variable = tensorLookup(variables, {d1, d2}, {i, k}); + if ( input1IsConstant ) + { + constant = tensorLookup( constants, { d1, d2 }, { i, k } ); + variable = tensorLookup( variables, { d2, d3 }, { k, j } ); } - e.addAddend(constant, variable); + else + { + constant = tensorLookup( constants, { d2, d3 }, { k, j } ); + variable = tensorLookup( variables, { d1, d2 }, { i, k } ); + } + e.addAddend( constant, variable ); } // Put output variable as the last addend - Variable outputVariable = tensorLookup(outputVariables, outputShape, {i, j}); - e.addAddend(-1, outputVariable); - e.setScalar(0.0); - _query.addEquation(e); + Variable outputVariable = tensorLookup( outputVariables, outputShape, { i, j } ); + e.addAddend( -1, outputVariable ); + e.setScalar( 0.0 ); + _query.addEquation( e ); } - } else { + } + else + { Equation e; - for (TensorIndex k = 0; k < d2; k++) { + for ( TensorIndex k = 0; k < d2; k++ ) + { double constant; Variable variable; - if (input1IsConstant) { - constant = tensorLookup(constants, {d1, d2}, {i, k}); + if ( input1IsConstant ) + { + constant = tensorLookup( constants, { d1, d2 }, { i, k } ); variable = variables[k]; - } else { + } + else + { constant = constants[k]; - variable = tensorLookup(variables, {d1, d2}, {i, k}); + variable = tensorLookup( variables, { d1, d2 }, { i, k } ); } - e.addAddend(constant, variable); + e.addAddend( constant, variable ); } // Put output variable as the last addend last Variable outputVariable = outputVariables[i]; - e.addAddend(-1, outputVariable); - e.setScalar(0.0); - _query.addEquation(e); + e.addAddend( -1, outputVariable ); + e.setScalar( 0.0 ); + _query.addEquation( e ); } } } @@ -1835,24 +2162,26 @@ void OnnxParser::matMulEquations(onnx::NodeProto &node, bool makeEquations) { * @param node ONNX node representing the Sigmoid operation * @param makeEquations True if we need to create new variables and write Marabou equations */ -void OnnxParser::sigmoidEquations(onnx::NodeProto &node, bool makeEquations) { +void OnnxParser::sigmoidEquations( onnx::NodeProto &node, bool makeEquations ) +{ String outputNodeName = node.output()[0]; String inputNodeName = node.input()[0]; _shapeMap[outputNodeName] = _shapeMap[inputNodeName]; - if (!makeEquations) + if ( !makeEquations ) return; // Get variables Vector inputVars = _varMap[inputNodeName]; - Vector outputVars = makeNodeVariables(outputNodeName, false); - ASSERT(inputVars.size() == outputVars.size()); + Vector outputVars = makeNodeVariables( outputNodeName, false ); + ASSERT( inputVars.size() == outputVars.size() ); // Generate equations - for (unsigned int i = 0; i < inputVars.size(); i++) { + for ( unsigned int i = 0; i < inputVars.size(); i++ ) + { Variable inputVar = inputVars[i]; Variable outputVar = outputVars[i]; - _query.addSigmoid(inputVar, outputVar); + _query.addSigmoid( inputVar, outputVar ); } } @@ -1863,22 +2192,24 @@ void OnnxParser::sigmoidEquations(onnx::NodeProto &node, bool makeEquations) { * @param node ONNX node representing the Tanh operation * @param makeEquations True if we need to create new variables and write Marabou equations */ -void OnnxParser::tanhEquations(onnx::NodeProto &node, bool makeEquations) { +void OnnxParser::tanhEquations( onnx::NodeProto &node, bool makeEquations ) +{ String outputName = node.output()[0]; String inputName = node.input()[0]; TensorShape inputShape = _shapeMap[inputName]; _shapeMap[outputName] = _shapeMap[inputName]; - if (!makeEquations) + if ( !makeEquations ) return; // Get variables Vector inputVars = _varMap[inputName]; - Vector outputVars = makeNodeVariables(outputName, false); - ASSERT(inputVars.size() == outputVars.size()); + Vector outputVars = makeNodeVariables( outputName, false ); + ASSERT( inputVars.size() == outputVars.size() ); // Generate equations - for (uint i = 0; i < outputVars.size(); i++) { - _query.addTanh(inputVars[i], outputVars[i]); + for ( uint i = 0; i < outputVars.size(); i++ ) + { + _query.addTanh( inputVars[i], outputVars[i] ); } } diff --git a/src/input_parsers/OnnxParser.h b/src/input_parsers/OnnxParser.h index b21e2ceb07..66d05866e2 100644 --- a/src/input_parsers/OnnxParser.h +++ b/src/input_parsers/OnnxParser.h @@ -25,23 +25,24 @@ #include "Vector.h" #include "onnx.proto3.pb.h" -#define ONNX_LOG(x, ...) LOG( GlobalConfiguration::ONNX_PARSER_LOGGING, "OnnxParser: %s\n", x ) +#define ONNX_LOG( x, ... ) LOG( GlobalConfiguration::ONNX_PARSER_LOGGING, "OnnxParser: %s\n", x ) -class OnnxParser { +class OnnxParser +{ public: - static void parse(InputQueryBuilder &query, - const String &path, - const Set inputNames, - const Set outputNames); + static void parse( InputQueryBuilder &query, + const String &path, + const Set inputNames, + const Set outputNames ); private: // Settings // - OnnxParser(InputQueryBuilder &query, - const String &path, - const Set inputNames, - const Set terminalNames); + OnnxParser( InputQueryBuilder &query, + const String &path, + const Set inputNames, + const Set terminalNames ); InputQueryBuilder &_query; onnx::GraphProto _network; @@ -66,79 +67,49 @@ class OnnxParser { // Methods // const Set readInputNames(); - const Set readOutputNames(); + void validateUserInputNames( const Set &inputNames ); + void validateUserTerminalNames( const Set &terminalNames ); - void validateUserInputNames(const Set &inputNames); - - void validateUserTerminalNames(const Set &terminalNames); - - void readNetwork(const String &path); - + void readNetwork( const String &path ); void initializeShapeAndConstantMaps(); - void validateAllInputsAndOutputsFound(); void processGraph(); - - void processNode(String &nodeName, bool makeEquations); - - void makeMarabouEquations(onnx::NodeProto &node, bool makeEquations); - - Set getInputsToNode(onnx::NodeProto &node); - - List getNodesWithOutput(String &nodeName); - - Vector makeNodeVariables(String &nodeName, bool isInput); - - bool isConstantNode(String name); - - void transferValues(String oldName, String newName); - - void insertConstant(String name, const onnx::TensorProto &tensor, TensorShape shape); - - void constant(onnx::NodeProto &node); - - void identity(onnx::NodeProto &node); - - void dropout(onnx::NodeProto &node); - - void cast(onnx::NodeProto &node); - - void reshape(onnx::NodeProto &node); - - void squeeze(onnx::NodeProto &node); - - void unsqueeze(onnx::NodeProto &node); - - void flatten(onnx::NodeProto &node); - - void transpose(onnx::NodeProto &node); - - void batchNormEquations(onnx::NodeProto &node, bool makeEquations); - - void maxPoolEquations(onnx::NodeProto &node, bool makeEquations); - - void convEquations(onnx::NodeProto &node, bool makeEquations); - - void gemmEquations(onnx::NodeProto &node, bool makeEquations); - - void scaleAndAddEquations(onnx::NodeProto &node, - bool makeEquations, - double coefficient1, - double coefficient2); - - void matMulEquations(onnx::NodeProto &node, bool makeEquations); - - void reluEquations(onnx::NodeProto &node, bool makeEquations); - - void signEquations(onnx::NodeProto &node, bool makeEquations); - - void leakyReluEquations(onnx::NodeProto &node, bool makeEquations); - - void sigmoidEquations(onnx::NodeProto &node, bool makeEquations); - - void tanhEquations(onnx::NodeProto &node, bool makeEquations); + void processNode( String &nodeName, bool makeEquations ); + void makeMarabouEquations( onnx::NodeProto &node, bool makeEquations ); + Set getInputsToNode( onnx::NodeProto &node ); + List getNodesWithOutput( String &nodeName ); + Vector makeNodeVariables( String &nodeName, bool isInput ); + + bool isConstantNode( String name ); + + void transferValues( String oldName, String newName ); + void insertConstant( String name, const onnx::TensorProto &tensor, TensorShape shape ); + + void constant( onnx::NodeProto &node ); + void identity( onnx::NodeProto &node ); + void dropout( onnx::NodeProto &node ); + void cast( onnx::NodeProto &node ); + void reshape( onnx::NodeProto &node ); + void squeeze( onnx::NodeProto &node ); + void unsqueeze( onnx::NodeProto &node ); + void flatten( onnx::NodeProto &node ); + void transpose( onnx::NodeProto &node ); + void batchNormEquations( onnx::NodeProto &node, bool makeEquations ); + void maxPoolEquations( onnx::NodeProto &node, bool makeEquations ); + void convEquations( onnx::NodeProto &node, bool makeEquations ); + void gemmEquations( onnx::NodeProto &node, bool makeEquations ); + void scaleAndAddEquations( onnx::NodeProto &node, + bool makeEquations, + double coefficient1, + double coefficient2 ); + void matMulEquations( onnx::NodeProto &node, bool makeEquations ); + void reluEquations( onnx::NodeProto &node, bool makeEquations ); + void signEquations( onnx::NodeProto &node, bool makeEquations ); + void leakyReluEquations( onnx::NodeProto &node, bool makeEquations ); + void sigmoidEquations( onnx::NodeProto &node, bool makeEquations ); + void tanhEquations( onnx::NodeProto &node, bool makeEquations ); }; #endif // __OnnxParser_h__ From c5bdae3b3141b8a38eecbd3761a0ff896c7f36e7 Mon Sep 17 00:00:00 2001 From: omriisack Date: Sun, 20 Jul 2025 17:05:48 +0300 Subject: [PATCH 162/165] Formatting --- src/engine/tests/MockEngine.h | 189 +++++++++++++++++++++------------- 1 file changed, 116 insertions(+), 73 deletions(-) diff --git a/src/engine/tests/MockEngine.h b/src/engine/tests/MockEngine.h index f0687c56a7..4bab581301 100644 --- a/src/engine/tests/MockEngine.h +++ b/src/engine/tests/MockEngine.h @@ -24,34 +24,41 @@ class String; -class MockEngine : public IEngine { +class MockEngine : public IEngine +{ public: - MockEngine() { + MockEngine() + { wasCreated = false; wasDiscarded = false; lastStoredState = NULL; } - ~MockEngine() { + ~MockEngine() + { } bool wasCreated; bool wasDiscarded; - void mockConstructor() { - TS_ASSERT(!wasCreated); + void mockConstructor() + { + TS_ASSERT( !wasCreated ); wasCreated = true; } - void mockDestructor() { - TS_ASSERT(wasCreated); - TS_ASSERT(!wasDiscarded); + void mockDestructor() + { + TS_ASSERT( wasCreated ); + TS_ASSERT( !wasDiscarded ); wasDiscarded = true; } - struct Bound { - Bound(unsigned variable, double bound) { + struct Bound + { + Bound( unsigned variable, double bound ) + { _variable = variable; _bound = bound; } @@ -63,189 +70,225 @@ class MockEngine : public IEngine { List lastLowerBounds; List lastUpperBounds; List lastEquations; - - void applySplit(const PiecewiseLinearCaseSplit &split) { + void applySplit( const PiecewiseLinearCaseSplit &split ) + { List bounds = split.getBoundTightenings(); auto equations = split.getEquations(); - for (auto &it: equations) { - lastEquations.append(it); + for ( auto &it : equations ) + { + lastEquations.append( it ); } - for (auto &bound: bounds) { - if (bound._type == Tightening::LB) { - lastLowerBounds.append(Bound(bound._variable, bound._value)); - } else { - lastUpperBounds.append(Bound(bound._variable, bound._value)); + for ( auto &bound : bounds ) + { + if ( bound._type == Tightening::LB ) + { + lastLowerBounds.append( Bound( bound._variable, bound._value ) ); + } + else + { + lastUpperBounds.append( Bound( bound._variable, bound._value ) ); } } } - void postContextPopHook() {}; - - void preContextPushHook() {}; + void postContextPopHook(){}; + void preContextPushHook(){}; mutable EngineState *lastStoredState; - - void storeState(EngineState &state, TableauStateStorageLevel /*level*/) const { + void storeState( EngineState &state, TableauStateStorageLevel /*level*/ ) const + { lastStoredState = &state; } const EngineState *lastRestoredState; - - void restoreState(const EngineState &state) { + void restoreState( const EngineState &state ) + { lastRestoredState = &state; } - void setNumPlConstraintsDisabledByValidSplits(unsigned /* numConstraints */) { + void setNumPlConstraintsDisabledByValidSplits( unsigned /* numConstraints */ ) + { } unsigned _timeToSolve; IEngine::ExitCode _exitCode; - - bool solve(double timeoutInSeconds) { - if (timeoutInSeconds >= _timeToSolve) + bool solve( double timeoutInSeconds ) + { + if ( timeoutInSeconds >= _timeToSolve ) _exitCode = IEngine::TIMEOUT; return _exitCode == IEngine::SAT; } - void setTimeToSolve(unsigned timeToSolve) { + void setTimeToSolve( unsigned timeToSolve ) + { _timeToSolve = timeToSolve; } - void setExitCode(IEngine::ExitCode exitCode) { + void setExitCode( IEngine::ExitCode exitCode ) + { _exitCode = exitCode; } - IEngine::ExitCode getExitCode() const { + IEngine::ExitCode getExitCode() const + { return _exitCode; } - void reset() { + void reset() + { } List _inputVariables; - - void setInputVariables(List &inputVariables) { + void setInputVariables( List &inputVariables ) + { _inputVariables = inputVariables; } - List getInputVariables() const { + List getInputVariables() const + { return _inputVariables; } - void updateScores(DivideStrategy /**/) { + void updateScores( DivideStrategy /**/ ) + { } mutable SmtState *lastRestoredSmtState; - - bool restoreSmtState(SmtState &smtState) { + bool restoreSmtState( SmtState &smtState ) + { lastRestoredSmtState = &smtState; return true; } mutable SmtState *lastStoredSmtState; - - void storeSmtState(SmtState &smtState) { + void storeSmtState( SmtState &smtState ) + { lastStoredSmtState = &smtState; } List _constraintsToSplit; - - void setSplitPLConstraint(PiecewiseLinearConstraint *constraint) { - _constraintsToSplit.append(constraint); + void setSplitPLConstraint( PiecewiseLinearConstraint *constraint ) + { + _constraintsToSplit.append( constraint ); } - PiecewiseLinearConstraint *pickSplitPLConstraint(DivideStrategy /**/) { - if (!_constraintsToSplit.empty()) { + PiecewiseLinearConstraint *pickSplitPLConstraint( DivideStrategy /**/ ) + { + if ( !_constraintsToSplit.empty() ) + { PiecewiseLinearConstraint *ptr = *_constraintsToSplit.begin(); - _constraintsToSplit.erase(ptr); + _constraintsToSplit.erase( ptr ); return ptr; - } else + } + else return NULL; } - PiecewiseLinearConstraint *pickSplitPLConstraintSnC(SnCDivideStrategy /**/) { - if (!_constraintsToSplit.empty()) { + PiecewiseLinearConstraint *pickSplitPLConstraintSnC( SnCDivideStrategy /**/ ) + { + if ( !_constraintsToSplit.empty() ) + { PiecewiseLinearConstraint *ptr = *_constraintsToSplit.begin(); - _constraintsToSplit.erase(ptr); + _constraintsToSplit.erase( ptr ); return ptr; - } else + } + else return NULL; } bool _snc; CVC4::context::Context _context; - void applySnCSplit(PiecewiseLinearCaseSplit /*split*/, String /*queryId*/) { + void applySnCSplit( PiecewiseLinearCaseSplit /*split*/, String /*queryId*/ ) + { _snc = true; _context.push(); } - bool inSnCMode() const { + bool inSnCMode() const + { return _snc; } - void applyAllBoundTightenings() {}; + void applyAllBoundTightenings(){}; - bool applyAllValidConstraintCaseSplits() { + bool applyAllValidConstraintCaseSplits() + { return false; }; - CVC4::context::Context &getContext() { + CVC4::context::Context &getContext() + { return _context; } - bool consistentBounds() const { + bool consistentBounds() const + { return true; } - double explainBound(unsigned /* var */, bool /* isUpper */) const { + double explainBound( unsigned /* var */, bool /* isUpper */ ) const + { return 0.0; } - void updateGroundUpperBound(unsigned /* var */, double /* value */) { + void updateGroundUpperBound( unsigned /* var */, double /* value */ ) + { } - void updateGroundLowerBound(unsigned /*var*/, double /*value*/) { + void updateGroundLowerBound( unsigned /*var*/, double /*value*/ ) + { } - double getGroundBound(unsigned /*var*/, bool /*isUpper*/) const { + double getGroundBound( unsigned /*var*/, bool /*isUpper*/ ) const + { return 0; } - UnsatCertificateNode *getUNSATCertificateCurrentPointer() const { + UnsatCertificateNode *getUNSATCertificateCurrentPointer() const + { return NULL; } - void setUNSATCertificateCurrentPointer(UnsatCertificateNode * /* node*/ ) { + void setUNSATCertificateCurrentPointer( UnsatCertificateNode * /* node*/ ) + { } - const UnsatCertificateNode *getUNSATCertificateRoot() const { + const UnsatCertificateNode *getUNSATCertificateRoot() const + { return NULL; } - bool certifyUNSATCertificate() { + bool certifyUNSATCertificate() + { return true; } - void explainSimplexFailure() { + void explainSimplexFailure() + { } - const BoundExplainer *getBoundExplainer() const { + const BoundExplainer *getBoundExplainer() const + { return NULL; } - void setBoundExplainerContent(BoundExplainer * /*boundExplainer */ ) { + void setBoundExplainerContent( BoundExplainer * /*boundExplainer */ ) + { } - void propagateBoundManagerTightenings() { + void propagateBoundManagerTightenings() + { } - bool shouldProduceProofs() const { + bool shouldProduceProofs() const + { return true; } - void addPLCLemma(std::shared_ptr & /*explanation*/ ) { + void addPLCLemma( std::shared_ptr & /*explanation*/ ) + { } }; From b1128a4174d42dd6112b8d5428d8fb446320d6ab Mon Sep 17 00:00:00 2001 From: omriisack Date: Thu, 31 Jul 2025 20:27:14 +0300 Subject: [PATCH 163/165] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f213ac70c..6948a6af5f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,7 +32,7 @@ * Added command-line support for properties in the VNNLIB format. * Changes to Python ONNX support: - - Added support for `Softmax`, `Bilinear`, `Dropout`, and `LeakyRelu` operators. + - Added support for `Softmax`, `Bilinear`, `Dropout`, `Sign`, and `LeakyRelu` operators. - `MarabouONNXNetwork` no longer exposes the fields `madeGraphEquations`, `varMap`, `constantMap`, `shapeMap` as these were supposed to be internal implementation details. - `MarabouONNXNetwork` no longer has a `shallowCopy` method. Instead of calling this method, From ba243122e82d4258459f597c6c34fb118e5c8c60 Mon Sep 17 00:00:00 2001 From: omriisack Date: Sun, 31 Aug 2025 13:36:02 +0300 Subject: [PATCH 164/165] Proof production bugfix --- src/engine/PrecisionRestorer.cpp | 5 +++-- src/engine/ReluConstraint.cpp | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/engine/PrecisionRestorer.cpp b/src/engine/PrecisionRestorer.cpp index c7ed74dff8..550d344d7e 100644 --- a/src/engine/PrecisionRestorer.cpp +++ b/src/engine/PrecisionRestorer.cpp @@ -141,9 +141,10 @@ void PrecisionRestorer::restorePrecision( IEngine &engine, { tableau.tightenUpperBoundNaively( i, upperBoundsBackup[i] ); tableau.tightenLowerBoundNaively( i, lowerBoundsBackup[i] ); - } - engine.propagateBoundManagerTightenings(); + engine.updateGroundUpperBound( i, groundUpperBoundsBackup[i] ); + engine.updateGroundLowerBound( i, groundLowerBoundsBackup[i] ); + } // Restore constraint status for ( const auto &pair : targetEngineState._plConstraintToState ) diff --git a/src/engine/ReluConstraint.cpp b/src/engine/ReluConstraint.cpp index 3ac962f108..d48be10827 100644 --- a/src/engine/ReluConstraint.cpp +++ b/src/engine/ReluConstraint.cpp @@ -271,11 +271,11 @@ void ReluConstraint::notifyUpperBound( unsigned variable, double newBound ) _boundManager->tightenUpperBound( _b, bound, *_tighteningRow ); else { - if ( FloatUtils::isZero( bound ) ) + if ( !FloatUtils::isPositive( bound ) ) _boundManager->addLemmaExplanationAndTightenBound( _b, 0, Tightening::UB, { variable }, Tightening::UB, getType() ); // Bound cannot be negative if ReLU is inactive - else if ( FloatUtils::isNegative( bound ) ) + if ( FloatUtils::isNegative( bound ) ) throw InfeasibleQueryException(); } } @@ -326,11 +326,11 @@ void ReluConstraint::notifyUpperBound( unsigned variable, double newBound ) _boundManager->tightenLowerBound( _b, -bound, *_tighteningRow ); else { - if ( FloatUtils::isZero( bound ) ) + if ( !FloatUtils::isPositive( bound ) ) _boundManager->addLemmaExplanationAndTightenBound( _b, 0, Tightening::LB, { variable }, Tightening::UB, getType() ); // Bound cannot be negative if ReLU is active - else if ( FloatUtils::isNegative( bound ) ) + if ( FloatUtils::isNegative( bound ) ) throw InfeasibleQueryException(); } } From cc79dbd94fef500dc5ca647b7338b5a3a6619c42 Mon Sep 17 00:00:00 2001 From: omriisack Date: Tue, 2 Sep 2025 15:58:53 +0300 Subject: [PATCH 165/165] update variable assignment and set bound explanations after precision restoration --- src/engine/PrecisionRestorer.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/engine/PrecisionRestorer.cpp b/src/engine/PrecisionRestorer.cpp index 550d344d7e..6d75420e8d 100644 --- a/src/engine/PrecisionRestorer.cpp +++ b/src/engine/PrecisionRestorer.cpp @@ -134,18 +134,23 @@ void PrecisionRestorer::restorePrecision( IEngine &engine, } } - if ( engine.shouldProduceProofs() ) - engine.setBoundExplainerContent( &boundExplainerBackup ); - for ( unsigned i = 0; i < targetN; ++i ) { + if ( engine.shouldProduceProofs() ) + { + engine.updateGroundUpperBound( i, groundUpperBoundsBackup[i] ); + engine.updateGroundLowerBound( i, groundLowerBoundsBackup[i] ); + } + tableau.tightenUpperBoundNaively( i, upperBoundsBackup[i] ); tableau.tightenLowerBoundNaively( i, lowerBoundsBackup[i] ); - - engine.updateGroundUpperBound( i, groundUpperBoundsBackup[i] ); - engine.updateGroundLowerBound( i, groundLowerBoundsBackup[i] ); } + if ( engine.shouldProduceProofs() ) + engine.setBoundExplainerContent( &boundExplainerBackup ); + + tableau.updateVariablesToComplyWithBounds(); + // Restore constraint status for ( const auto &pair : targetEngineState._plConstraintToState ) pair.first->setActiveConstraint( pair.second->isActive() );